What Do I Need To Know About Agile Development?
If you have a software idea and have been talking to software development companies and firms, you have probably run across the word Agile and are wondering what all the hype is about.
If you find yourself asking, “What do I actually need to know about Agile,” here is your answer.
Before I move straight into Agile, I will touch on the history of software development and the methodology that Agile is opposing.
Prior to Agile, software was developed in large phases and the approach was known as Waterfall. First, you would gather requirements and perform the analysis. Then you would design the application producing detailed documentation.
Once the documentation was ready, it would be handed to the developers to code. Finally, after coding was done, the entire application would be tested and presented to the software owners as a finished product.
A few of the prevailing problems with the Waterfall approach are:
- It is hard to think through an entire software design on paper. When the business starts using the software, better ideas emerge and the software design is solidified. Waterfall doesn’t allow for intermediate stages of feedback.
- The waterfall process can take months or years to complete, and there isn’t an opportunity to change the software if the needs of the business change during this time.
- Any vagueness in the requirements or assumptions made by the development team is not caught until the product is done, making it expensive to fix.
How Agile Is Different
In this video, a past client talks about his experience with Agile and Sprints.
The idea of Agile is stated in its name. Rather than being long, formal, and inflexible, the Agile methodology incorporates nimbleness from the start.
There is less effort spent on upfront requirements gathering and design, and more effort on developing the most important features first, getting feedback as soon as possible and adjusting along the way.
The software features are itemized based on the needs of the user. For every task that the user needs to accomplish using the software, a user story is written. For example, a user story could be, “As an administrative user, I want to be able to reset the passwords of all the users on my system.”
Work is broken down into short “sprints”. For each sprint, you will prioritize the user stories and the team will develop and test, typically in a 2-week timeframe.
The development will then be shown to you. Based on your feedback, you repeat the prioritization, development, and test cycle until the product is delivered.
Where Agile Comes In
In this video, a past client talks about focusing on the end result rather than the methodology.
As someone who is looking to build software, you don’t need to know the ins and outs of Agile and Scrum. Software teams get hung up on the methodology they use or the technology they use rather than paying attention to what matters most: delivering the product you want in a reasonable budget and timeframe.
What you do need to know when choosing a software team, regardless if they claim to use Agile or not, do they:
- Deliver demos of the code to you as soon as possible and frequently thereafter
- Provide the flexibility to change requirements and design as the project progresses
- Allow you to prioritize the development of features
- Provide frequent budget updates to help you control costs and make sure the necessary features are delivered with the money you have allocated
Following a methodology like Agile does not necessarily guarantee better software. Projects can fail with Agile as they can with Waterfall.
The success of your project depends on how well your team understands your requirements, knows how to use technology to build quality software, takes in your input, is flexible to your changing needs, and can execute using a reliable process.
Resource: The 5 Pillars Of A Successful Software Project
We want to help every software project begin on solid ground. In The 5 Pillars Of A Successful Software Project, we share the five essential ingredients of every software project.
You can grab a copy of the guide below and share it with your team!