In this introduction to Agile software development you will learn how following Agile methodology process may result with the best quality of your product development.
There are two schools of thought in software development. Each one is best for specific projects. This post is not a comparison between the two.
For that analysis, please read: Project Planning in Software Development: Agile vs Waterfall.
Software Development Methodologies
Waterfall and Agile are the reigning champions of the software development methodologies. Waterfall makes sure the project is on time and budget. It’s resilient to change and new ideas. It can, however, take more time to deliver software.
For many project managers, Agile is a solution to Waterfall’s flaws. Agile manifesto, which debuted in 2001, proposed a process including feedback and ideas into the project. This is also when feature teams were introduced.
So, how can this process work for you? In this article, I’ll focus on Agile methodology, informing you of what to expect, and what you should prepare for this incredible process working on software development project.
Before we go any further...
Agile methodology process
I’d like you to remember ‘flexibility’, a word perfectly characterising Agile.
First, Agile divides a project into iterations. Each one of them must take the same time and lead to releasing an outcome. During iterations team members can include feedback, which improves quality.
Units involved with the process are:
- Developers – Programmers, Testers, Writers, and UX/UI designers.
- Product Owners – also known as the Product Experts.
- Scrum Masters – sometimes distinguished with the suffix ‘CSM’, are key to the development team, as support, and as executors, to avoid product roadblocks.
- Stakeholders – while not involved in the development, are end-users, project sponsors, systems admins, legal, sales, and subject experts.
- Agile Coaches – mentors, whose expertise provides process guidance.
I also invite you to learn more details on the roles and responsibilities in remote development teams.
Different Agile Methodologies
All roads lead to Rome – some are ancient, while some are novel. Agile methodologies come in a broad spectrum, hence you need to be familiar with:
- Disciplined Agile Delivery (DAD)
- Adaptive Software Development Methodologies
- Agile Modeling
- Extreme Programming (XP)
- Dynamic Systems Development Method (DSDM)
- Feature Driven Development
- Lean Software Development
The last two are the most significant.
Scrum is a popular process framework, even beyond the software development world. It helps with development execution, delivery, and sustainability. Collaboration, accountability, and iterative progress are the hallmarks of Agile Scrum.
Kanban is a step inside the old-school. Popularised by Toyota in the 1940s, it is a visual management tool from which one can familiarise with the founding principles of Agile, formed 70 years later. The success of this method lies behind minimising ‘work-in-progress’, and smaller feedback loops.
Agile Process Flow
To put it simply, the Agile process looks as follows:
Agile Iteration Workflow
Iterations are the bread and butter of Agile methodology process. There are many iterations within the process, composed of time slots, ultimately determining what can be done within. Each operates within a fixed completion time, taking around 1-4 weeks.
You can see the workflow of the iteration below. You may remember this diagram from my previous Agile vs Waterfall article.
Here, I will explain the components in greater detail:
Here’s What You Need to Prepare
The best way to get ready is to get to know the system and mindset!
Agile is intensive, and if you haven’t noticed, requires your involvement in all stages. Therefore, be sure to allocate time to make this happen.
Here are four key points which you can take out with you:
- Agile operates at its best when the customer provides time, interaction and input. It is a very collaborative process, and your participation is central.
- Never forget the importance of constant communication. Be ready for meetings and face-to-face contact.
- Expect the highest possible quality product. However, don’t count on a strict deadline. This ensures ‘no kinks’ appear in the final version; however, it only applies to larger projects.
- Changes can and will happen, with new ideas in all stages of software development!