Imagine you’re a sprinter on race day. You’ve trained hard for months optimising your diet, exercise and sleep. But when the horn blows, you fall flat on your face. Your shoelaces were untied.
Now that we’ve established the importance of good start, let’s see how we can get off to one in software using agile development methodology. Even though these practices are prevalent in the software industry, they are still relevant to any fast-paced project that improves iteratively. The objective shouldn’t be to just get a good start. The objective should be to get a headstart.
How do we go about that, you ask? Read on.
The advantages of agile development
As software goes through various iterations (with each iteration being a fully functional module), it receives feedback from multiple stakeholders. It’s this feedback that determines the success of your software, and consequently, your business.
Let’s say you’re creating an exciting calculator application. You go through the SDLC (software development life cycle) spending months working on coding complex scientific functions, UI and QA to produce the greatest calculator ever seen, only to realise that the customer merely wanted something that adds two numbers together.
But imagine if you had started gathering feedback before you even scoped out requirements. If all stakeholders were involved from the start, it would have saved you months of effort.
Gathering feedback from everyone completes the feedback loop. Agile development methodology ensures that everyone is involved in each phase to help you make more informed decisions at every stage.
A six-step guide to using agile development
Step 1: Define the problem
The better you can understand the problem, the better the solution will be. In any SDLC, a good problem definition should cover the domain, context and scope of the problem.
Remind yourself: ‘If you can’t explain it to a six-year-old, you don’t understand it yourself’. When you break down a problem, think about a relevant audience that is least likely to understand the problem. This will force you to really simplify the problem down.
Step 2: Know your stakeholders
Know all your stakeholders and be able to distinguish between internal (people directly involved in delivering the project such as developers, project managers, QA and UX designers) and external (people indirectly involved such as customers, shareholders and regulatory bodies). This ensures that you gather feedback from all stakeholders relevant to each phase of the SDLC.
Step 3: Define common objectives
Now that you know who to involve and when, it’s crucial that everyone’s on the same page.
Your feedback is only as good as the people giving it. So, getting everyone on the same page for the following areas is critical:
- Agreement on agile practices
- Domain knowledge
- Common terminology
- Logical flows
- Organisational process and structure
- Evaluation criteria
Step 4: Review requirements
The final requirements document should also be thoroughly reviewed by stakeholders and revised if necessary. Once development starts, the train has left the platform and any change requests would be like derailing the agile train.
Step 5: Review and lock priorities
You can do all of the above and yet still fall flat due to a bug in production or reshuffling priorities. In practice, agile is the first thing to go out the window when there’s trouble. If possible, lock down resources and priorities until you reach certain milestones.
Step 6: Review estimates
Before the first line of code is written, relevant stakeholders should have a good idea of the estimates and the underlying causes that inflate it. Doing so weeds out any last-minute concerns about the solution.
Getting off to a perfect start requires some work, but as the saying goes, ‘Well begun is half done’. At ELMO, we believe in agile development methodology because we believe that good communication shapes all our products in the best possible way.