Highly-Paid Developers As ScrumMasters?
An anonymous reader writes 'At my company, our mis-implementation of Agile includes the employment of some of our most highly-paid, principal engineers as ScrumMasters. This has effectively resulted in a loss of those engineering functions as these engineers now dedicate their time to ScrumMastery. Furthermore, the ScrumMasters either cannot or do not separate their roles as Team Leads with those of ScrumMastery and — worse — seem to be completely unaware that this poor implementation of Agile development is harmful to our velocity. To date, I have chalked this up to poor leadership, a general lack of understanding of Agile, and an inability to change from traditional roles left over from the waterfall development mode. In addition, I have contended that, for a given Scrum Team, the role of ScrumMaster should be filled by someone of lower impact, such as an intern brought in specifically for that purpose. But I would like to put the questions to Slashdotters as to whether they have seen these same transitional difficulties, what the results have been at their respective companies, or whether they just plain disagree with my assertion that principal engineers should not be relegated to the roles of ScrumMasters.'
Do without all the agile scrum diddle doo, and you'll be just fine.
you seem to be wasting your time with implementing a particular coding methodology,
instead of doing actual useful coding.
Goddamn wankfest of a post.
Everyone does it wrong. Every single place that I've worked has done it differently and failed similarly. Agile + Scrum + Ruby seems to be an epic combination of fail.
You better pay them good or that's abuse of internship.
If you are particularly tied to "Scrum" as a methodology, and want to bet your house on it, then your ScrumMaster should be someone who knows Scrum inside and out. However, if your intention is to be actually agile, rather than legalistic and restrictive, though, then it's usually good advice to put someone well-respected (eg, the team lead) in the position of holding the team to account, rather than getting an outsider just because they have the right keyword ("Scrum") on their CV -- external keyword-hiring tends to produce disenchantment as people feel that the organisation is not rewarding ability and effort (by promoting internally) but is putting a glass ceiling above them ("we're hiring from outside because you do not have experience of the next job up the tree").
Just IMHO though
Could we please get some explanatory links in here? This reads like a mix between a corporate nightmare ("harmful to our velocity"? SERIOUSLY?) and the rantings of an MMORPG nerd ("I was a level 72 ScrumMaster specced for Agility, but then they nerfed that and our Team Leads couldn't afford the new +5 leadership crafts, so we completely tanked at the Waterfalls of Development, even though we hired N00Bs as cannon fodder!").
Jargon, people! And don't chastise me for not RTFA - there is no FA to read!
-- Language is a virus from outer space.
"... this poor implementation of Agile development is harmful to our velocity."
Roles are delineated areas of responsibility and it is everyone's responsibility to see those roles performed. If the work doesn't get done, everyone is to blame. If some team members are overworked, that will harm productivity and the rest of the team members should pitch in or suggest improvements. What is killing your velocity is the evident blame culture that you have.
I wish I could try this scrum in a safe environment, I need some sort of ScrumVM.
A scrum master is not a manager. He's only mean to organise a handful of meetings and deal with impediments. These should not take any significant time.
Based on my 12+ years in the field and from reading the description of Scrum at wikipedia just now, I conclude that the top people should be the scrum masters, because if you bring in someone inexperienced to be a scrum master (i.e. a project manager), all your projects will go to pot.
However, I wonder if you know that scrum basically looks like a pretty framework on top of the lowest level of Capability Maturity. I would recommend seriously reconsidering whether getting a better pipeline of events and allowing work to stretch past 'daily scrums' would be better.
stuff |
Seriously, somebody add some wiki-links to the story posted here... Those of us that code for a living as contractors / corporate drones have little to no idea what the fuck you are talking about.
Guessing by context, I'd say that having your best coders become code-overlords who don't actually write code anymore is a bad idea.
Finding someone with people skills and management experience and appointing them as co-director of a project, with an uber-coder as his fellow co-director, is the way to go. Let the management guy handle HR and BS from the higher ups, and let the uber-coder handle developing the junior coders and explaining shit to the management guy. Just pay them the same.
"harmful to our velocity"
WTF is that supposed to mean? You're losing money, and you wish to lose money more rapidly? Or, you're not coding fast enough?
Sounds like one of those buzzwords. Did you buy that from the vendor, as well?
"Windows is like the faint smell of piss in a subway: it's there, and there's nothing you can do about it." - Charlie Br
"Our mis-implementation of Agile includes.." ..is a pretty good idea for a ThinkGeek t-shirt.
I'm pretty sure I work with you, lunch was great on Wednesday.
For all the players putting their arms around eachother and kicking everyone else in the shins. At least that sounds like what the poster was talking about.
"Proximity to wonder has blunted our perception and appreciation of it" --Tim Hartnell in 'Exploring ARTIFICIAL INTELLI
"...seem to be completely unaware that this poor implementation of Agile development is harmful to our velocity"
Oh, for fucks sake...
I'll say this once:
Chop the little pointy horns of hair growing out of the side of your head, and get the fuck back to writing code, you stupid monkey.
funniest tag on a post ever
It immediately cuts the time these developers can spend doing actual project work - something they grouse about constantly. On the other hand, we also have an army of young first- or second-year analysts, all of whom embrace our governance, and generally perform the project administration side of things far better than their more-experienced colleagues.
On the other other hand, I have noticed that the younger consultants lack the project experience to plan creatively and come up with ways to make the process work for them. They would if they could, while the older ones can but couldn't be asked. I fear that over time the negative attitude towards governance that lingers from the older generation will infect the new guys.
Our company recruits annually, and is always running a number of internal projects. What I advocate is that the new consultants spend a while running small internal initiatives during part of their time, and then spend their second year as the administrators on client projects, before being able to "earn" not having to worry so much about all the extra overhead that comes with that sort of thing. It might also help with retaining experienced staff.
If you work on an agile dev team, this post uses every day language. (yeah, velocity is not an unusual word when referring to backlog burndown rate :D) If you're just an enthusiast or work in IT, this post is crazy off the wall nuts.
:)
At any rate, to respond to the post:
The best method of handling who is the scrum master I have encountered is by not giving the job to one single person. A rotation every 4 sprints seems to work well (we do 2 week sprints), as it spreads the load of scrum master around and it keeps us from getting into a rut when doing sprint planning and retrospectives, as a different person is running it every 2 months. You're right that giving your strongest developer the task of scrum master is asking to have your strongest developer not code as much, but if you have your intern running scrum, you may find that lack of understanding of prioritization will impact your velocity quite a lot more than giving extra work to your lead.
One additional thing to note is how efficient you are in scrum master tasks... if you're hand writing stickies to put on the scrum board, you're probably wasting time. Any half decent script monkey should be able to write a script to parse your backlog and generate stickies for you.
>> A scrum master is not a manager. He's only mean to organise a handful of meetings and deal with impediments. These should not take any significant time.
.
The Scrum Master does indeed manage impediments to the projects. They act as a "shit umbrella" - protecting the team from all external influences that are deemed detrimental to actually doing the job. They "keep a finger on the pulse" of the team - identifying problems (sometimes between individuals, sometimes with individuals, sometimes with external 3rd parties interfering). They are there to allow the team to develop the software they are employed to do... in a pleasant environment (that doesn't include phones ringing all the time, doesn't include constant multi-tasking, and doesn't include managers walking up and asking dumb questions every 2 minutes).
.
I disagree with a previous poster that the "top people" should be Scrum Masters. Whilst the role must have someone with a strong personality and understanding of the business relationships between the project and the rest of the organisation (in a large corporate at least), they do not need to have any "hands-on" technical ability (or involvement). For similar reasons, an intern is probably not a good solution as Scrum Master either. So-called "soft" skills are more important here.
.
The Scrum Master role is as facilitator - and to help "keep the team honest" with respect to Agile principles and process (regardless of what flavour your organisation has chosen to attempt).
.
I've been working in Agile teams now for 4+ years - seen good and bad implementation... had lots of success - and some failures (don't we all). Agile tends to work with enthusiastic, smart, intelligent and "bright" people. It doesn't do so well if the people are dumb, unfocussed or demotivated. The Scrum Master role includes identifying these people and either working with them to "lift their game" - or works with HR to get them out of the team.
.
I would object strongly if the Scrum Master role was not a full time position, and if they were wanting to act as some kind of technical team lead. Let developers do the development... let people who understand the technology stack make those recommendations... but don't confuse the roles :)
In my opinion, Agile is a great tool for managers, not developers.
Every manager in the end wants to ask for status reports every day.
But they can't do so, because people working for them will be upset.
Agile is an excellent way for Managers to ask for status reports
everyday.
In my opinion, TDD (test driven developement) is the only good thing
about Agile.
Here is Scott Adams about Agile.
http://www.globalnerdy.com/2007/11/28/dilbert-on-extreme-and-agile-programming/
http://www.flickr.com/photos/cote/63914774/
What the fuck is a ScrumMaster? What the fuck is this person asking? Seriously, how did this get in my RSS reader?
I am our tech lead as well as ScrumMaster. All our non-programmers are *clueless* and think that "scrum" means "complex and involved tools and processes to micromanage workloads on an hourly basis". The other project our department does, for which I am not ScrumMaster has 2 hour 'scrums' each day. Not that I actually know what I'm doing, but I know how to clock 15 minutes and I know how to build build software.
The other team (i.e. my manager) truly doesn't 'get it' -- for me to not dedicate a few hours to running to the process would lead to hellish meetings-all-day and a huge drop in productivity.
PS I need a new job :(
Pretty funny. /. should have a humor section. Is this ScumMaster something like the Keymaster?
We use scrums and things at work purely so no 1 developer is lumped with a task called "build this e-learning course" and then waste a few days trying to figure out where to start and generally sink. We implement it poorly and it works great for us.
But honestly, does no one just like write code and get on with things anymore? The overlap of academic programming theory and just everyday programming roles in business (facilitated by t'internet) goes way too far, to the point where I know developers who spend so much time on their patterns, lose coupling and complaining about how things arent "properly" agile that they end up doing most of a day cocking around and then have to do 3 hours overtime just to do their days work.
People need to just breath in a lung-full of stfu and go back to just working and getting things done.
scrum ~~ might as well call it shit
It means that the real problem is nothing to do with Agile ScrumMasters(TM) leading their teams over developing waterfalls and all to do with that fact that their management's leadership abilities are clearly only exceeded by their communication skills.
Why is it that every few years some dildo comes along and takes ages old best practices, gives them snazzy "marketable" names and calls it a great new method. Then everyone has to go to school to "learn" this new method of doing things, because your a-hole of a manager is so completely enthralled by the marketing buzz that he doesn't listen to you when you tell him that "I know this shit already".
If it was up to me, I'd shove each and every method creator downrange of a shooting gallery just to test how Agile they were.
Good Wikipedia article on "scrum."
I worked on projects 30 years ago that ran under those principles.
We didn't use those terms -- and we didn't denigrate customers by calling them "chickens."
We called the incremental daily accomplishments "inch-rocks"
How about determining what you need to accomplish, figuring out what bits need to be done to make that happen, have people do those bits, and WRITE SOME CODE?
Playing rugby is even worse than playing WoW - at least with WoW you have computers that work.
The latest Slashdot meme.
1) what is Agile??
2) Who is a Scrummaster??
sounds like a player in a game like DoTA or WoW etc.
HR will meet you in the lobby Monday. Bring a box for your personal effects.
Seems to me there are a few issues here:
If your company is "doing it right" you can raise these issues in the retrospective and hope they get picked up. If they're not doing or respecting retrospectives then they're doing it wrong, and all bets are off.
This poster is so immersed in the corporate buzz word dropping and work process double-speak that he/she honestly believes that the whole of society is actually in the same mindset. Therefore posting this gibberish to a public forum and expecting a meaningful answer. Seek therapy.
What is your scrum master up to?
I thought their over head is only meant to be 10-20%. With our team they arranging meetings, keep a bit of order, and report and handle obstacles but that is about it. Plenty of time to carry on programing.
We experimented at first with managers as scrum masters but there were problems with conflict of interests. Now someone in the team does it.
SCRUM is one of those "methodologies" that just adds cute buzzwords to activities that everyone does anyway. After looking at the Wiki entry, I just saw things that development organizations do naturally.
It's the same for "Extreme" programming or anything else. How many times have you read one of the "methodologies" or have had gone to classes only find out they're teaching something that you've done before just because it made sense at the time. A few times another coder sat down with me and we put together some things (late 80s). We didn't go around trying to brand it as some sort of "break through" methodology. The years later, I see that someone had to call it "extreme" programming or something - whatever. These buzzwords and "methodologies" are getting ridiculous.
Losing velocity? Keep up wasting your time on this shit and you'll experience negative acceleration when your company starts to lose money and cans your ass. You'll come to what I termed as "OH FUCK". The "OH FUCK" methodology happens when you suddenly lose you job and you panic trying to find a new one.
No matter how you want to spin this, or wrap it up with neologisms, it's the same old stuff, with the same old problems and (it seems) the same old organisation - just with different names. In the end you (or your team / scrum call it what you will) still has ti turn out a product. Those who help get the praise, those who hinder get the promotions :-(
Just like every development methodology before it - and no doubt, the ones to come - if you have talented people, they'll get the work done. If you have indolent people, no techniques: agile or not, will help you. Stop worrying about scrums, roles and all that malarkey - get on with the job of developing your product.
Everyone in a company has problems to overcome. How you deal with them is the olny measure of your worth.
politicians are like babies' nappies: they should both be changed regularly and for the same reasons
Maybe I could understand the question if you told me what "scrum" means.
Fata viam invenient.
I'll take the "velocity" comment to mean your productivity in a given sprint cycle.
It sounds like you're biting off too much for your given iterations. What's at the core of the challenges you're running into? Communication? Complexity of the agreed upon tasks or inability to break it down into manageable chunks? Inability to reach design consensus? Developers grossly underestimating their task completion times? Clear task list but developers standing around doing nothing? Developers waiting for a concise idea of what to do?
Find a general software PM to be the scrummaster; someone who can keep the meetings on schedule, keep people focused on the purpose of the meetings and someone who doesn't mind being a go-to person for communication. A attention to detail and some leadership qualities won't hurt. They should feel comfortable talking to any of the stakeholders and are really just meant to make sure everyone is following the methodology and that everyone has what they need to get their task completed. Avoid putting key development resources in that role as their development time is too important. Don't implement a methodology out of the blue, make sure you seed the staff with enough people experienced with the process who can guide / mentor the rest of the team successfully.
Keep in mind that short, limited development cycles with clear goals and mitigated scope creep is what you're shooting for. This is usually easiest to implement on a product in maintenance mode. For new products or significant product changes, you're still going to need strong technical leads / architects to help shape larger platform or technology choices and break down the complexity into manageable parts. Design cycles will seem to take longer than the coding cycles.
Scrum relies a bit heavily on teamwork and collaboration, often with competent self-motivated developers excited to take on new tasks and crank stuff out. You'll need a way to resolve design disputes (lead or architect). If you have a clear set of goals for that iteration cycle, but a bunch of people standing around doing nothing, then take a step back and openly ask the group what they need to move forward. You may have a group dynamic issue, lack of experienced developers, unresolved design choices or possibly a hostile development environment not conducive to self-motivation or collaboration. Get that shit out on the table and address it early.
It takes practice for the whole team to change development methodologies. Keep things simple and focused. When first starting out, take small bites and just get the process working through a couple short cycles, then expand it and shoot for a healthy pace (people shouldn't be standing around, but they shouldn't be working overtime either). You rely on your team to be self-motivated, so don't destroy that by cramming things down their throat. Get them involved in the process so they have a stake in the responsibility and outcome of the product. Look for things like unbalanced workload / contribution, the team and it's function as a whole is your lifeblood.
The team decides their pace based on what they think they can get accomplished. Management teams tend to be more comfortable with a top-down approach which - depending on how it's implemented - may clash with the methodology you're trying to implement. Keep the pigs separated from the chicken and DO NOT let your salespeople dictate time-based deliverables.
This is not a wiki.
ref: http://steve-yegge.blogspot.com/2007/09/ten-tips-for-slightly-less-awful-resume.html
I think you and your team should start focusing on developing software for the client you have to write the software for, i.o.w. back to square 1 of Software Engineering. You and your team seem to have moved yourselves into an organizational mess which takes more time to manage than the actual software development.
Mind you, your client doesn't give a hoot HOW you created the software, which language it is written in, or that you eat 1001 bags of blue M&Ms during the making, all they care about is if the software does what they need it to do. So you should go write that software, how is up to you, but if that 'how' process is actually taking more time and energy than the software itself, you should perhaps abandone that process you called 'agile' and go back to Common Sense Software Engineering principles, like defining what functionality should be implemented and actually DO that.
Never underestimate the relief of true separation of Religion and State.
I had to do deeper background research just to read the article and have it make any sense.
My flash impression was that Agile and Scrum were products of some sort and I was also a bit confused by the name as I have no real knowledge of rugby and never had any familiarity with the term before now. Some googling led me to some references that explained a lot of things but left more questions... "pigs"? Why? "Because their bacon is on the line!" What the hell?! "Bacon" meaning what? Their asses? Why can't people simply say what they mean? Are they so bored with their language that they have to play such games? Learn a foreign language for god's sake! Stop twisting and convoluting a standard and common language to the point that outsiders can't know what is being discussed. A little slang here and there can be forgiven as context typically lends and hand in assisting people to understand what is meant. But slang upon slang mixed with highly regional sports terminology? I suspect if American football terms were used instead, it would be perfectly understandable for people like me, but to the rest of the world would be just as meaningless and confusing.
The process itself is confusing as it departs from natural hierarchical management structures that have existed throughout the history of animal behavior and asserts the notion of a team sport, which is well known for its danger and potential for injury. I'm beginning to see why more modern software is buggier than older software. With so much focus on "completion" over careful engineering, a lot of details get missed along the way. I wonder if the people who support these methods would feel okay if their next car was patched together using bailing wire and duct tape?
Seriously, you code for a living and have never heard of scrum? Do you not keep up with the latest fashion in development? What will you do when you if you have to go for another job and the interviewer asks you about the latest development methodology that is doing the rounds?
"Some days even my lucky rocketship underpants don't help."
Dagnabit, all I needed was "will implement in the cloud" for Bingo.
The truth is that all men having power ought to be mistrusted. James Madison
Forget all about agile, forget all about scrum and forget all about management. The only places where I have seen some good code actually being written are the places where there were no 'process', there were no 'evangelists' and it was absolutely normal for managers and devs to swap roles in who is managing who - naturally.
No process will improve on a (welcomed) shout across the room and reply coming back in 5 seconds.
SCRUM = Short Conscise Repeatable Uniform Meeting It is designed so everyone on the team can say what they accomplished yesterday, what they plan on accomplishing today and what their current blocks are. It s meant to last only 15 minutes for a small team (dont have large team scrums... it wastes people times) and is an extremely handy tool for working with a small team daily. ScrumMaster is the person who simply facilitates the meeting and enforces the meeting rules. I have seen alot of negative comments towards the original poster... I happen to agree with him. Most companies get it wrong. Why? Methodologies are only as good as the people who implement them. No we do not need highly paid developers leading a scrum meeting... Lets face it, most developers have big egos and believe they out of the rest of the world have been enlightened. They see it as a display of their power to run a scrum meeting that probably isn't even a real one just to prove to themselves that their intelligence actually means something to someone. Find another way to feel good. People have work to do. Ok, to all the posters above that said "wank" or gibberish, etc. You simply shouldn't have posted to a thread you know nothing about... Scrum Master is not a word. Its 2. See thats part of the problem... some dev branded it as a compound word. Its 2 words I promise... Now everyone wants to be one.. :D
This reads like a scientology pamphlet.
It's sad.
Maybe it's just my imagination, but I seem to recall a time when a post about software development would be answered by people who knew something about software development instead of gamerz eager to declare their own ignorance. Anyone who imagines themselves to be a developer yet doesn't understand the words in the original post should find a more suitable line of work, such as perhaps bagging groceries at Kroger.
Everyone knows that engineers make lousy rugby players...
Seven puppies were harmed during the making of this post.
I've been a software developer for more than 15 years, and I don't have a clue which what the OP is talking about.
My opinion is that *good* developers that can successfully complete projects don't need to put up with yet another new revolutionary coding methodology that everyone will have forgotten ten years from now when all of us will still be writing software using the best common sense methodology : write specs, get the client to agree and sign, write the code, get the client to validate it, profit.
...it all makes perfect sense.
Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
Sticking an intern into a critical role like ScrumMaster is asking for catastrophes, plural.
If the loss of a few high-octane developers as ScrumMasters leaves incompetent team members behind, the problem isn't having good engineers doing ScrumMastery. It's the incompetent team members existance within your company. Fix that.
A problem is defined by the difference between the way things are and they way you want them to be. You have not adequately defined the problem, or problems, here. This seems to be common among "Agile development" aficionados, and particularly in the case of SCRUM (which accepts as a given that the requirements are not complete before starting on the project).
The two things that usually help straighten out this type of mess: First, a business-case justification for the project. This means that if the project is not useful it isn't implemented. Need to learn how to make a good business case for a project and/or a solution? A good place to start is the book, "businessThink" by Marcum, Smith and Khalsa http://www.amazon.com/businessThink-Rules-Getting-Right%C2%96Now-Matter/dp/0471219932 .
The second is as complete a list of FUNCTIONAL requirements as possible. And remember, each functional requirement is subject to the same case analysis as the whole project. (Re-read "businessThink".)
I get a sense from your post that you are not in a position to initiate any action, and your role is to criticize and whine. Don't. If you can adequately describe the difference between the way things are and the way they ought to be, then someone with authority will listen to you.
Good luck.
"The mind works quicker than you think!"
[Citation needed]
There was a leader in my organization at one point who liked "shiny object" names. He liked to use terms that were getting some press in whatever way seemed useful but they never mated up to the real meaning of the term. Scrum is one that is abused and is so far from the three (or four, depending) question, 15 minute, stand-up meeting it's sad. So no, you're not alone.
Did it impact your speed or direction?
What is amazing to me is that some folks actually think that applying one methodology over another is the be all fix all for a bad development team, poor work habits, and/or poor management. The lack of a plan can't be fixed with Agile practices, although agile can overcome a poor plan. Agile is hot right now, just like capri pants were a few years ago. It's fashionable.
A lot of developers love it because they hate writing documentation and think anyone that looks at their code should be immediately enlightened as to what they were thinking at that moment in time. These folks point to agile manifesto and scream "Working software over comprehensive documentation". Sorry - sometimes you have to write documentation.
Writing good code involves some planning, some thinking, and with teams LOTS of GOOD communication. It's a creative process as much as it is a engineering or scientific one. If you have a strong management team, good people, and dedication you will quite probably produce good code. It doesn't matter if your a scrum master, agile devotee, or a guy that still starts out with a flow chart. Agile is not the be all end all of coding, and even properly implemented won't make a project successful.
-cluge
"Science is about ego as much as it is about discovery and truth " - I said it, so sue me.
I don't mean to be yet another person ripping on Scrum. However the worst person I can think of is a manager who thinks "Scrum Master" is what they call "Project Manager" in scrum. (As in he'd assign people to tasks, expect you to report to him, block the stand up to ask questions on your status. Oh, and he was in charge of writing down what the tasks were and updating them so at the start of the scrum you couldn't even figure out what you were supposed to be working on. Oh, and he didn't actually get rid of roadblocks.) Just personal experience but the SM can be a major choke point if it's done badly. (Our current SM just gets the hell out of the way which is an improvement.)
Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
It could be worse than losing your best coders. Our scrummasters are the managers of the scrum team. Yes, that's right. The scrummaster's direct reports are on the same team. So... candor pretty much goes out the window.
One specific consequence that I didn't see coming... Upper management recently messed with the sprint and pulled people off. Yes, I know we're not supposed to let them do that, but the big bosses didn't seem to agree. Naturally, we only completed about half our stories. So in the demo, the scrummaster manager reported that we completed all our stories so that it wouldn't look bad. He just deleted the incomplete ones from our list.
In other words, upper management didn't learn that their behavior was bad, so I'm sure it will be repeated.
You know how babies if they can't see something they don't know it exists? Scrum is like that. Features and fixes that can't be seen are often treated as if they don't exist while the methodolgy goes nuts over things you can see. (Like fixing threading issues which might be hard to notice on the outside world because they only cause bad things occasionally but are glaring and need to be fixed when you look at the code. Why yes, I ran into that and I had to tread carefully to get the thing accepted since that baby mentallity showed up.)
Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
AC, you actually seem to consider keeping your head in the sand a virtue. Would you want an auto mechanic that stopped learning ten years ago? Or a doctor? There's a big difference between fifteen years of experience and one year of experience fifteen times in a row.
By the way, there's absolutely no consensus in our field that what you call the best common sense methodology is a good way to go. You are preferring contract negotiation over customer collaboration. In fact, that's the exact opposite of what many talented thinkers in our field espouse.
http://agilemanifesto.org/
Agile does not work, it is a way to pretend having a method behind the fact that after each 3 week "sprint" you are between one and four week late.
Inherently Agile is supposed to enable "small" teams, and be "cheap" but has too many roles to implement in a small team...
I you see a "black belt agile scrummaster" check your wallet and run away.
It's like Dungeons and Dragons. Follow the rules too rigidly and you're so busy rolling dice that nobody has any fun.
Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
You were so close, but then you got wound up in a slave/master metaphor. So many people think that what everyone else on the team is doing is easy, and not important. Frankly this guy's management, by making a good developer a scrum master, probably has a clue. The fact that the team isn't working may well be a failure of management -- to fire people who are not productive. My guess is, however, that day is coming. This is probably a case of giving a disfunctional team enough rope to hang itself. I'd get an intern all right, but he or she wouldn't be scrum master. Which person on that team would I fire first... hrm...
If you mod me down, I shall become more powerful than you could possibly imagine.
I always hear "agile, when implement correctly, makes software development a pleasure." Two things about that statement 1) Poppycock. It's never easy 2) No one fully implements an agile development process and if they did it would turn any large scale development process something akin to a three ring circus.
People are his problem, not process. You can take any methodology or process and twist it to your own ends. Along the very same lines, I'm not a big fan of the metrics surrounding process. Like all statistics, it can support whatever story you want to tell and can't replace the insight of someone who knows what's really going on.
:-)
The core problem is that coordinating people is positioned as "moving up", so you get people in those positions that aren't very good at it. Programming is a very different skill than coordinating people. To me, managing just another skill set and the manager should be treated like just another team member. And of course, the other core problem is that most people aren't very mature.
I see a lot of negative comments here about Agile, and I think it's because those saying it just want to be heads-down coders. Or worse, they don't want to tell anyone what they're doing in order to keep control over it. What Agile does well is to get the business people involved in the project in a way they can understand. Instead of a poorly written requirements document, it's an interconnected web of sticky notes. They can SEE the complexity. If a project is late, it's no surprise because they've seen the entire journey.
find me at haszak.org
My boss, one of the best developers on my team, now has about 1/4 to 1/8 of the time he used to have to write code. I've found that I've had to step it up and take charge of a lot more work (which has been a great growing experience for me) since he's going to meetings every 30 min. to an hour.
All I can say is that some people seriously need to read The Mythical Man Month.
On a somewhat of a side note, I think too many institutions (college or trade) simply don't effectively teach (or don't teach at all) industry best practices such as:
-source control - every project you do in school should have to use source control
-build scripts - rather than turning in a binary, graders should checkout your code from your source control and be able to build and/or run it in one step
-bug fixing - project deadlines should be in phases where you are given a certain number of times you can have your program reviewed by others (TA's or other students) and bugs submitted against your, or your team's, bug database
-team work - once you get past the weeder courses a lot more work should be team work. If you are having your students use source control and a bug database, the graders and professor can easily see who did what and what the dynamics of the team were (if any). I'd say you could even go further (if it logistically made sense) and tell students to use an email system for the class for communication with their team about the project. Then these emails could be part of the grade since they are being graded on teamwork. Plus, having teams would mean projects could be bigger and more rewarding (ie: fulfilling to see run)
-documentation - for team projects, provide a wiki for each team to document what they are doing and communicate
Universities or trade schools are doing their graduates a disservice by sending them into the real worlds without experience in these areas.
Faith is a willingness to accept something w/o complete proof and to act on it. Reason allows you to correct that faith.
Read http://www.amazon.com/Art-Agile-Development-James-Shore/dp/0596527675.
The job of the scrum master is to keep everyone organized and to keep stuff unrelated to your projects from reaching your developers. Your scrum master should be someone who is good at running interference and getting other people what they need without involving the developers. If your experienced developer also has that talent, then he needs to be your scrum master. If not, get some fresh management flunky in there, you might have a chance to teach someone how to be a good manager in the process.
I've lead scrum projects for a few years (actually introduced the technique to a few). It is a great tool but hardly is a silver bullet. Over time, there are tweaks needed to meet organization style and needs--including the kinds of products, release standards, regulatory environment. If you try to use as-is I think you'll find issues and ultimately fail.
I think scrum has some very nice characteristics (not necessarily unique to scrum):
- Lessons developer stress by allowing them to focus. You define the work for a sprint up-front and the developer knows their stories and can attack them as necessary. Everyone knows the stories and tasks (they are in your face..either in a tool, on a white board, stickies on the wall, whatever) and can trade or help as needed.
- Helps drive results of working software. With the sprint concept, the team is expected to demonstrate the work product each cycle (3-5 weeks). This doesn't have to be software but you have to be able to show something specific. I think this helps eliminate the month long development grinds only to find nothing works right when integrated.
- Gets the developers talking. The stand-up meeting (what is done yesterday, what is planned for today, what help is need) is very valuable to get the developers interacting. Very easy for software people to sit for long periods banging out code and banging their head against the wall. The daily meeting helps to uncover duplicate effort, solutions to problems, and allow an opportunity for senior developer to recognize where people are struggling.
Just remember: scrum isn't an excuse to code first, design later or ignore gathering detailed and real requirements (a story isn't enough).
I love the sound of distortion in the morning -- webcommando
I recently started at a new company where the boss is obsessed with Agile development. Granted I havent read much on the subject, I basically work alone so I use the method that works best for me, but he has told me that he believes the idea to be 'Don't make any plans, just do it, so that you can change it easily if you have to'. Don't get me wrong, I like the idea of being able to make changes on the fly, but as a result our entire codebase is full of duplicate code, badly designed classes, and multiple functions all designed to do almost similar things that it's obvious the guys coding didnt even know was there... they were all just 'doing it without planning'.
That is a mistake. This is a natural function for the project manager. They should run these meetings.
Jezus you couldn't be more wrong. The fact that you have a deadline at all means you have a process. If you're not making a one-off piece of crap software item, you need process. Game developers have no concept of reuse, and they constantly reinvent the wheel, hence their penchant for shouting across the room and getting a reply in 5 seconds.
If you are not familiar with the SCRUM methodology and therefore don't understand the terminology. Don't reply.
Scrum masters should not be developers or managers. Yoda? maybe, but definitely not developers or managers. We started out using a manager and they couldn't keep the two jobs separated and it ended up in an exercise in micromanagement. Once we changed the scrum master to a junior business analyst(project manager in training), the process ran smoothly. Scrum masters work best when they work for the development team, not the other way around.
I'm not quite sure of all the reasons that these type of changes fail and I'm not familiar with scrum, but it sounds similar to other changes I have encountered in business processes.
Take Quality and ISO: just about everywhere I have seen this, there has been an epic failure of some type
Usually because people can't accept a transition or change. Why? Usually because people take it, that if this works better, then I am a failure, because my past ways were wrong. So they look for ways to make it fail. In this instance, one of the easiest ways to make it fail is to follow it literally to the letter and not bend it to the business. Or a better way of saying it is: Instead of taking the best parts of these processes and applying them to the business current business process, just ad-hoc change everything.
Example: From Quality and ISO Management Reviews: I have seen this transition in 3 different environments.
1. Every report within management and to management had to be changed or was mandated to be changed sometimes a little, but usually a lot. Result: Information that was critical or that needed to be passed along wasn't, just the new numbers. Reports became a complete waste of time and meetings which were a 60% waste of time, became a 90% waste of time. (epic fail: failure blamed on Quality Management and implementation of ISO)
2. Just change the titles of everything and continue on.(epic fail: failure blamed on Quality Management and implementation of ISO)
3. Look at what is currently being done. Consolidate information that is needed to meet business goals. Define business goals objectively. If the TPC reports aren't doing any good, get rid of them. Usually, the hardest part here is that management has a real hard time defining the business goals objectively. (some improvement)
I was going to go into SPC, which is a subset of Quality, but the mistakes in it's usage are about the same and happen for about the same reason.
So, the question I would ask is roughly the same you ask. Does it make sense that the best coders are scrummasters in your business process/environment? I think what you are going to find are answers which are not black and white. And what you should be looking for here in the answers are the answers to the questions, When is it a good idea for the best coders to be scrummasters and when is it not? Which, will probably evolve into, what makes a good scrummaster? Which evolves to, who within this group of people would make the best scrummaster?
I'd point out the successful projects on my CV, and then point out that they were all accomplished using common sense - not some bullshit laden methodology of the week. My "methodogy" if you can call it that? KISS.
Scrum Masters are accountants. Do you want a developer doing your accounting, or an accountant doing your development. The answer is neither, you need developers developing and accountants doing paperwork.
For everyone else that doesn't understand agile development or is afraid of the process.
Agile is a great development process, it gives the everyone in the company a rallying point around 'a process' which is easy to understand and requres only minimal discipline (beyond good development practices). It forces people to think it terms of sprints which in turn means less distraction as everyone knows what everyone else is up to (stand up meetings, etc). It also gives people a neutral ground for coding and development process. The risk without something like Agile in place is that the team(s) end up rallying around the process's of a few (one?) great developers which is a problem. Not everyone is a great developer and therefore cannot use that persons process. Or you get manager ego in place, typically in the form of an R&D lead who for well intended but misguided reasons ends up putting in something that doesn't work as he struggles to find the lowest common denominator of process that the key people will sign up for. It happens. Secondarily, it forces management at the high end to focus on what it takes to build a successful development team. Team leads, the appropriate stakeholders, user stories, meetings, etc... the entire process leads to setting and meeting expectations that everyone can understand because it meets not only the needs of R&D but the information flow required by upper management.
Prior to implementing an agile environment we were a productive development team, easily outpacing our competitors and turning out higher quality code. Then we started to grow. This growth started to create problems because the rate at which we were growing was causing a lot of friction in our core team and a lot of misunderstandings with management. Before you (those trolls, you know who you are) run to point the finger at management keep in mind that this is an R&D problem. You do NOT want it solved by mangement, you want it solved internally and championed to management. I have been a developer/consultant for over 25 years, and I would love to have 1% of the money that was misspent through the wasted efforts of developers blaming mangement for their problems, I could have retired a long time ago. It is an R&D problem, which requires a process which allows clear communication to management not only of the state of development but of the investment required in development that will further guarantee success. (scrum masters are the R&D version of accountants for this reason) Yes, Agile is as much about management as it is about developers. After implementing the basics of the Agile process our efficiency went up 20% (measurably) and the quality of our code is much better. BUT, we are using a minimal Agile framework. The mantra here is use what works for you, but use it. Get management involved early on, and often. Enforce the discipline and use good development tools. It all works. We are much better now, R&D is more productive than ever, the entire company understands the ROI of a given project enabling not only greater visibility and better up front analysis, but also better communication with our customers. Our use of Agile is so pervasive that our customers now speak in terms of sprints and backlog. They understand the goals we set and timeframes involved and the fact that we hit our targets (software on time! (almost)) gives them a process against which they can generate further requirements which in turn drives more buisness to us. In short, it extends the understanding of the R&D process through management and sales and out to the customers so that everyone is better able to take advantage of the work in R&D.
Scrum is a project management methodology. The role of Scrum Master is a lightweight project management role.
Would you make your best developer your project manager? Hopefully not, unless that person was even more valuable to the company as a project manager.
Choose your Scrum Master using the same criteria as you would a project manager, and leave your best developers developing if that is where they are most valuable to the company.
..Agile is a crock of shit, news at 11:00.
Russell?
I think there's a balance point with the disposable model. In my company we have a small core of long term developers and engineers on the scrum teams that help with direction and build out the most complex parts of our apps. Then we have a variety of staffing solutions to choose from and mix and match depending on the product needs. We may bring in a specialized firm when dealing with a specific product (e.g. IBM MQ), find highly skilled contractors for up to a year or more to supplement our core employees, leverage an offshore team for well documented, tedious, or easily repeatable work.
Managers that try to code are nothing new and not a scrum only problem. If they have the desire to manage then they're not hard core coders and you're better off moving them to management and making space for dedicated professionals. If they're not your manager then you can show your velocity graph to management. If they ignore it then it's their problem. So if you're really into this management stuff you're not a hard core coder either. Why don't you suggest yourself for management and show them your great ideas.
-- Programming with boost is like building a house with lego. It's a cool but I wouldn't want to live in it
How about employing someone to teach you proper grammar?
Look, I know that all you "uber-l33t programmerz" have mastered the syntax of a zillion programming languages: By comparison, mastering basic written English should be simple.
'At my company, our mis-implementation of Agile includes employing some of our most highly-paid principal engineers as ScrumMasters'.
Better, avoid the neologism: 'At my company, our incorrect implementation of Agile includes employing some of our most highly-paid principal engineers as ScrumMasters'.
How difficult was that, really?
... don't get started me with Agile. Like someone else said in the thread, it is great for managers and not for developers. Actually, this is how I see all these fashionable methodologies that people come up with. This is the universe of managers. The universe of people who push paper and attend meetings day in and day out. It caters to them and not to the people who are actually do work. I hate all this crap. Let's go back to the basics here. The Roman Empire conquered half of the world without Agile, without the flashy project management software, etc. They did have to organize themselves. Imagine the logistics involved in such an endeavor. My point is that this is basic stuff that does not require fancy software or methodology. It simply requires good leadership and organization.
BTW: In my company, we not only do scrums every day but by the end of the week we are required to send a weekly report to everybody detailing what we've done. WTF? I already mentioned all of this in the scrums. My new approach is to get a bullhorn and announce to everybody in the room any time I start/end doing some task. This way, I can avoid all the scrums and all the stupid reports. LOL
How come we only ever hear about agile failures?
If you are confused because you are not a software developer, please don't complain about this article. Just stop reading. The question is by a developer and for developers. It obviously should have had more context so to help non-developers know that.
If you are confused because you ARE a software developer, but don't know what scrum is, or don't understand the scrum jargon, stop complaining and go read up on scrum right now. Agile and scum are part of the culture now. Whether good, bad, or ugly, they're here to stay, just like OO, client-server, and waterfall. You only make yourself sound stupid when you make comments of the variety: 'I've never used it, so it must not be imporant, but I did skim the wikipedia article and it sounds like a stupid idea.'
With that out of the way, let me say the least dysfunctional team I have ever worked on used scrum. The engineers chose to use scrum. It was not forced on us by management. The reason we chose scrum was that we'd all been around the block a few times and understood that process just gets in the way. There is no way to avoid schedules, deadlines, and status meetings altogether. But we wanted to spend as little time as possible on that stuff. We chose scrum as the least intrusive process. The manager pretty much ignored us, we did things in a way that made sense, and we got a lot of work done.
So, to answer the original poster, in your next sprint retrospective you should say '${SCRUMMASTER} has turned into a glorified spreadsheet jockey. That's not good because he used to be our most productive coder. We need to find a way to get him back in the game.' Either the team will adjust the role of scrummaster to make it work within your organization, or you're not doing scum right.
Hint: Hiring a beancounter to jockey the spreadsheets is not the right answer. I've seen that tried, and the results were not pretty. Not only did the beancounter do a bad job with the spreadsheets, but he tried to be the boss.
http://xkcd.com/756//
The problem with scrum is it ignores the psychology of software development.
You want to put an intern in charge of the process; probably someone the least experienced of all the developers.
And the scrum master has a role that puts him/her in charge of the whole process, and as enforcer of the rules, essentially a management position.
Your average engineer won't look on this kindly. It's one thing if you put an experienced PM or engineer in charge of the process, putting an intern in charge is like an insult to the dev team.
Honestly, you're probably best rotating the job of ScrumMaster every few months between all developers, so it doesn't seem like the position is special.
I had a friend tell me how great and productive scrum development worked. His description, though, sounded basically like the model that many OSS projects evolve towards: instead of monolithically specifying the product, you do things in a set of short-term development sprints focused on finishing off selected features. Sounds very much like the operation of all the OSS projects (Linux being a particularly strong example) which do short, deadline-based releases and include whatever features are done.
To me this seems more like a formal version of what many programmers are naturally inclined to do, as opposed to imposing a structure of what they "should" do, as in waterfall for instance. Is this a good thing? I don't know.
Ah, you were doing so well and then you started talking about the uber programmer silver bullet. That's Old-Timey religion, but it's still religion.
I hve been in two different implementations of scrum. In the first implementation, management only viewed it as a way to get more work out of the team, and refused to change course or admit their mistake. The product owner and scrummaster were the same person, they insisted on changing the scope of the iteration midway through, we never ever passed an iteration and were going farther and farther away from doing so as things went on, and morale dropped like a stone. Things became very acrimonious. I left that company a few months ago, this being one of the reasons, and as far as I know they are still doing their misbegotten bastardization of the process.
Scrum is a very good idea when it's done exactly like it is supposed to be, by management who are willing to entirely and completely commit to the process, and when it is done on teams whose product cycles are compatible with scrum, such as developers. It does not work with operations type people, such as sysadmins, whose time is mostly spent putting out fires, and it certainly does not work when incompetent management refuses to see it as anything else but a bunch of little waterfalls. Unfortunately, for me, it's nothing but a buzzword that makes me want to viscerally run far, far away whenever I hear it.
For linux tips: http://www.linuxtipsblog.com
If they are the leads of the team, regardless of the methodology, they'll put time and energy in to facilitating the team and communicating outside the team. That's what team leads do. Your agile teams should be at least partially self organizing and the scrum master position is more like a coach during the game. If it's taking too much of their time, something in the organization isn't working with agile, someone somewhere is broken.
I think that a lot of organizations are broken and they want to try agile as a way to fix things. No methodology helps product owners develop a more clear idea of the product or turns irrational ideas in to good ones or turns mediocre teams into great ones. If anything, agile will mask some of those problems and make others show up. I've been trying to develop a list of indicators for when agile isn't working. The scrum is a big one. Is it at a mandatory time that isn't good for everyone? (8am mandatory scrums are a bad sign, especially if there are a couple team members who naturally want to show up at like 8:45) Does scrum naturally flow or does it go in to the weeds? Do people talk in code in scrum ("I fixed defect 12422 and I'm blocked by feature card 432...") or do they talk openly? These things indicate a bad culture either by the team or management or both and that agile simply isn't working.
A team lead can be a great person to master the scrum, if the rest of the shop is agile. The whole team dedicates time to iteration retrospectives and iteration launch meetings, it should be almost no work during the daily scrum and them marginally more work outside of those team times. Well within the range of something a good solid team lead can does and probably normally does anyways on a healthy team. If the team is insecure about losing "coding resources" then that's really a team problem and if the scrum master simply spends the whole week with non-engineering team stake holders then something else is broken in the organization. There are a lot of places that want like some sort of rule book to follow, "do these 10 things and you're agile." If you think that or people in your organization think that, it's doomed. Everyone has to have a commitment to quality and satisfying customers and to the product. You can't take a fully waterfall shop, start scrumming and make it agile.
[sarcasm on] I mean next thing you tell us is that we should break up long blocks of code into separate functions instead of writing 1 function that's between 1 and 2 thousand lines long.(Or that sections of repeated code should be replaced with a well named function.) Oh, and that we should give variables sensible names, not stuff like naming a stack "q". [sarcasm off]
Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
Here it is
Yes, because it's always a good idea to follow the everyday pronouncements of 'talented thinkers' instead of applying thought to the decision? To be blunt, we would all be a great deal better off if we sat down and thought about whether the latest pronouncement from the Notional Leading Talented Thinkers Of 'Our Field' actually made sense in our specific circumstances before attempting to apply them in arbitrary places.
As one who has spent significant amounts of time trying out Agile/Scrum methodologies - the results have been extremely variable, not everyone gets on with the approach, and the one thing that is guaranteed in the attempt to apply any damn methodology (or even method or approach) is that the more pretentious or faddish-appearing the buzzword, the less attention will be paid to it. Scrum (as such) has failed to grab the attention of many developers I know or work with because they see it as asking them to buy into something that they see as self-important and valueless.
We have the same issue in manufacturing except they are called Six Sigma Black Belts. Some self
proclaimed expert fudging numbers to appear to make some sort of productivity gain. Scrum Masters
as well is a feel good step giving the appearance of "making a difference" to upper management.
I generally stick to the "Builds Shit That Works Methodology". Pretty much the same methodology that is used to
develop the linux kernel.
In reality what you find is one or two guys that actually build stuff and a half dozen cannot build shits running around claiming they know how (definition: Scrum Master).
Got Code?
You are 100% correct, it is what I call the 90/10 rule. 90% of of the world talks shit and the other 10% can actually do shit. I don't care what shop
you walk into there are one or two developers actually capable of writing good code and getting things done, the rest are just along for
the ride.
Got Code?
The scrum works. The IBM PC computer was created in 1980 actually by the scrum method with small self organizing team (12 persons) who operated on their own in a converted warehouse in remote Boca Raton, Florida with only quarterly corporate reviews.
Microsoft included agile method as one of the templates in their Team Foundation Server. Scott Ambler is now the Practice Leader Agile Development at IBM Corporation in the IBM Methods group. And finally Google implemented Scrum in Adwords. You may find the references in my site (the personal blog part) if you wish.
And yes the main problem is to convince the managers and the team that scrum is the trade off between the innovation freedom and the product delivery according to the schedule. Actually the problem is in the education and ambitions.
Not all managers are as wise as Ronald Reagan who used to said "Surround yourself with the best people you can find, delegate authority, and don't interfere as long as the policy you've decided upon is being carried out".
If there is no the strict schedule (like in most Google projects, or Open Source) all you need is the good people. However, if you have the schedule and deadline, you need the scrum.
Hey Guys I've been working on a software company that uses Agile Methodologies for software development for more than 8 years now. And let me tell you something about Agile and Scrum, for those that didn't get the full grasp of the concepts: Agile is a software development methodology that focus on iterations to rapidly getting working software, over process, tools and extensively comprehensive documentation, and also focus on the end users feedback during the software development iterations of the working software, to respond much faster, and within budget, to changes. This is a very short description of the Agile Manifesto that you can find on the web. The benefits of the Agile Methodology is not for manager to keep track of the coders productivity and control team or individual KPIs, but to focus on what it's important: to get working software that responds to the market/business or end users real needs. So instead of having a full and comprehensive 200 pages requirement's document at the beginning of the project, and take 1y and a half to deliver the first running version, you get a smaller and lighter version of the overall requirements, and present smaller working demos of the software every 2 weeks or 3 weeks, giving the change of the end users and the business itself provide their feedback, allowing to change the application in the next iterations, and with new requirements that usually didn't match the 200 page requirements document of the beginning of the project afterall. Regarding Scrum, Agile Software Development Methodologies is much more than just a 10 to 15 minutes scrum of the ongoing work. Scrum should be a very short status meeting to address how to overcome technical difficulties from the current iteration, and not just present a "how the project is going" report to managers. The Scrum Master is not necessarily a manager, but usually, due to it's experience, can also be a team leader. But it's main role in a Scrum is to drive the scrum, and focuses it to what's really important for that iteration to guarantee that all developers are aligned an on scheduled for the working (demo) software version. Usually, in the scrum, the Scrum Master shouldn't care if the developer has been coding fast or not, but he needs to provide immediate decisions or action items to address any presented problem. And even though this is definitely all about programming, adopting Agile Methodologies must be wide spread throughout at least the team using the methodology, but in the end, for the entire company R&D. In this blog there's also more information on the basic steps that a company should take to adopt the Agile Methodology, a concrete approach for Enterprise Rich Web Applications Using Agile Web Methodologies. In the end, the team or company, doesn't necessary needs to adopt all sets or rules and guidelines of the Agile Methodology. Like the methodology it self, it can be an iterative and ongoing process. Cheers
in our organization we simply employ a project manager as a SCRUM master, not a developer. this makes it easy for him to perform what a SCRUM master does, which is in fact a project management role. developers are happy, as the SCRUM part of the day really takes 10 minutes of their time, and then they go back to work (or to lunch) right after the SCRUM meeting.
No process will improve on a (welcomed) shout across the room and reply coming back in 5 seconds.
That's great if your coding something small and used on only one system (like a console game), but if your product needs to work on a very wire range of variable systems, and your development team consists of more people than can sit in a single room, or is spread out over more than one physical building, this method simply does not work and some structured process becomes necessary.
- James
Our scrums take less time than it took to read this article. Chances are you're doing it wrong.
Attention deficit disorder is a complicated issue, spanning several major... HEY LET'S GO RIDE BIKES!
Seriously, who the f*ck comes up with this stuff? After trying to figure out what the hell a ScrumMaster was I came across this little gem in the wikipedia article for Scrum(development)
"A number of roles are defined in Scrum. All roles fall into two distinct groups--pigs and chickens--based on the nature of their involvement in the development process. These groups get their names from a joke about a pig and a chicken opening a restaurant:[5]"
Pigs and chickens?? Are you f*cking kidding me?? Does any other engineering profession come up with crap like this? Do civil engineers sit around deciding who the ScrumMaster is going to be when they're gonna build a bridge.
And this only works for small teams you will notice. Scale the team up for a big project, add some junior people and the whole pony show falls apart, fast.
GPLv2: I want my rights, I want my phone call! DRM: What use is a phone call, if you are unable to speak?
Scrum master = Project manager!!!!!
Scrum master is a fancy word for project manager! If people start realizing this you wouldnâ(TM)t have the shit that the poster mentioned going on. Who in their right mind would make their technical lead or an intern a project manager...
GPLv2: I want my rights, I want my phone call! DRM: What use is a phone call, if you are unable to speak?
Haha. You work for Yahoo!, don't you? The biggest Agile cluster-f*ck I've ever seen.
Scrum isn't all that bullshit-laden. I haven't used it, but during a presentation I was at, I remember going "oh, this makes sense" or "this is already what I'm trying to do". And I'm not exactly known for loving new methodologies and buzzwords ...
Of course, people will still fuck it up -- some by being overly cynical, others by trying to bend it so that their role is whatever it always was, customers who really still want the same detailed pseudo-control that they always used to have ...
SCRUM like other Agile methodologies is about self managing teams, that means the "team lead" or "manager" positions are no longer needed. The team makes all decisions concerning the project they deliver. This is the key point and the hardest for everybody to understand. People don't like having to let go of their power.
The scrummaster is just a facilitator of the process and it is highly recommended for him to go through scrummaster certification training. A properly trained scrummaster can lead several SCRUM teams. Hire a experienced scrummaster and send your senior developers back to what they do the best.
SCRUM is so simple most people complicate it.
HTML is obsolete. It's time for a new, simpler and richer markup language.
Here's the Google Techtalk, for those like me who have no idea of what Scrum is...
Scrum et al on Youtube
http://www.youtube.com/watch?v=IyNPeTn8fpo
Cheers,
This "highly paid" worker wouldn't happen to be yourself now, would it?
This seems more like "whine whine" than 'ask slashdot'. However, since you asked.
If you cant do agile/Scrum or are afraid to try, stick to "Waterfall", XP or whatever the hell you've been doing for the past xx years.
You are spot on, yet conveniently overlook the fact that most developers are not the "best" and all these methodologies are there to get the other, say, 90% of the IT workforce productive.
The original poster's complaint is the removal of that top 10% talent from what they do best into an administrative job that can be performed by anyone off the street who can follow a 10-point checklist every day (which is why Scrum is popular yet ironically never implemented correctly). It's a management blunder of the worst kind.
Just code the damn thing -- WHY do you need cycles, iterations, and schedules? Processes are just red tape that get in the way of getting things done.
Best reply I've seen yet. Someone please mod this up!
"This mission is too important to allow you to jeopardize it." -- HAL
you are doing it wrong.
No one way is 'the right way' and this retarded idea that you follow someone elses method and tout how you use the 'XXX' process is a outstanding sign that you actually don't know what you are doing and are just following someone elses example trying to shoe horn it into your situation because you can't manage the development process yourself.
Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
The issue with adopting agile / scrum is that it's a lot more complex than just giving a few people some new roles, reading a book, and then magic happens.
You have to start with management who is completely committed to the switchover. A few have responded that their management 'used' the process in their experience. This obviously doesn't work.
There have also been several who have said the problem is that everyone around them is stupid or that management just needs to go get a few cowboys and get rid of everyone else. These are naive soles making this statement. The cowboys and the ones who are otherwise full of themselves are one of the biggest problems in forming a successful and productive development team. Management has to be ready to let some people go when switching over to agile/scrum. There are simply people who don't know how to play with others in the sandbox and they don't meet the requirements for what is trying to be achieved. The script-kiddies who are scoffing at even the discussion of agile/scrum and the various terms can be removed from the conversation immediately.
More effort needs to be put in up front on truly educating everyone on agile/scrum and determining what a particular shop's implementation will look like at the onset. Get someone in-house which really knows this stuff to help answer questions and to mentor. Invest the time up front to do some team building and to identify those people who are entrenching in an effort to protect their fiefdoms.
Finally, everyone has to be open to change. A particular setup that works in one shop may not work as well in the next shop. The entire setup itself must be agile and must be constantly refactored - agile/scrum is about much more than just the code.
Now... to talk about the question that was posed: Is it a bastardization of scrum and an otherwise poor decision to use your senior developers as scrum masters? There is no set answer to this because of all of the dynamics mentioned above. I would personally be suspect of a situation where the senior developers were just randomly made the scrum masters because the are the senior developers.
Scrum master is an important role which needs qualified people filling it. If your senior developers are truly qualified and that is the role they wish to play in the team, then the should not be forbidden from doing so. However, in many cases the uber-coders do not have the skills to be scrum masters. You can have a brilliant teacher who can't explain quantum mechanics (and doesn't need to) and you can have a brilliant scientist (who understands quantum mechanics) who can't teach. They can both serve spectacularly in the proper context and both will fail utterly in the wrong context.
It sounds like your company needs to invest in having a qualified and experience agile / scrum expert come in to assess the situation and consult on the appropriate changes. If management resists the changes then the problem has been identified and there probably isn't much that is going to succeed until that problem has been overcome. Otherwise, if there are some individuals in the way then those individuals need to be given the pep-talk of they can either work in the new environment and where it is going or they are free to explore the market for a place they are more comfortable with.
Bush makes our troops prey...
Do you really think after decades of best practices development someone came up with a completely new idea that's better than what there was before? Of course not. All "new" ideas are either rehashes of old ideas or crap. Agile is crap. Most others are rehashes of the spiral model. Can you succeed using crap? Sure. That doesn't make it good.
At my company, we've invented and successfully implemented a new software development methodology. We call it Acelvolution. We only hire pre-pubescent humans in programming roles. We have a cadre of experienced testers. We carefully test and log all the software defects.
Once per quarter, we run a report on the defect base. We sort the developers in a list by number of defects per widget, descending, then we murder the top 10%. The bottom 10%, or the ones that produce the fewest defects per widget, are given sexual maturity hormones and encouraged to reproduce. The rest of them are given hormone treatments to retard sexual maturity and encouraged to work harder making fewer mistakes. Our standard software developer employment contract gives the company right of first refusal hiring our developers offspring. After only 17 generations, we are proud to report that our software defect rate per widget has declined by 34%.
Acelvolution. You're going to hear a lot about this new methodology in the next 5 years.
Am I the only one that didn't understand a damn thing in that post? Are you playing rugby in your office?
Like the entire discussion isn't flamebait. Moderator, I challenge you to enter into a discussion with me regarding the management of software development teams, and Agile methodologies. Obviously you are not aware that the first practice of nearly every agile methodology is assembling a competent team. Agile methods specifically reject the notion that you can take random people and assemble a team to develop software efficiency. The person who submitted the original discussion topic doesn't show many signs of being an appropriate member of an agile team. I'd fire him, first.
If you mod me down, I shall become more powerful than you could possibly imagine.
One of our main engineers/developers became the ScrumMaster, doesn't mean he doesn't develop anything anymore, just does it less. And we only have one ScrumMaster for 3 scrum teams. We have 3 week sprints and just seperate the work amongst everyone in the team, we have 'team leads' as in the person with the most experience or a dev manager but they get work too depending on how much time they need for other things. We use Rational Team Concert to help keep track of all of the information we need for the three teams, our burn down, our velocity, what work each team has to do and our sprint reviews, it is also our source code repository. Works out nicely so far.
some one explain this to me A short description of the role of the ScrumMaster. ... ScrumMaster. The ScrumMaster is responsible for making sure a Scrum team lives by the values and practices of Scrum.
Source : http://www.mountaingoatsoftware.com/scrummaster
I hate people who think there are 7 steps to every problem and the like. There are too many variables in too many combination's in a project for these things to work. Budget, timeline, skill lvls, peoples lives and personalities Either the guidelines are too simple or they are so long and complex as to become useless for it's intent, like union laws, or such.
You obviously have weak leaders in your company. Take charge, insist that they make you scrum master, raise your pay and fire the dead weight. If they don't do what you say, use every available means of persuasion, coercion, threats and violence to get what you want. Whatever you do, don't post whinny "my manager doesn't do what I want" on slashdot. Be a man.
There is no reason the scrum master can't be the highly paid individual while they continue their other duties. You seem to have some bias against this occurring- perhaps because its your opinion that they aren't being well-utilized. But you'd have to provide more information before anyone could validate whether that is true.
For all those confused people who didn't understand what they googled...
Scrum master == junior project manager or secretary
Product owner == liaison to product management
pigs == the software developers, and by the way, it is a silly little analogy not a daily term in scrum.
So you have a scrum master who makes sure shit happens when it should. Morning meetings, demonstrations of work to the people who hired us, and their bosses.
Then you have the product owner who either is a product manager, or a guy who talks to the product managers. These are the guys who "know" what the customer wants and in what priority it should be in.
A sprint is a small amount of time you code before you show it off. Before we start a sprint, we plan a bit to estimate what gets done. The estimation doesn't take much time since it's just an estimation. The scrum master makes sure this is done, and the product owner tells the team what is important. Then the team tells the product owner what can be done, starting from the most important feature first.
Break down that feature to work tasks, hand them out, code.
At the end of the sprint you show your work, then meet for a short time to go over what you just did, then off to the next planning meeting for the next sprint.
The real key to all of this is you have to have solid programmers who know what they are doing in the field they are working. This will not work well with a team of junior developers. But no good coding comes from a team of junior developers... ever.
For larger projects, you scale it up by subdividing it in parts, and having separate teams working on them. Pretty much how it has always been done in virtually every area, not just software development.
Forget all about agile, forget all about scrum and forget all about management. The only places where I have seen some good code actually being written are the places where there were no 'process', there were no 'evangelists' and it was absolutely normal for managers and devs to swap roles in who is managing who - naturally.
Well said, sir.
Now, can you please write a book about this "revolutionary new method"? You'll have to come up with some new catchy buzzword for that; I wish you could just call it "sane software development", but I'm afraid that won't sell, and we really, really need this to become the next silver bullet of the day to get actual work done.
1. If a job constantly touts they are a house that focuses on agile development - this doesn't necessarily mean they do or don't focus on agile development. What I found it usually means is they are probably going to work your *ss off and they're going to expect long hours from you every week to meet your task lists. Beware, and ask lots of questions about how many hours the average person works and how long they stay with the company.
2. Until you get really good at estimating your project times AND the ability to accept/deny your tasks, you'll likely be overcommitted for sprint work. This is the number one problem I've seen in most of the agile/scrumm groups I've seen. Sure you can push a little harder for some sprints, but make sure you can get 'easy' sprints too. Life isn't all about work.
As for the original poster - I would say what other have said. The scrumm master should be a good project manager. It's ultimately a more management position than a developer position. Lead devs might not be good at this because they like being devs, and this role is about managine people, productivity, and output. That said, it shouldn't be an intern either. They lack the necessary experience of working on projects and the foils that come up. The project manager needs to have the strength and wisdom to push back on new requirements during the middle of development. They need to be able to go to bat for their team to protect them from unreasonable external requests, while at the same time pushing internally to see those that are floundering and those that need a boot in the rear. This requires tact and experience with people. So maybe it shouldn't be an engineer at all. :)
Seriously, you code for a living and have never heard of scrum? Do you not keep up with the latest fashion in development?
I can't speak for the OP, but I'm far too busy getting real work done.
What will you do when you if you have to go for another job and the interviewer asks you about the latest development methodology that is doing the rounds?
I'll try to keep a straight face while I tack on $20k to my minimum salary requirement.
We've been doing Scrum for a while now at my company, and one of the conclusions we've reached is that you should never make the tech gurus the scrum masters. And that conclusion is totally independent from who you *do* want to make scrum masters, just don't pick the technical guru. The reason? Tech gurus tend to be the technical core of the team, everbody asks them deep technical questions all day long, they also have the responsibility of building the most complex technical features that nobody else can really do, which means that they spend their days entrenched in the core technical stuff of the project *which is exactly the opposite of where the scrum master should be*. The scrum master should, ideally:
1. Be able to keep some distance, what we call a "helicopter view". (Note how being entrenched in technical details doesn't fit well here?)
2. Consider the progress of items and tell people when they have unrealistic estimates of whether their items are likely to be "done" at the end of the Sprint, according to the Definition of Done that was agreed on with the Product Owner. (Again, something that requires not being entrenched in the details of technical stuff.)
3. Be able to talk to management about items on a functional level, and be able to think along with them about prioritization. (This is again something that requires more of a functional view on things.)
4. Understand enough about the technical parts to be part of the team -- the scrum master should only need half a word from his team members to understand why something is a problem. You don't want a scrum master who is to be "massaged" by team members in order to get something done, like you would have to do with a PHB.
Point 1-3 disqualifies techies, point 4 disqualifies professional project manages. Ideally, you would find somebody on the team who is not a tech guru, but also not a tech dummy; and you would find somebody who takes an interest in procedural and functional issues.
Just to state the obvious: the most important thing about Agile is that you do retrospectives: you have to think about what works and what doesn't, and fix up your process. We've been continually fixing up our process over the past couple of years, and there's *always* things that still need improvement. If the poster has to go here in order to discuss this, his team doesn't have this very basic and über important part of Agile down.
We're pretty much in a simular situation. We chose scrum because we need *some* sort of methodology because our company is growing fast (currently +100 people per year, we're at 300 now). Scrum isn't that ideal for large companies, but since we develop software which changes requirements along the way - games - it's not the worst either. As a seasoned dev it bothers me that I have to do scrum housekeeping part-time and can't spend that time devloping. However I *do* develop and I find that someone has to do the scrum master job, it might as well be the experienced guy on our team. I sit in the same office as our team lead and we've got the seperation of roles pretty well established. My job boils down to going around and keeping up awarenes of our release cycles and project progress tracking and the occasional tooling and process optimisation. I also play a key role when assembling backlogs for the team (including me and the teamlead) and have taken on the grunt work of building loadtests for our app.
It's all about management, and while it sucks to be a manager if you've been a dev for the longest part of your life, it's something that needs to be done and it's better if I can project my experience to the team if I have a key role.
As far as I can see scrum evolving at our place, it's basically a tool to gradually force awareness and responsebilty on to the devs. They learn to predict their time needed and our product owners (teamlead and gamedesigner, both are also part of the team) learn to hone their featuritis and bad prioritising.
I found certain rules to be paramount for implementing a process - of whatever type that may be:
1) The process is for you and your peers. It's not you for the process.
2) If there's no improvement for the people involved, the process is worthless.
3) Personal interaction and communication come first. Tools come very last, if at all. (We use a TWiki for all our Scrum stuff. It has be building the burndowns with calc, but it had us hop into scrum with a zero-fuss approach). I might start looking into Agilo/Trac, but I'm sure as hell not bending over and lubing up for some tool that doesn't fit our variant of the process. ... There's some advantage in being a scrum master and having a say in such things as tooling.
4) Know why you are doing scrum and what you want to achieve with it. If you don't have a target it's pointless in a strange self serving way and will implode after a few weeks. Or it will stay and become a drag, which is even worse.
5) Be aware of the partly pointlessness of an agile process in a large corporation and judge the process accordingly. Don't over or undervalue it.
6) Bend the process, tooling and proceedures whenever required. Use the sprint intervals, backlog assembly meetings and sprint reviews to do so.
7) If you are a scrum master, be prepared to kick the ass of your teamlead or product owners if they step out of line or leave the predefined track of rules required for the team to deliver per-sprint predictable results.
8) You may think that you are the superdev, but as they say the first step to a nervous breakdown is overesstimating your importance. Management is a sacrifice, you step back to have the others do the fun stuff. Therefore you get to manage and learn the metaprocess and see how the really big software projects come to life. Moving from dev to scrum master isn't an end all and it does improve your social skills. And you can still start an open source project on the side, if you miss coding.
We suffer more in our imagination than in reality. - Seneca
In my first job out of college I made sure that the code built cleanly, and beat people over the head to keep their unit tests running well. I refused to accept any unit tests that had undocumented dependencies; although I was perfectly happy with a short paragraph or two in a README.
The more senior developers had better things to do then worry about running builds and keeping the unit tests clean.
No, I will not work for your startup
I'm not exactly feeling a lot of love for scrum and agile in these comments. Agile was created to manage change in large software projects. So if you don't use agile methods, what do you use on large projects - some kind of waterfall process? Prince2? Good old "sit down and start coding"? How does that work for you? What is the bug rate? What percentage of these projects actually make it into production?
Also, when did the slashdot crowd become so aggressively ignorant, hostile to new ideas?
My Karma: ran over your Dogma
StrawberryFrog
My boss sat me down at my first terminal in 1977, so I've been in the IT business for more than three decades. In that time, I have seen mass quantities of jargon-laden, content-free paragraphs. Now I've seen several more. There must be a market for that.
The one that says working code is more important than extensive documentation. I know what that says but I know how developers will interpret it, "Don't worry about docs." There's the problem, the last thing you want to do is encourage a developer to do is skimp on the documentation since that's their natural tendency anyways. I've never met a developer where I thought "Wow, he or she documents too much." (To be fair some devs are decent about docs) It's maddening when you have to come back to the code for some updates and nobody knows what it's supposed to do since nobody bothered to write it down. (Let alone extend it.)
Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
In the OP's question, he wondered whether promoting great developers into a non-technical role was a good idea. It's the same age-old question about developers becoming managers. And the answer is? Almost always a horrible idea. Hire the skills. Find someone who wants to learn it. Don't do automatic promotions. In other words, THINK!
No pro sports player would try to play their sport without a coach, but developers try to pick up new techniques all the time by ourselves. Sometimes it works... sometimes, you need an expert to help you figure it out as quickly as possible. Team-wide (and company wide!) process changes are the times you always need a coach. Bring in an expert and solve these problems before you run into them.
Agile Artisans
Agile is the new name for getting the developer to Micro Manage "themselves" wrapped up in facy new words that mean nothing.
Scrumm adds undue presure to team. Every job in the world gives you some slack, time to learn, time to study a technology well, etc. With the scrumm, you have undue pressure to perform all the time. This bunrs you up very fast and leads to contractor mentality.
Contractor mentality. Those working in agile environnments often feel like contractors, used to the full and being able to easily discard when no longer needed. Cross-polination and everyone "knowing" everything thing is to break down the develper to the point of being easily replaceble at any time. Works "great" from a management perspective with short term vision, but does too much damage to the team.
IMO, I have had much better results where you trust your developers and give them the freedom to innovate, and do the right thing at the right pace, rather than ligting a fire under their a$$. Every one needs to feel like they are important and are trusted, not like a contractor or a prostitute to be used and abused.
I love how that was modded insightful.
You might be seeing "good code" being written, but that doesn't mean you are seeing a good product being produced. If "good code" (whatever that means) was all it took to produce a successful product, you wouldn't see so many disastrous failed products out there.
Saying "Good software products = good code" is like saying "Good cars = strong metal". It's totally over-simplified.
If you want to create a successful software product, instead of whatever 10,000 line toy your 4 man team put together by shouting across the room, you probably ought to consider one or more of:
* requirements
* a functional specification
* a design document
* a plan that includes a schedule with milestones
* documented use cases
* end user documentation
* system-level class-level and method documentation
* configuration management
* scheduled code reviews
* unit testing
* integration testing
* a formal quality assurance procedure
* a deployment plan
oh, and "good code" might help, I guess. I'm of the mind that with the right amount of management, organization, process, design, and documentation, actual "programming" is just glorified data entry.
Shut up and code :-)
The main point of scrum is a self organizing team. The team should pick there own scrum master, and trust me no team has there best coder filling out what ever stupid paperwork project managers need. A scrum manager is not a project manager.
Quit calling any process Scrum, and instead say what your doing and it becomes abondently clear what is wrong with most processes. Wrong person in the wrong role, no requirements, etc.
You shouldn't make the top developer your scrummaster - a scrummaster requires a lot more soft skills than most of the top developers usually have. They should have some leadership qualities, but more of a facilitative nature. Having said that, to get someone who doesn't know what coding is about to become a scrummaster, is not necessarily wrong, but IMHO, you need someone who can listen very attentively to the team and understand at a technical level what the people are saying, otherwise they won't be good at their job (clearing the way before the team).
The scrummaster needs to have leadership qualities and have the ability to work with people. The leadership style should be facilitative and he/she should be able to listen carefully to pick where problems / potential problems are. Some people who are extremely good coders also have what it takes to be a good scrummaster. However, most don't - so it's not a good idea to make them the scrummaster. However, to take someone who has no clue when it comes to technical things, is also not a good idea - you need to be able to figure out from daily meetings what is going on and whether you are required to help the team in any way - that won't be possible if you don't have a strong technical background. So, bottom line, choose someone with technical competence (that the developers won't laugh at) but with good poeple and leadership qualities.
We use Scrum and it works very well. The only other places I've seen it work well is if the Scrum Master is a controlling interest in the company.
Six Figure ScrumMaster
Six figure ScrumMaster sitting on a fence
Trying to make a buck out of 99 cents
He once was a contributor like you and I
Now he creates charts that make me ask, WHY?
He sold me the logic and I swallowed the bait
Nine months later we've barely left the gate
You may ask how did he become such a hero?
By forcing us to pick numbers between 13 and 0
I was told to go faster, and confused I requested a hint
He shook me and shouted, "WE NEED POINTS THIS SPRINT"
He began to foam at the mouth, no one really knew why
He looked very crazed, like he might even die
To the hospital we decided, we needed no votes
Later the Dr. asked, "Who fed him all these yellow notes?
So now you see this is his life and sadly its sum
I could tell more but I'm late for his scrum
Sorry, don't have time to log in... But Computer Scientists have long ago decided to make up their own forms of management, somehow believing that a few years of coding gives them the upper hand in business management techniques that have been studied for centuries in this country.
Agile is nothing new. Its just a poor implementation of normal project planning with embarrassing names. Scrum Master. Chickens. Pigs. .. Ridiculously thought of by people who spent to much time playing WOW and D&D instead of learning project management at a business school.
Its best to toss aside almost every management technique "invented" by CS'ers and ask the business school what to do to increase productivity.
Sorry, it is what it is...
To be quite honest, I think that the poster is right. I have personally dealt with some very competent interns and do thing this is a task an intern could handle for a smaller project. It is certainly most important to separate the technical minds from the planning phase and the agile process can be quite successful when it is done this way. Every company I have worked for, a lower level employee has been ScrumMaster and it has been almost ideal in every scenario. It doesn't take a genius to play the role of ScrumMaster and it shouldn't hurt the the team's velocity either.
I don't quite get what is all this fuss about losing best developers to role of scrum master.
In my organization being a scrum master takes takes 20 minutes a day per group. Your job is to drill down on reports in a daily scrum meeting, and that is only if someone does not communicate clearly; you figure out what is happening, and if he needs help, you connect him with person that can help him, and if he's slacking off, you embarrass him publicly. Not a hard job, just make it obvious that things are not going as they're supposed to go. He'll think twice if he wants to be in the same situation tomorrow. That's about it...
And it needs to be done by someone who understands product and technology to some point, hence he'll know what's happening; otherwise people may be reporting problems in their own lingo, and no-one realizes it. I've seen it happen.
Or, of course, you could have perfect members of the group, and they would be perfect communicators, and everyone would be 110% motivated, good luck with that.
Well, I have worked in environments like that (my current one, 10 years ago), and it works OK with the right team. Once you get past about 10 engineers working on something, it goes to custard.
We have our own agile process, we run it in teams of 1-4 people, and it works a charm.
We use Open Source tools to support it (Trac and Subversion)
We are not undisciplined hackers - we have seen the results of unguided hacking, and are not interested in that. When you are ready to leave the classroom, and do some real work, you will need some real process.
..and Agile development are not always the best choices for development. My solution is really a cure for a situation where Agile?SCRUM has already failed.
"The mind works quicker than you think!"
"I'm of the mind that with the right amount of management, organization, process, design, and documentation, actual "programming" is just glorified data entry."
And perhaps you are wrong. Although if you do feel that programming can be reduced to glorified data entry, well, sometimes development is a bit more than just mucking around with the api calls in your preferred java IDE... Couple of points follows.
Good managers are much harder to come by than good developers. If you feel otherwise, I would be happy to see reasonable arguments - as far as I am concerned I have met/seen/worked with only three or, maybe, four competent technical managers versus at least ten to fifteen competent developers (sometimes you do not appreciate it until later, so, less precise here ;)). Strangely enough there is some overlap between two sets. And here is the catch - bad developers are way easier to spot than bad managers - there actually is something measurable and no (often used) buffer to fall back to.
I do not dispute any of the things you listed, not by a long shot, just the form. In example - any company that focuses on documentation or formal QA - with all due respect, as far as I am concerned, is an excellent indicator of company that believes that there are tasks that can be delegated to 'junior' developers for cost reasons. Or the great big outsorcing to a team that might be part of the company or might not, but somehow are supposed to have an idea of everything that happens. Oh, and let us add a framework or two for that too. Similar to functional specifications, scheduled code reviews or design.
Software development is a game of context. Large context and it isn't going to become any smaller regardless of what you do. Unless you can reasonably well predict the effect of your innocent change in that pl/sql procedure feeding cgi handled C frontend pretending to be an RPC bound UI abstraction, all you are doing is taking stabs in the dark - no level of abstraction, interfaces or glue layers will help if the underlying assumption about using base 16 for all color values or cents stored as integers rounded to nearest 1/1000th turns out not to match whatever conversion/calculations/assumptions are done en-route. Scope-wise context while developing software is at least as large as actual business decisions, with the only difference being that when working with software most of the variables can at least be predicted. Financial impact by both can be pretty similar as some might have noticed. Oh, and you know what - good developers are perfectly capable to factor in business context in their work too. In fact, perhaps, it could be argued, that when developer/team actually is informed why any particular deadline has to be met or any particular feature is a must-have instead of being an ugly hack shoved in the last minute, better results follow. Perhaps worse code, since yes, for this deadline this particular hack could be allowed, but better results for sure.
I have nothing against anything you listed, all are absolute basics. And I couldn't imagine to work without proper, hot, intense and pouring jiras all over my inbox QA anymore, althou it should be noted that in my experience not always what managers think can be called a QA has anything to do with quality or assurance, quite often it is just an arbitrary signoff with no contribution whatsoever justifying some manager somwhere. Same for design documentation - a quick scratch on a napkin can, and often will be miles more valuable than your 500 page reiteration of buzzwords and copy-pasta of latest hot frameworks API - someone actually bothered to discuss what to do and how to proceed while only thing around was a napkin. Your plan with schedule and milestones is worthless - show me a single plan that actually matched reality, with the exception of those where you ended up with nice and comfortable 4-8 hour tasks and on every developers status meeting everyone was happily nodding that this is _exactly_ what they are working on 30.25% of
You introduce junior ('cheap') people, and yes, you do screw up. There is nothing less insulting for a good developer than to see management covering up shit for a bad hire.
You missed the point. I do not advocate against process, I advocate against 'Process (signed off by board, three dev-leads and four external consultants)'. Anyone worth 2p will set up a process as soon as they touch anything. Even you have a process to take a piss - you unzip first, pull out second, do your stuff and then kinda clean up. In software development you often need to get 3 signatures and documented trail in your e-mail just to unzip :) And god forbid you even imagine thinking about letting it go without board approval!
No, you could be lucky. A good manager and a good team can still screw it up. Methodology cannot turn a team of "mediocre" developers into a great development team.
If you mod me down, I shall become more powerful than you could possibly imagine.
Good thing with scrum; it simplifies planning/management down to a minimum, no bureaucratic processes that kills project progress.
Thing people don't seem to get; it wont make your code better, scrum is is just deciding what do in an effective way.
The secret of writing shiny code - experience, intelligence, creativity and that mystical gut feeling
that leads you to setting all pieces right without knowing how or why. Some sticky notes, a deck of cards and a unit testing
framework don't make you smarter and more talented - 10 years of tricky coding, a set of good books on engineering,
rocks science math, formal methods etc do however. No surprise people think scrum often leads to failures...
No. A scrum master shouldn't make project decisions: one of the major points of scrum is that the most appropriate person make decisions. A scrum master is an objective person who facilitates the process, resolves conflict, and handles impediments. Scrum also has a Product owner that is more akin to project manger.
Yeah yeah, just another excuse for not hiring good (read high salary) developers, get a bunch of good hackers, put them all together and know that they will just do better.