Article #3 from 2022
During my 1.5 years working as a Cloud Product Owner on a major defense company private Cloud, I had the opportunity to use Agile methodologies and pass the Professional Product Owner certification. Agile increases projects success rates, especially when dealing with evolving objectives.
Reading Time: 10 minutes
Bringing agility to a project can be summed up as creating continuous value through exploitable increments, but this is not the main argument explaining its mass adoption. Choosing to manage a project in an Agile manner is above all increasing the probability of the project's success but also compliance with its time and budget requirements as well as stakeholder satisfaction. The frequency of decision-making is more important than their quality. Several elements are important for this to happen, including the project team, which must be small, the sponsor involved and the users consulted.
However, you should not start Agile without questioning its relevance in the context. Applying agility to a large project with many constraints and all the details of which are known is not a good idea. It is more suitable when the objective changes regularly, when you do not have an idea of the finished product from the start and when the company is open to experimentation. The involvement of stakeholders external to the team must also be taken into account because they must be involved in each decision-making process which happens more frequently in Agile.
Kanban is an Agile method similar to a bulletin board whose role is to visualize the workflow in addition to simplifying it. The panel is divided into three main columns, each containing a description of a task: to do, in progress, done. The objective being to control the workflow in order to make it predictable and sustainable, the amount of work in the current column is limited. This requires prioritization thinking on which tasks to choose and highlights potential flow management issues. To get started in Kanban, simply start with what is currently being done, agree to pursue evolutionary changes and encourage initiative at all levels. In addition to limiting inconvenience through gradual adaptation, Kanban reinforces the service-oriented approach by emphasizing the customer's needs in choosing which tasks to select.
Kanban is an Agile method similar to a bulletin board whose role is to visualize the workflow in addition to simplifying it. The panel is divided into three main columns, each containing a description of a task: to do, in progress, done. The objective being to control the workflow in order to make it predictable and sustainable, the amount of work in the current column is limited. This requires prioritization thinking on which tasks to choose and highlights potential flow management issues. To get started in Kanban, simply start with what is currently being done, agree to pursue evolutionary changes and encourage initiative at all levels. In addition to limiting inconvenience through gradual adaptation, Kanban reinforces the service-oriented approach by emphasizing the customer's needs in choosing which tasks to select.
Scrum is a lightweight framework that helps individuals, teams, and organizations generate value through adaptive solutions to complex problems. It is intentionally incomplete and defines only the parts necessary to implement Scrum theory because putting it into practice relies on the collective intelligence of the people who use it rather than following detailed instructions to the letter.
Scrum guides relationships and interactions while making visible the relative effectiveness of existing management, the environment, and work techniques so that improvements can be made. It is based on empiricism, knowledge comes with experience, and Lean thinking aimed at reducing waste. To optimize predictability and risk control, Scrum uses an iterative and incremental approach and relies on a collective whose members have the skills, expertise, or the ability to acquire them.
The 3 Scrum pillars are transparency, inspection and adaptation. Processes and work must be visible to those who make and those who receive the product. They must be inspected frequently to verify that needs are met and to detect unwanted variances. If this happens, adjustments must be made as quickly as possible. Scrum also highlights 5 values which are commitment, focus, openness, respect and courage. They mainly help the team to commit to achieving its objectives and for members to support each other.
A Scrum team is made up of a maximum of 10 members who self-manage. They are all responsible for creating value and are divided into the 3 Scrum roles: Product Owner (PO), Scrum Master (SM) and developer. The PO is responsible for maximizing the value of the team's work, the SM for its efficiency and the developers for its quality.
Scrum is regulated by sprints which set the pace. These are periods of equal duration, generally between 2 and 4 weeks, during which several specific events take place and at the end of which one or more features are delivered to users. The constant duration of sprints makes it easier to measure and compare performance over time and allows for better predictability of delivery as well as the establishment of diagrams and curves to evaluate progress. Estimates made from measurements should not be taken for anything other than what they are, namely estimates. The amount of exploitable work can vary from one sprint to another due to learning by doing in a complex environment and is not intended to grow infinitely but rather to be constant.
The sprint begins with sprint planning where the team defines the objective to be achieved during the latter. It is closed by 2 events: the sprint review to carry out a demonstration with external stakeholders and the sprint retrospective where the team analyzes its effectiveness during the sprint to establish improvement actions. The daily meeting takes place every day for 15 minutes with the aim of listing current issues, improving internal communication and facilitating rapid decision-making.
In order to create a list of features called a backlog, the customer's need must be formalized in the form of a user story. This user story indicates the role of the person who made the request, the functionality they want and the benefits it will bring them. An example of a user story: As an employee of the company, I want to be able to reset my password in order to regain access to my account if I forget it.
It is the PO who must write the user stories, ensuring that they reflect the customer's real need as best as possible while being understandable by the developers who will then issue an estimate of the effort to be made to meet the request. The effort made on a sprint is the sum of the estimated effort for each of the stories completed during the period which will serve as the estimated maximum effort threshold for the following sprints.
A user story with an estimated effort that is too high must be divided into several smaller stories. The number of user stories quickly becomes large and facilitating their organization is done through thematic corpora called epics. The scope of a corpus is flexible and often extends over several sprints through the user stories that compose it. Epics allow you to maintain a link between daily work on features and more general objectives.
We must not fall into the trap of working only on the most urgent and easy-to-achieve user stories at the risk of leaving aside substantive activities, delaying the preparation of a more important feature and increasing technical debt. The latter is the sum total of imperfections such as anomalies, high code complexity, exclusive knowledge of a single person and duplicates. Giving up on dealing with technical debt leads to a reduction in customer satisfaction, an increase in delivery time and an increase in the time spent investigating the code when it comes to reimbursing it.
The benefits of Agile can extend to the entire company and bring an increase in productivity, stronger employee engagement, better product quality and a reduction in the time-to-market (TTM). This is what SAFe promises, for Scaled Agile Framework, which is the most implemented solution in companies to scale up Agile and whose principles are available in the appendix. The objective of SAFe is to synthesize knowledge to be able to respond to all possible cases for companies in work management. Implementing SAFe means seeking the alignment and collaboration of a large number of Agile teams.To facilitate the transition from the existing to SAFe, several steps must be followed: train your employees, identify value flows and group the teams around them.
The Spotify model is less strict than SAFe and emphasizes the network effect, technical-cultural evolution and the structure of the company to organize around work rather than following specific practices. In this model, the organization is matrix-based as previously, but the groupings are done differently: instead of vertically grouping employees by functional departments according to their skills, they are grouped by delivery themes (the what) and a horizontal dimension (the how) is set up to share knowledge, tools, codes, etc.
The central unit of the Spotify model is the Agile team called a squad, in our case the Scrum team, which is a mini-startup within the company whose members have all the skills necessary to work and self-organize. The mission of a squad is to build and improve part of a product for users. By limiting itself to a mission and part of a product, the team becomes an expert and maximizes the value provided. In the case of the Spotify platform, each squad is dedicated to a part of its parts: recommendations, playlists, artist page, etc. The delivery of a minimum viable product (MVP) rather than a finished product is encouraged in order to deliver quickly and often in addition to having feedback to modify it for the better.
Squads working in the same area are gathered within a tribe. Spotify has music player and infrastructure tribes. Tribes can be seen as incubators for teams and are led by tribe leaders who are responsible for providing the best possible working environment for squads. Where a squad is limited to 10 people, a tribe is limited to 100 people to keep the amount of social connections maintainable as well as limit excesses such as bureaucracy, politics, restrictive rules and additional layers of management. Activities must be organized within the tribe to bring its members together, so that each squad can present what it does to the others, carry out demonstrations and more simply create links.
Teams must be as autonomous as possible and it is important to minimize the number of dependencies that could slow them down or even block them. Work on reprioritization, reorganization and architectural or technical change must be carried out as well as a diagram of the dependencies to track them. If the number of dependencies is quite high, it is suggested to hold synchronization meetings with the teams concerned to discuss them and progress together. The most common case is when the creation team is separate from the operating team, the former must then ensure close collaboration with the latter in addition to simple documentation.
Total autonomy comes at the cost of a loss of economy of scale where the problem encountered by a developer in a squad may already have been dealt with by another in another squad, but also a loss of the feeling of belonging to the company. To avoid this lack of communication and benchmarks, vertical groupings called chapters are set up to link people with similar profiles spread across different squads. Chapters can include POs, system administrators, network architects, etc. A chapter is led by a chapter leader who is the hierarchical manager of the members and is responsible for recruitment activities, salary negotiations and training. A second grouping present in the Spotify model is the guild which is a community of interest that can extend over several tribes unlike chapters which are specific to a tribe. Anyone can join a guild but they are generally mainly composed of chapters of the same theme of each tribe. The most important guild is that of agile coaches who ensure that the entire organization functions properly.