What Is Agile?
- Individual interaction over process tools
- Customer collaboration over contract negotiation
- Creating a working product over documentation
- Allowing response to change over limitations of a plan
Why Go Agile?
Agile is important because information technology revolves around an intricate assembly process; however, this process revolves around the human element. Software production is not possible without human interaction, and human productivity is not like a car assembly line. Humans deeply involved in the process, are often unpredictable and require more attention and room to improve than machines.
Agile begins with the identification of problems that exist in the creation of a shippable product. Problems are identified, and then the roots of problems are recognized to apply Agile principles to create solutions to the problems. Complications in software engineering stem from the integration of three groups: the team, the team’s management and the customer.
- Lack of purpose and goals
- Lack of communication
- Decreased productivity due to micromanagement
- No motivation
- Too many priorities
- Team unengaged
- Missed deadlines
- Lack of product quality
- Not receiving product on time
- Lack of awareness of IT productivity
- High-priority items not worked on
- Resistance to change
Challenges common to Team and Management
- Hindrance from not allowing changes to a plan
- Over-emphasis on office politics
Why Do Challenges Exist?
Uncovering the causes of problems is just as important as identifying the actual problem. Agile builds itself on the idea that it is impossible to create a solution without knowing the problem as well as its source. The aforementioned problems among the team, the team’s management and the customer are often due to the following:
Finding a Higher Purpose
Individual team members often demonstrate decreased productivity because they are unable to find reasons to produce higher quality products. For example, the team member works harder only to see the customer rewarded with a better product. Management is praised for delivering that product, and the company sees capital gain, but the team member sees no monetary or promotional gain. Furthermore, team members are excluded from the company vision, which further eliminates a sense of worth. The team finds no higher purpose in the work they complete, and motivation is negatively impacted.
Lack of Communication
End products often lack quality due to lack of communication. When only management communicates with the customer, the team is left out of the loop. This creates a wall and leaves more room to lose customer needs in translation. Management may see a decrease in customer satisfaction, and the team suffers the consequences. The closed system cuts off customer feedback from the team, which hinders the team from producing a better product.
Mismanaging Collaboration Between IT and Business
Often times the hierarchical system of office politics hinders productivity. Micromanagement of the team causes too much focus to be placed on business policies and procedures. The team then spends more time adhering to rules and worrying about repercussions than finding ways to create a higher quality product.
Following a Plan Instead of Delivering Value
Management creates a strict plan to be followed and executed exactly as planned. The team is limited to a timeline and can only finish tasks. It has no room to evaluate finished tasks to determine the value of the work completed. Ultimately the end product suffers. It is also worth mentioning that plans are too long, which further restricts the team’s ability to adapt to unforeseen changes.
The team is not allowed to complete work at the utmost efficiency when management is allowed to change the team’s priorities. Tasks are left incomplete, goals are not accomplished and product deadlines are missed because the team is not allowed to relegate priorities and productivity slows.
How Do We Approach These Challenges?
Agile’s ultimate purpose is to embrace uncertainly and approach work iteratively. Planning detailed work only for a short duration welcomes change and controls risk. Agile strays from a mechanical, production-oriented approach with lengthy planning and execution. Instead, it identifies and addresses the roots of problems during the actual software building process. When applied correctly, Agile creates better business practices that reward all the involved parties.
For example, the problem of missed deadlines was a result of micromanagement, and lack of quality in the delivered product was a result of excessive detail in planning. Micromanagement began due to the lack of quality, and lack of quality began due to committing to a plan and not quality. People were not the problem; inadequacies in the process were at fault. Here the problem has been stated and the true cause exposed. Now it is possible to create solutions.
Two solutions are determined to eliminate the two problems. Missed deadlines are avoided by the implementation of a shorter, iterative process. Level of quality is improved by allowing the team to communicate directly with the customer to use customer criticism as a tool for improvement.
These Agile principles are applied to find a solution in shorter iteration and clear definition of goals. It also promotes focus and gives the team opportunity to rebuild trust in management. The team then gets back to delivering product on time in a sustainable fashion.
As exemplified above, short iteration has a complete life cycle of requirements, architecture, design, development and feedback. These elements lead to an evolving product with continuous improvement. Self-organization of the team is also promoted. Clear goals are to be prioritized by business to allow the team to be creative and effective in delivering a quality product. Constant interaction between business and the team encourages clarification of the exact product to be built to the desired specifics. Ultimately the team finds a greater sense of involvement and control, which solves the previously mentioned problem of the team lacking a sense of purpose.
Any complex system depends on human excellence and we can always have room for improvement . Therefore, by realizing there will always be challenges in any IT business and taking the necessary time to inspect operations, it is possible to create better practices and increase overall success. Agile, when applied correctly, can minimize problems, create long term success and provide a higher level of satisfaction among all the involved parties from individual team members to valuable customers.