Agile Project Management
If you work in the software field, you may have heard the word "Agile" a lot. If you say what Agile is, it is carrying nimble, swift means as a dictionary meaning. So, does it mean being rapid and swift in the context of software processes? Let's have a look;
First, I would like to start from the history of Agile.
In April 2000, 17 guru software developers came together. The purpose of the meeting was to increase productivity in software development. At the end of this meeting, they published a 4-point statement under the name of the Agile Manifesto. Manifest like this;
- Individuals and interactions rather than processes and tools.
- Working software rather than extensive documentation.
- Collaboration with the customer rather than contract negotiations.
- Responding to change rather than sticking to a plan
We have decided that there are points we should care about.
This manifesto had a great impact on the software world and they started to organize their working methods according to these points.
So, what was the meaning of these 4 items?
It consists of control points created in the plan in order to follow the progress of the project process and to prevent possible problems. These determined points can usually be formed as daily meetings and sprint review meetings.
- Processes and tools should be used in the production of value, but they should not adversely affect the relationship and communication between individuals. It is important to follow the process and use the tools. But in our choices, it is more important to maximize the interactions of individuals and to create team play.
- Only documentation that generates value should be produced. Documentation that disrupts the progress of the team during the production phase and creates a negative burden rather than a value should not be allowed. The statements in the document should correspond to the developed software and this document should be produced with a value-oriented approach.
- When developing software for real needs that will be adopted by the ‘’end user’’ cooperation with the customer should be utilized rather than contracts. Being in contact with the customer, creating an atmosphere of trust and collaborating will increase agility. The customer should also be seen as part of the team during the product development process. It is possible to produce correct outputs as long as the customers are involved in the process.
- Classical project planning methods are meaningless for software projects. Since software projects are open to continuous change and development, it is both laborious and very difficult to draw a single and clear roadmap for the project. Therefore, being able to adapt and stretch the plan according to changing conditions will increase development efficiency. It should not be forgotten that the plan is a tool and that this tool must act with change in order to achieve the goal. A prosaic plan created in an environment of limited information is unlikely to lead you to success.
Now you know what Agile methodology is and what it consists of. So, what is Agile Project Management? In order to explain this, I think it is necessary to talk about Waterfall Project Management first.
Waterfall Project Management stages are as follows;
- Project Closing
As you will notice, the Test stage comes just before the project closing stage. Although this method is an effective method in industrial projects, it has many disadvantages for software projects.
If we consider a software project context, a mistake noticed during the testing stage after the production of the software means starting from the beginning of the process. This means wasted time and wasted employee power. As such, it will cause the profitability to be obtained from the project to disappear or to fall very low. With this situation, the most common result is that the project is not completed or the entire project is cancelled.
In this respect, the Agile project method has many advantages and differences from the Waterfall method.
Actually, the steps in Agile project management are not too different from classical project management. The main difference in the Agile method is that the project is based on 'iteration'.
So, what is this 'iteration'?
Iteration, to put it in the simplest way, is to divide the project into small parts. We can think of each 'iteration' as mini-projects in itself.
Each iteration includes test and approval stages of the mini-project. Thus, the project continues, through testing and approval stages throughout the project, piece by piece.
In the waterfall model, the test step of the project is done when the entire project is completed. On the other hand, working parts of the project are tested separately after each iteration in the Agile process and integrated into the relevant part of the project after customer feedback. In that way, the project will be subjected to continuous testing throughout production.
- It allows a flexibility to your organization, for short term-planned loops, changed necessities and potential sudden changes
- It actively provides feedback to your customers to create the product and solve problems easily.
- It ensures faster resolution of problems thanks to the communication established by giving priority to team participation.
- Every problem that arises as the project progresses rapidly is used as a stepping stone for a better solution in the next period.
- Costs are unpredictable as product requirements are constantly changing.
- New requests that may come to mind when customers want to give feedback reveal additional phases. This may increase project costs and duration.
- The project date cannot be determined clearly.
- Changes to be made in the production process of the project and new requests that will occur in the next process change the delivery date of the project.
If all stages of the project are clear at the beginning of the project, and if no changes or updates will be made during the production, Waterfall project management will be appropriate.
However, Agile project management is appropriate if only the main steps of your project are clear at the beginning and will be progressed with improvements and updates throughout the process.
In addition to all these, there are many methods in agile project management.
The project method should be chosen after review by the project manager, depending on the scope and conditions of the project. In general, as the most used Agile Methods; SCRUM, Extreme Programing (XP), Feature Driven Development (FDD), Lean Development, Kanban, PRINCE2 can be shown.
I hope this article made you know about Agile project management. See you in the next blog post.