The agile development methodology has revolutionised how we create software since it was first proposed in 2001. Traditional, sequential waterfall processes which rely on rigidly defined documents and long design periods are giving way to a more flexible approach which allows businesses to respond to changing market conditions with much greater speed. The momentum behind this movement is unstoppable; according to, by 2015 more than half of all software projects will follow an agile process or methodologies derived from agile principles (such as Scrum). However, despite its huge popularity, there remain many misconceptions about what exactly makes an agile process ‘agile’.
There is no single definition of agile development methodology, but most definitions share common ground in describing an iterative approach in which requirements are progressively refined in parallel with design and development. The goal of the software product development methodology is to build systems that work in practice rather than proving (by reference to documents) that they will work when everything goes perfectly according to plan. Essentially, what makes an agile project different – and better? Agile methods answer this question by trusting more in people; using flexible processes that place teams at the heart of the delivery mechanism, focusing on delivering working software continually throughout the project life-cycle. What’s more, these same principles also happen to foster creativity and motivation through self-organization.
10 Techniques For Achieving High Productivity are:
- Integrate Closely With Customers
- Organize The Team Around The Product Vision
- Do Only One Thing at a Time
- Estimate All Task Effort in Hours
- Make Incremental Iterations Towards the Goal
- Keep Implementing the Current Design until Completion of the PBIs that were Estimated for that Sprint
- End Early and Often to Fix Problems Found During Testing, Before Moving On to the Next Story/PBIs
- Communicate Daily with Transparency About What Was Accomplished Since Yesterday, What’s Planned For Today, What’s Blocking You or Why You are Behind Schedule if you are Late etc.
- Use Metrics Wisely To Guide Decisions
- Don’t Over-Optimize
Some other techniques are:
- Test Completely & Thoroughly.
- Demo to the Customer/Product Owner at the End of Each Sprint, After “Done”, before Planning for the Next Sprint.
- Try to Finish a Sprint in Ten Days or less [BUT] No More Than Four Weeks [2 weeks is better].
- Let Customers Guide Product Direction [and decide on when it is ‘Done’].
- Keep Teams Lean And Responsive 18 Cut All Non-Essential Features From The Product For The First 90 Days.
- Show Incremental Visible Results Early and Often.
- Build Projects Around Motivated Individuals (not mercenaries).
- Use Metric To Help Make Trade Offs Between Scope, Time And Quality [three constraints].
- Put The Word “Done” at the End of Every Sprint.
- Do Not Increase Staffing, Instead Reduce Scope [with cuts to other areas like luxuries and highly skilled requirements].
- Spend 80% Of Developer Time Writing Code 20% Of Developer Time Fixing Bugs.
- Always Use A Project Management Tool.
In the spirit of “People over Process’ ‘, I thought I’d try and do some crowdsourcing on how YOU build Agile Software and highlight some of your success stories. Anyone can reply with their own nuggets and we’ll see what we come up with.
The most important thing to remember is that there are no silver bullets for creating “perfect” software, but here’s hoping we can get closer to perfection by sharing our experiences with one another.
You might not have the BEST team in the world… But if you work together and share Scott Ambler’s tips above, I think you’ll be on your way to building some pretty great stuff.
Techniques For Achieving High Productivity can be used in traditional or Agile development, so I think it’s a great place to start sharing. While you’re at it, add “Agile” to your LinkedIn and Facebook profiles and help spread the love.
High Productivity comes with lots of benefits like increased morale, better time management and improved user experience. More importantly though, achieving High Productivity will help you avoid the death spiral of building crappy software your customers won’t use or recommend to their friends (who then won’t buy it).
High Productivity is good for your career and good for the business. So what’s the secret to achieving High Productivity? Well it’s not rocket science, but making sure you’re always working on what matters most is a little harder than it sounds. Working with some very smart people over the last few years has taught us that there are best practices that can help increase one’s productivity by as much as 20-50%.
But here’s the thing – if they were easy, everyone would be doing them already. This might explain why so many software projects fail . The good news is that if you’ve already got High Productivity down, then congratulations! You’re well on your way to achieving even higher levels of productivity. The key to increasing one’s productivity is not to work harder – it’s to work smarter . And working smarter isn’t a secret or a myth – there are some very specific things that smart folks do which you can replicate. We call these ” Best Practices .”
Best Practices aren’t new and they’re not a secret either. While the specifics vary from industry to industry, here at Pivotal Labs we see companies across all kinds of different fields benefit from the same best practices over and over again.