Let’s learn about being agile as a developer.
What is Agile?
Developing software is completely different than building houses, where you would stick to a plan from beginning to the end. As a developer, you need to catch up with technologies that will evolve day by day. Therefore you cannot stick to a specific plan in the process of developing your new idea or your client's application, it just would not work. Well then that brings up the question, how will I ever understand what I should do and should not do or when this project can be finished?
You cannot do your work as a developer without having a plan or at least some guidelines. That’s where “Agile Software Development ” comes into play. Agile defines how to do the work of developing software by introducing a linear sequential model. Agile is a set of values and principles. It can be defined as a philosophy, rather than a methodology.
Features of Agile
- It gives a foundation for teams to make decisions that results in better software.
- It helps you to understand your project by breaking it into smaller tasks.
- Results in building your projects faster because you will set deadlines for yourselves.
- It helps you in adapting to the changes that will arise when building up your project.
Waterfall Model vs Agile
The waterfall methodology is the traditional methodology in software development where you would find a sequential approach. In Agile methodology, they have developed the waterfall model into a linear and sequential approach. Let’s discuss some differences between these two methodologies.
Manifesto for Agile Software Development
In the introduction to agile software development, I have mentioned that agile describes principles and values. We should practice these principles and values when developing software. In fact, there are 4 principles and 12 values specified in the Agile Manifesto.
4 Principles in Agile :
These four principles are defined on two sides. Simply it describes what you should follow and what you should not follow when developing software.
- You should focus on individuals and interactions rather than processes and tools.
- Working software is more important than comprehensive documents.
- You should focus on customer collaboration rather than contract negotiations.
- Instead of following a plan you always should respond to change.
12 Values in Agile :
- Instead of delivering the complete software at once, the software development should be a continuous process.
- As a development team, you must accept the requirement changes.
- After every 2–4 weeks (sprints), you should be giving the customer a potentially shippable product.
- Business developers must work together daily throughout the project.
- You should not focus more on the process instead, you should focus more on individuals.
- Conveying information through face to face conversations.
- Working software is the primary measure of process.
- The users, sponsors, and developers should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Understanding the modules which are more important and not important.
- Teams should be able to self organize themselves on architectures, requirements, and designs.
- At regular intervals, teams should focus on how to become more effective, then they should tune and adjust it’s behavior accordingly.
Well, now you have understood the tools to enhance your development process using Agile Software Development method. You can find multiple implementations of this development methodology, Scrum and Kanban are most common among these implementations. Let’s discuss these in the next medium post. See you then, take care.😃