
Managing IT projects and developing software solutions can be tiresome and exhausting. Over the years, various models have been introduced to improve work efficiency.
Working only with a task described well is not an efficient way. The downside would be the inability to predict the time and cost of such work. On the other hand, having a methodology to adhere to has many merits:
-
The time frame and cost can be determined.
-
The end product is stable and well-designed software.
-
The customer is well-informed.
-
Possible problems are identified earlier.
Before the 1990s, the prevailing software development methods were of the heavyweight type, often referred to as ‘waterfall.’ With the waterfall model, a project is broken down into activities where one depends on the fulfillment of another (gathering data, design, coding, testing, etc.). The customer is given the project only at the end when thoroughly done.
As a reaction, in the 1990s, several lightweight methods appeared. One of these models is Agile. “Its fundamental purpose was to help IT professionals become more efficient in their work by breaking it down into segments, each of which consists of all the parts of the waterfall model.” – says Aleksandr Martinov, Team Lead Manager at Elinext software development company.
The product is presented to the customer regularly as the work progresses. However, this model has become quite unpopular. Read on to see what practices this approach includes, its main problems, and how they can be avoided.
What Is the Agile Approach?
The Agile method was created in 2011 when a team of 17 software developers met to find the best solution for IT project management. Together, they wrote the Manifesto for Agile Software Development.
They made choices regarding the preferred values (though the second option is not discarded completely):
-
Individuals and interactions preferred processes and tools.
-
Working software is preferred to comprehensive documentation.
-
Customer collaboration is preferred to contract negotiation.
-
Responding to change preferred to following a plan.
The main idea is to break the project into small segments, reducing the need for planning. Ideally, the time frames, or iterations, are between one and four weeks. Each feature includes stories (the requirements for that particular stage) and consists of all the steps usually taken when managing a project: analysis, planning, coding, and testing. And after every iteration, the customer is presented with what has been completed so far.
This method is vital in improving communication within and between the customer and the team. The former is dealt with by placing the whole team together and having them plan and solve face-to-face problems. The latter is achieved by having the team present the product to the product owner after every iteration.
Within the Agile method, several frameworks have been developed, the most popular ones being Scrum and Kanban.
Main Problems with Agile
Though, in theory, the Agile method looks perfect, the practice has shown it in a different light. The
common problems with this approach follow.
1- Working software is valued more highly than documentation. On the one hand, this makes sense because in traditional waterfall models, when a change has to be made in the program, it has to be reflected in the documentation, and much time is lost. However, practice shows that analysis, or better yet, an overall project design, is necessary. Lack of this may lead to the necessity to rewrite a good part of the code in the later stages of work.
2- It is often the case that unforeseen stories must be added in the middle of the progress of an iteration. This is problematic because a diversion from the plan must happen, and the overall flow of the project is hindered.
3- People are not instructed well and are not familiarized with how the system works. Consequently, the implementation of the method is not appropriate.
4- The problem of assigning tasks is reflected in having people do the same work across iterations, making them do the same type of tasks, which makes their work monotonous and uninspired.
5- Team members often face exhaustion as they do too much work. The separate items may feel easy to accomplish and lead people to accept more than they can deliver.
How to Avoid Problems with Agile?
The problems described above can be tackled. With some improvements, though that would mean the method won’t be followed in its entirety, its drawbacks can be minimized, and software developers may become more satisfied with it.
Referring to the problems as they are listed above, here are the proposed solutions.
1- An overall analysis should be carried out, clearly defining the primary goals and milestones. Then, a division into iterations is possible. After each iteration, the project should be compared with the respective milestone from the original design.
2- The additional tasks may be broken down and added to the current or one of the future iterations. The slightly longer duration of an iteration may be entered into the plan to make space for possible diversions.
3- Proper staff training will enable them to implement the method appropriately and efficiently.
4- The method recommends that each person chooses the task for themself. This enables cross-training and improves overall worker satisfaction.
5- A person should be ready to think about the future, estimate the workers’ capabilities, and ensure they don’t take on more work than they can handle.
Conclusion
The Agile method is a lightweight method aimed at improving the efficiency of software developers by breaking one complex project into a series of segments. The foundation of this method has many good sides, but in practice, workers often become unsatisfied with it. Tuning the ideas of this method may improve its disadvantages and possibly make the work of software developers easier.