5 most common difficulties in working with Agile – a Project Manager’s perspective vs. a programmer’s perspective

Agile isn’t a tool or a methodology, but a philosophy and a work-style, which, if correctly understood and properly supported, allows us to incrementally provide software in a quicker, more effective manner that will always be compatible with the customer’s expectations.

Since changing one’s way of thinking depends on people who take part in an agile development of software, we can encounter problems relating to an incomplete comprehension of Agile values, both on the level of customer cooperation, as well as on the level of everyday work of a development team with a Project Manager.

The perception of problems is different from the point of view of a Project Manager being in charge of a project and a Developer taking part in it, but their solution always depends on both sides cooperating with equal engagement and a will to change – and on many occasions such a solution is beneficial to the Customer, too.

The 5 most common problems identified during an agile delivery of software, as well as working in Agile, are:

A low awareness of agility – Does the team and Customer possess sufficient knowledge to be able to work in the agile working method?

Lack of a specified and coherent business need – Do we all know why we are developing a product?

Lack of communication – How big is the need for often interaction with a Customer and why do we communicate in the team?

Avoiding responsibility – Do we identify ourselves with our job and are we able to take responsibility for it?

Lack of flexibility in using agile tools – If something doesn’t work, are we able to change it?

1. A low awareness od agility

One has to understand agility; it’s not possible to use it as a working tool or a layout for working on a product. Following the Agile values is the key – they define the style and method in which one provides software.

A common problem is that the Customer and people directly involved in the development of a product are not aware of how to work in an agile way, or what values Agile entails (and how understanding them influences the swiftness, quality and worth of a provided solution). Sometimes the Customer claims to know Agile on when signing the contract and when defining the requirements, but when the work is underway it turns out that he expects different results and changes his approach.

From the Project Manager’s point of view, the agility should help in providing a product and he should pay extra attention to leading the project in accordance with its assumptions without trying to interfere in the team’s work at all cost; assign tasks; limit the communication between the team and the Customer; and request detailed reports on the work progress. The agile work is transparent, so the progress of work should be known for all involved parties. The Project Manager should have knowledge regarding agile provision of software and be experienced in leading such projects. If necessary, he and his team should also educate and help the Customer understand agility.

From the Developer’s point of view the key values of Agile should be understood and accepted. The method of providing the product should be based on an understanding of customer’s needs; a gradual and timely provision of software; cooperation with the customer and the team; caring about the quality of the provided solution; and a constant communication about appearing problems.

We should make sure that the Agile method of work is coherent to everyone and if following its philosophy is acceptable to us. When we identify a need to explain the rules, it is a good idea to have a workshop for the Customer and the team, one focused on the Agile’s philosophy, work simulation and showing the values such work would bring. Only then can we achieve a full understanding of all stages of software development and avoid mistakes in implementing agility into a specific project. Moreover, at the point of signing an Agile contract with the Customer it is a good idea to explain its every paragraph and give examples of how it would all work in reality. Only then will we have a guarantee that the method of realizing a project is clear.

An important role is played by the Scrum Master or the Agile Coach – they educate and maintain the work’s compliance with Agile, as well as ensure that it is effective. Using their support at that stage of development will help navigate the project in line with the Agile philosophy.

2. Lack of specified and coherent business need

One of the most common mistakes in the agile development of software is committed already during the initial analysis of the Customer’s needs, which leads to a lack of an answer to the most basic question: “Why are we doing this?”.

The business need of a product is nothing else than a specific goal or an answer to an apparent problem, because of which our Customer decided to create or modify a product. It defines the most important functionalities, both from the Customer’s point of view and from the end users’ one; the problems, both existing ones and those one has to face; and the value which will be provided when the software is up and running (it can be, for example, introduction of an innovation; reduction of costs; improvement in quality and efficiency; reduction of time; or the users’ increased satisfaction).

Defining and understanding the business need of the Customer with whom we together develop a product is difficult, both during the stage of creation, as well as in the later process of product delivery. It is often the case that lack of precision, inadequate transfer or omission in the process of software development lead to a situation in which the product does not fulfill the basic expectations. On numerous occasions, while defining the requirements that should be fulfilled by the product, we forget to define the business need and thus the goal of the product’s development.

From the Project Manager’s point of view the business need is the project’s goal and his task is to inform the team about its targets, as well as monitor if the current realization is leading to fulfillment of the Customer’s business needs. On the management level, the progress in fulfilling the business need should indicate the success or failure of the whole project.

From the Developer’s point of view the business need defines the range of functionalities and the specific requirements that should be delivered first, in a specified time, in order to meet Customer’s needs and present a maximum value while maintaining the proper quality of an incremental development of a product.

The business need should be defined together with the Customer on the first stage of cooperation when the the Customer’s needs are being analyzed. The role of the Project Manager and the Development Team is to help the Customer define it, and if it’s insufficient, prepare the product’s realization in accordance with the need’s values and often monitor if the product is compliant with the Customer’s business need. The Development Team, while defining the goals of the individual increments, should follow the paramount goal of the product, which is the business need to create, and suggest the Customer to change his requirements, so they all point to the achievement of the business need.

3. Lack of communication

Lack of communication and cooperation with everyone involved in the project during the whole process of product development does not allow us to work in an agile manner, because it means that a change in requirements, product adjustments to its current needs and an ongoing reaction to the appearing problems do not take place, which makes it impossible to deliver the product quickly and in compliance with the Customer’s vision.

Ever so often the team discusses things only during the everyday Daily Scrum meetings, while the rest of the day is devoted to programming and working in an individual space, where the people don’t feel a need to communicate with the rest of the team and try to solve everything on their own. Moreover, the Project Manager is the last one to learn about blockers, which makes it impossible to quickly react to a new problem and solve it, which in turn means that the Customer is informed about the whole thing after a long time, leading to a delay in work, problems piling up and a conflict- and miscommunication-inducing atmosphere within the team.

The Agile work is based on regular communication and cooperation with both the Customer and the rest of the team that delivers the product. It is crucial and it should be cared after on every step of the product’s development. Regular meetings, talks with the Customer and verification require courage, an understanding of the need to communicate and cooperation, openness, honesty and active listening.

From the Project Manager’s point of view it is important that he takes care of a regular feedback from his team and that he cooperates with them in order to track appearing problems. He supports the team in the relations with the Customer and helps with a sufficient information flow and negotiations when the Team cannot manage on its own. Additionally, he should have well-developed communication skills. It is also important that the Project Manager, the Scrum Master and the Product Owner take care of adjusting the communication to individual needs of the team members and prepare a communication plan during the first stage of the project, including the responsibilities, places where the communication will happen and tools used for it.

From the Developer’s point of view it is important to quickly report the present problems on all stages of the software development. The following aspects are also crucial: being able to ask other team members for help; a regular communication with the Customer; following the established plan of communication and using all the available tools, such as a phone, e-mail, platforms of virtual communication, spaces dedicated to the work’s and project activities’ documentation, as well as other means helping with the information flow.

Involving the Customer in the communications process within the project will allow everyone taking part in it to improve the developed product, quickly solve the new problems and follow the vision and the business need. Regular communication seen in the form of numerous meetings, teleconferences and an actual virtual storage place for project information will allow the project’s participants to exchange information, express their opinions and doubts, which will in turn help in making the best decisions, ones that would motivate others to take action, but also provide control over all the aspects of the developed solution.

4. Avoiding responsibility

The lack of feeling responsibility for our work is another reason why the product is not delivered on time, within the specified budget and with compliance to the established requirements. In consequence, the project team feels frustrated and does not take responsibility for the effect of their work. There are many reasons why people avoid responsibility, starting with the team members’ personal problems, a lack of identification with the project or/and the team, as well as the common notion that a project is the Project Manager’s responsibility and the rest of the participants simply carry out appointed tasks.

In agile teams it is very important to maintain self-organization and maturity among its members on such a level that feeling responsible for one’s job is a motivator and allows for freedom in project’s realization.

From the Project Manager’s point of view: he should let the members of the team take responsibility for their work and let them self-organize themselves within the team, which is also an indication of trust. Without that, the team will only carry out orders and tasks without identifying with them, which will also mean that the agile approach won’t happen. Accompanied by the Scrum Master, the Project Manager should answer the question “What are we going to do” together with his team and the Customer, while “How are we going to do it” should be handled by the team, giving them a chance to take same responsibility for the decisions made, project works and the organization within the team.

From the Developer’s point of view: he should, first of all, strive for a working environment that is based on trust and acceptance of committed mistakes. He should have a chance to discuss things openly, state his views and work in accordance to the rules established with other participants of the project. Moreover, he must be aware that the responsibility for the success or failure of the project lies with the whole team in the agile environment – its work makes up the effects of the development.

Comprehension of what it means to be responsible for one’s work (and at the same time responsibility for results) and identifying oneself with the task make everyday job easier and are crucial for realization. They also give the workers a feeling of having an influence on the end result, increase the commitment and secure full trust within the project. Moreover, the Scrum Master supports the team in becoming self-organized, makes its members realize how important responsibility is in agile projects and helps achieve it.

5. Lack of flexibility in using agile tools

When a decision that the project will be developed in an agile way is made, it’s very often the case that after choosing the working method teams introduce no modifications both to the methodology itself, as well as to the tools used in agile work. The do so because they think that the chosen methodology is not flexible. There is a belief that one should do everything “by the book”, which is the opposite of one of the Agile values: openness. Being open to change doesn’t relate only to the technical aspects of work, but to the overall look at the work environment and the tools used to monitor it. If some action does not bring expected results, one should think about the reason behind it, try solving the problem with education and showing its value, but it’s also possible to introduce some change or use new tools which would prevent the problem from occurring.

A change in methodology in the course of the project is also acceptable, but on condition that it brings a profit in the form of a delivered product. If we are using Scrum in the project and it does not fit into the project’s specifics, we can replace it with, for example, Kanban or introduce other tools increasing the supervision of work progress and helping with its realization – with keeping to the transparency of operation of course, a factor crucial for agility. It all depends on the problems one faces, but it’s important that the team, the Scrum Master, the Product Owner and the Project Manager together with the Customer are aware of the project environment and together find new ways to solve project problems, retaining flexibility in their actions.

From the Project Manager’s point of view: he should accept and allow using different agile tools in a project – they increase transparency of work, help deliver the product more quickly and in a better quality, improve communication and commitment, as well as the project’s scalability. He should also support his team and together with the Scrum Master suggest new solution and tools when the present ones prove to be insufficient.

From the Developer’s point of view it is important that he informs everyone about the appearing problems that relate to the use of project tools, suggests different uses for those tools, but also uses them in his everyday work and sees their validity. The Development Team should adjust the tools to the project’s specification and its requirements, so they are helpful to every participant of the project, and their use is not time-consuming and does not obscure the agile idea stating that people and iterations are more important than processes and tools.

Every change in the project and its environment requires sensibility, so it doesn’t lead to a situation where we only speak of maintaining an agile project, but its inner environment is identical to the cascade methodologies. Flexibility in using agile tools is important on every stage, but should be restricted to the Agile values, which allow to deliver the product in accordance to its ideology. Experimenting with other project tools and different agile methodologies of managing a project allows its participants to gain new experience, and more often than not – to work more effectively and develop more quickly.

The problems mentioned above can appear in a project simultaneously or individually. It is important not to ignore them, but instead discuss them openly with other participants of the projects and look for solutions. Comprehension of the philosophy of the agile software development takes time and constant improvement of work, identification of obstacles and search for possibly best for all methods that lead to a successful end.

Every IT project should be delivered with an understanding of the agile development of software both by the development team and the Customer, in accordance to the Customer’s requirements and following his business need. It should also be accompanied by a close and everyday cooperation of all participants of the project, using best solution, methodologies and tools fitting the project’s specifics, as well as with a commitment of highly responsible people.

The perspective of the project’s participants will always differ, but it is important to strive for a consensus and solve the problems of everyday work swiftly after they become evident – or, in a best case scenario, be vigilant enough to prevent them from occurring in the first place. Responsibility for all those actions should be equally shared between the Customer, Project Manager, Product Owner, Scrum Master and the whole Development Team.

About the Author: Justyna Zalewska

Over 11 years of professional experience in solutions delivery in production & IT areas including leadership experience during all phases of Product Lifecycle Management process.

Oversees the planning, development, implementation and maintenance of manufacturing, and project methods, processes, and operations for new and existing products.
Justyna is salso a coach and trainer in the Project Management methodologies and soft skills.

MENU

ABOUT US

Cybercom is an IT consulting company enabling companies and organisations to benefit from the opportunities of the connected world and to enhance their competitiveness. Combining technical edge and strong business insight we provide innovative and sustainable solutions.