Good/Google Agile, Bad Agile
Thursday, September 28th, 2006Stevey’s Blog Rants: Good Agile, Bad Agile
This is a must read. Steve talks about a system where developers are provided incentives to be successful and not coerced.
The comment section adjusts Steve’s attack on Agile processes without getting into the religion (yet…this is a flame bait piece, no doubt). It doesn’t defend Agile methodology, but it does bring to bear the fact that Google has really only delivered one business unit, with success, to market. That is AdSense. Everything else that comes out of Google’s development department either helps Google increase operational efficiency or expands the use of AdWords; so there is no real incentive at this point to really release anything before their competitor.
The best quote in the comments:
In a different context, different approaches are requried [sic]: how well do you think the Google approach would fit (to pull an example from the air) adapting a trading system to handle new kind of derivative? Or making a new kind of revenue earning service avilable [sic] on a mobile network? Beleive [sic] me, “it’ll be done when it’s done” is not an acceptable answer when the sponsor can see many millions of dollars (a chunk of which is headed for their bonus…or not) being lost if the opposition gets into the market far ahead of them.
Here, the business is driving because they see a real incentive and probably understand that time is of the essence. A rank and file developer does not typically understand the business and will not be able to simply jump into the project and lend a hand (well maybe at Google, but that’s not because they have an good agile process…I’ll elaborate in a moment) because the effectiveness of the team will be comprised in more ways then one. TMMM states that adding more developers to a project will decrease the project time line negatively. I don’t think Google has figured out how change this axiom.
So what does Google do right, or what Steve calls “Good Agile?”
all you need is a work queue
This is a tenet of Scrum and called a sprint backlog. It sounds like Google has a global work queue where any engineer can take something off the queue and process on it. This is smart, because this process is key to the objectives of the engineering team. Enterprise architects are at work here.
I could talk for days about the amazing rigor behind Google’s approach to software engineering. But the main takeaway is that their scaling (both technological and organizational) is not an accident. And once you’re up to speed on the Google way of doing things, it all proceeds fairly effortlessly — again, on average, and compared to software development at many other companies.
and
the project management techniques that Google does use are more like oil than fuel: things to let the project keep running smoothly, as opposed to things that force the project to move forward.
These both speak to Google’s brain trust being applied to all areas of their business. I’m happy to see that management understand workers need to be motivated and lead, not told what to do. There is also a strong bias towards discipline and standard. It appears, based on Steve’s attention to these points, that it works behind the scenes, out of view of the engineer. I believe strongly that leadership must motivate and facilitate effective behavior by providing feedback and leading by example, something Google does without shoving it in the developer’s face.