If Agile is so much better, why did we adopt waterfall processes in the 70's? Why didn't Agile emerge earlier? Perhaps we were stupid. Java runs too slow on my machine.") When some aspect of the development process is taking too long, the first choice should be to throw more horsepower at it. It is runs faster than eclipse." "We could use C instead of Java. In an Agile project, you wouldn't choose to not do any of these things.
ENABLE JAVA IN FIREFOX 20165 CODE
Key code metrics being collected constantly (test coverage, duplicate code checking, etc.).Continuous builds being run with suites of tests.Running complete suite of unit tests before checking in.Using OO languages with interpreters and virtual machines.
Consider the typical use of processing power in Agile: Processing PowerĪgile thrives on processing power. Look for many more posts on the use of a Lean management process for managing Agile.įor now, consider the use of a Lean management process a critical enable for Agile success. What is the best process for making cars? The Toyota Manufacturing Process, renamed Just-in-Time (JIT) when moving outside Toyota, and subsequently renamed Lean when moving outside of manufacturing.
ENABLE JAVA IN FIREFOX 20165 SOFTWARE
Indeed with Agile, I think Software is liking making cars. Rather, Agile is much more like a production process. And software is not bound to the physics of civil engineering. We are overlapping the phases almost completely. Hence I need complete requirements before architecting complete architecture and design before starting construction and construction must be done in a precise order (physics requires that the pillars be laid and cured before building a road bed on top of them).īut this doesn't sound like Agile. In other words, it is a step-wise process requiring that each step be completed before moving to the next (or almost completed). These management practices assume that Software is like building a bridge. The second critical enabler for Agile is to realize that common project management techniques are not compatible to Agile. Rather, measure how quickly the development was done.įor me to spend most of my time coding, I need to code in a style that will not slow me down when I make changes in the future. So don't spend too much time worrying about how much code I threw away. If I invented the best programming IDE in the world and could instantly write code in it, I would only save 10% of the programmer cost in a waterfall process. We often measured how much of the development dollar was actually spent coding (versus reviewing, being in meeting, creating designs, etc.). What if in order to get it right, I would have to think about it (design, model, review) for the time it would take me to write it 10 times in Agile? That was my experience in waterfall. Wouldn't it be faster if I wrote it right the first time? Sure, but not if I have to think about it. I estimate that for every 100 lines of code I write, I probably wrote and discarded 200 other lines of code. Does that mean the code you write today may get thrown away? Possibly. The premise of Agile is that you absorb requirements as they come in, and you accommodate the change the new requirements demand. But you can only ignore the future if your code can tolerate the constant changes demanded by that ignorance of the future. If you can ignore future requirements while working on the requirement for today, you gain enormous productivity. I have previously discussed this in The Secret Assumption of Agile. Throwing heaps of processing power at it.Using a compatible management practice ( not Gantt charts).Writing code in a style that let's me change it easily.
I have found that there are three critical enablers for successful Agile projects:
So when I say have been more successful with Agile, I have tried quite a few other ways. I even did a stint in an IBM programming practices group. Not true however, I was one of the programmers IBM experimented on with waterfall in the early 70's. Roy Singham, our founder, often teases me by claiming I invented waterfall. My early work predates even phased processes like waterfall. I have been more successful with Agile processes than any alternative I have tried in my 40 years of programming.