In this introduction to Agile software development you will learn how following Agile principles may result with the best quality of your product development.
There are two schools of thought in software development. They are distinctly different. Each excels 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 world. Waterfall ensures an on-time, on-budget, and on-point project. Its strict ‘any means necessary’ outlook makes it change-resistant, unreactive to new ideas, with long delivery times for working software.
For increasing numbers of self-professed users, Agile is the innovative solution to Waterfall’s drawbacks. 2001 debuted the Agile manifesto, a process allowing multi-stage feedback and ideas implementation. It is also then when Agile cross-featured teams emerged.
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 to guarantee your advantage.
The Process You Can Expect from Your Software House
I’d like you to remember ‘flexibility’, a word perfectly characterising Agile.
Most noteworthy is the division of tasks as workload proceeds in short processes or sprints. The brief timeframes enable control over project outcomes, as frequent feedback loops occur, allowing improved productivity. Futhermore, with opportunities for involvement, quality increases, enabling exacting, constructive feedbacking.
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. You may be familiar with:
- Disciplined Agile Delivery (DAD)
- Adaptive Software Development
- Agile Modeling
- Extreme Programming (XP)
- Dynamic Systems Development Method (DSDM)
- Feature Driven Development
- Lean Software Development
The last 2 are the most significant.
Scrum revolves around a 5-values concept of; commitment, courage, focus, openness, and respect. The process framework is widely popular, even beyond the software development realm, in realising development, 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 proceeds as follows:
Agile Iteration Workflow
As mentioned previously, iterations are Agile’s bread and butter. 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 approximately 1-4 weeks.
The workflow of the iteration can be seen 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 familiarise with 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.
Resting on this principle are 4 key points which you can take out of the Agile process.
- Agile operates at its best when the customer provides time, interaction and input. It is a very collaborate process, and your participation is central.
- Never forget the importance of constant communication. Be ready for meetings and face-to-face interactions.
- 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!