So everyone has heard of the agile software development methodology, it’s been the hotness with every dev shop in town. While we are believers and practitioners of agile development its important to understand that agile is not always this magic cure-all for lean fast development. In fact, under the wrong project fitting conditions, it’s could be costing your company excess spending in development time.
Now we’re sure your initial reaction to this is probably thinking “cmon man!, how could so many programmers and project managers possibly be wrong?” Well they aren’t wrong so much as half right, you just have to use Agile where it was meant to be used not as your entire pipeline or simply because you want/need to get to market fast.
Now this may seem like a contradiction but once we dive fully into the hybrid Waterfall / Agile planning methodology we use every day … you’ll be a believer.
So in the Agile methodology you organize everything into 1 – 2 week sprints, have daily or weekly stand-ups to discuss problems, and let development inform 90% of application architecture. Minimal planning is engaged as the thought process is why plan it when it will simply change later, this sadly proves to be Agile’s Achilles heel. Similarly rarely do companies write unit tests, track KPI’s, or even have an agreed upon set of requirements.
Now this may seem useful since code is so easy to change, why worry about measuring twice prior to cutting. However this is what leads to a six month project dragging on for a full year and the budget ballooning into three times the initial estimate. You continue to iterate on the project slowly over time and eventually if no one gives up you have a software solution.
But how does this staying Agile really help make things quicker? If you applied this strategy to building a skyscraper you would never get a permit to build. Why? Because it could easily collapse causing millions in damages, not to mention the risk to the employees safety. Why do we treat software that handles our business logic with any less care and attention to detail?
So what then is the solution to staying quick and modern while still actually planning and developing software? Properly planning everything! Planning is the single most important factor in determining the success of a software project. Development is simple if you have a fully agreed upon set of wire frames, requirements and scope. Sadly many companies don’t take the time to extract and document this information ahead of time and end up falling on their faces during development.
So lets say you had a new solution you wanted to develop, the first step would be to plan a few workshops to extract requirements. We would meet with you once a week for 4-8 hours and talk in depth about the business case, KPI’s, tech stack, UX and workflows. We’d then commit all this information to various pieces of documentation / designs; Project Briefs, Technical Analysis, Wire frames, Project Requirements, and eventually a full proposal. This proposal would contain a fixed Time / Cost estimate for the project, this way you the client know exactly what to expect.
This may sound like a huge amount of effort, which it is. However this inevitably saves vast amounts of time during development thereby reducing costs. Developers are 3-5x more expensive than business analysts, not to mention developers think technical not about the business case. Thus letting the Analyst do what they are best at and handing the project plan to the developer is the most efficient process.
We hope this has taught you something about how to properly plan a large software project. Remember whether it be a mobile app or artificial intelligence … planning is paramount!
Want to know more about how we time after time successfully deliver solutions that meet and exceed our customers expectations on time and on budget? Send us a message and we’d be happy to talk.