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.
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.
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.
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?
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.
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.
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.
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.
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.
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.
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
PS I need a new job :(
Sounds like that, unfortunately.
Scrum where management doesn't actually understand a thing about scrum just won't work, at least without sacrificing your sanity -- and the pattern seems to be unfortunately common. (Not based on experience but on stories heard.)
Everyone knows that engineers make lousy rugby players...
Seven puppies were harmed during the making of this post.
...it all makes perfect sense.
Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
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!"
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/
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.
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
That is a mistake. This is a natural function for the project manager. They should run these meetings.
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 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.
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 come we only ever hear about agile failures?
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.
[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.
Hi Dave!!! Hee hee hee.
For linux tips: http://www.linuxtipsblog.com
Here it is
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!
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.
It's facetious. Most people don't use those terms on a daily basis. The distinction between pigs and chickens is basically between who defines the priorities and who executes the workload. Also, chickens can't talk in the daily meetings. What this actually means is that the managers don't get to yell at you during the daily standup. Who the hell would say THAT's a bad thing?
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?
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,
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.
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...
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.
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.
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
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 :-)
..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.