Sunday, April 22, 2018

Most Common Mistakes During the Transition to Agile (Part 1) | Supreme Agile

תוצאת תמונה עבור ‪agile transformation‬‏
When examining the last few years, we can see the extended amount of organizations that use Agile frameworks (Especially Scrum) as the preferred software development methodology. Some organizations had a massive success implementing and adopting Agile. While other organizations achieved partial success due to well-known problems that I will cover in this article.

Well, how can it be that organizations fail to adopt Agile? This is despite the fact that it is well known, there are many implementers, coaches and endless knowledge on the internet that is available for everyone. 

Well, the answer is not surprising and relatively simple. Agile is a document with a set of principles and values that are interpreted differently by different people. The direct result of this interpretation is the creation of too many ways to implement the method and the abandon of the real spirit of what this document really represents. 

This article will present some of the most common pitfalls made in organizations while implementing Agile. My recommendation for you is to pay attention to each one of the items described below and to ensure that you avoid them to achieve a successful transition process. 

Mistake #1 – Retrospectives without continues improvement

The main goal of the retrospective meeting is to allow the team to raise all issues that affect their progress and to suggest new ways to improve the process and their day-to-day work. Therefore, all action items must be prioritized and resolved quickly. If they are not, team members will have no respect for it and will not contribute to future meetings.

Keep in mind, that retrospectives are critical meetings during and after an Agile transition. Great trainers will use these meetings to show the team that they respect their problems and will do the necessary work to resolve them. This is one of the most important ways to start building the respect and trust between the team and the process. 

Mistake #2 – Agile as a Religion

This is one of the classic mistakes made by new Agile facilitators is using Agile as a religion. Therefore, they implement it without understanding the real needs of the customer. As a result, they fail to adjust his/her needs to resolve the true challenges raised by the customer.


Mistake #3 – Ignoring the Ceremonies

There is a reason to why we use ceremonies as part of the transition to Agile. These meetings allow both the organization and its teams to inspect and adapt the implementation. At a team level, ceremonies help the team to increase the collaboration, visibility, and efficiency from sprint to sprint. Below are some meeting types:
  • Daily meetings - Enables the team to synchronize and remain focused on the iteration goal.
  • Review meetings - enables the team to share their work.
  • Retrospectives - enables the team to grow using continues improvement.
  • Planning meetings – enables the team to understand the work prior to committing to it.

Mistake #4 – Poor Team Structure

When building Agile teams we should do our best to create teams that have all of the relevant skills to act as a truly cross-functional team. The main reason is to allow the team to make commitments at the start of the iteration (A.K.A: User Stories) and perform the necessary activities (Design, Coding Testing Etc.) to their completion.

Agile teams that do not have the correct mix of skills to act in this manner, will not be able to see the big picture of what it takes to complete a user story, or at worst deliver a poor quality implementation.

In addition to above, cross-functional teams have the ability to estimate the scope of work required to complete a story. However, should the team not have the relevant resources; they will most likely fail to make the correct estimations. This will result in resolve delays, increased pressure through the iteration and higher % completion failures. 

Mistake #5 – Not Enough Training

Once I was invited as a consultant to an organization that was in the middle of transitioning to Agile. The reason that they invited me was to analyze the current failures they had in the process that leads to increased frustration among their teams. The investigation results lead to a basic, but a crucial factor, there was a lack of training that was not part of the overall implementation strategy.

Making an Agile transition without providing the relevant training is like letting a person drive a car without experience. As part of an Agile transition, one must ensure that the implementation strategy includes providing relevant training to build the necessary foundations that will be used throughout the entire process. 

Mistake #6 – Automated Test Coverage  

The basic concept of Agile suggests a team should deliver an incremental release of the product at the end of each iteration. Well, automated testing is a critical factor in achieving this and can be the difference between a successful team and an unsuccessful one.

So why it is such a crucial factor?
  • Without automated testing, the team will create technical debt that will affect their progress in future iterations.
  • Automated testing helpד to increase the resilience of the code (Unit, Component and integration tests) and will help increase the quality of each delivery.
  • Automated testing will reduce the waste of time-related to regression testing. 


Mistake #7 –Product Owner is a JOB and not a Habit

The Product Owner is a critical role in the process and must be treated with the appropriate respect. It is easy to see why the Product Owner is a Key stakeholder in any Agile transition that uses Scrum as the chosen framework. From my years of experience, I have seen many teams that fail to perform their job due to chosen Product Owners (PO) for the role. A product owner without any knowledge, Experience, and skills cannot perform this function.

The product owner should be a person that understands the business and has the characteristics, time and expertise in the specific area. This is the only way to guarantee that the team will be able to prioritize the backlog, write good stories. These will ultimately increase the ROI of the team.

Mistake #8 – Start with a Management Tool

Another simple but costly mistake is an organization that starts with selecting the management tool prior to starting the Agile adoption. Sometimes it is justified to do it (Especially if the organization understands the needs that arise in a new Agile transition) but in many cases not. This is because the organization does not have the experience and therefore will try different tools that do not provide the necessary answers to manage an Agile transition process.

When starting a new transition, the organization must first gain a deeper understanding of the Agile Framework and the different concepts that come along with it.

Mistake #9 – Certification is not a guarantee of success  

I am not a great believer in certifications that you can get without real hands-on experience. In Agile there are many certifications such as CST, CSM, and CSPO that you can pass without any relation to the real practical world.

Because of the above, I have a major problem with organizations that start the process with Scrum Masters that do not have any experience or certified trainers who do not have a clue what it takes to transition the company to the new Framework

Trainers can assist, but one always needs to ask the right questions and not follow them blindly. Remember the trainer may not have any experience in your domain, organization culture, and the root problems that keep you from succeeding.

The exact same thing is relevant to the Product Owner and Scrum masters that are certified and no one trusts them to perform their job at the highest level. This can never happen without real experience (Simulating 1 or 2 situations during the course is just not good enough).


Mistake #10 – Ignore the Quality factor

Agile allows us to release an incremental release of the product and doing it fast. Many organization loves this approach due to many obvious reasons that we all familiar with. So what can go wrong here? Well, the answer related to a state of mind that delivering the product earlier and faster is enough to succeed, but it is not! Agile is not about delivering releases faster; it is about delivering quality releases in a way that will increase the trust between the customer and the team.

Using Agile is not a free license to provide fast releases of the software with poor quality that will affect the relationship with the customer. The team may release less functionality in a sprint, but once they do, the customer will know that it meets the quality standards he expects to see.

Mistake #11 – Customer as the Key Stakeholder

The Agile manifesto contains 4 values and 12 principles that state that the customer is the most important stakeholder and should be the center of any Agile project. Many Agile projects that fail related directly to this. The customer is left behind at critical junctions that have a major effect on the entire project. One must avoid this pitfall by ensuring the customer is involved throughout the sprints and his feedback is considered. This is the only way to ensure the team meets the customer vision and technical expectations. 


Mistake #12 – There is no Executives Support

Any transition should start with the support of the organization executives who will take a decisive role in the success of the implementation. Without their support, the new Scrum team will have more difficulties to adjust the new Agile approach. Agile involves many meetings (At least at the start) that for some people may seem to be less important or a complete waste of time.

Wednesday, April 11, 2018

The Manager Role in Scrum Team | Supreme Agile


The scrum framework contains three mandatory roles that co-exist as scrum team, Development team, Scrum Master and Product owner (The general direction for the rest of the stakeholders such as management, architects Etc. is to support the team).

Because of this definition, we can now understand why the same question arises in almost any organization that is trying to make a transition to Scrum. “Where is the definition of team leader in scrum?”  Alternatively “Is there a necessity to keep them?” By asking these questions, we can understand that the organization is in the first phase of exploring scrum and what does it really means to implement it.  

If you are familiar with the Scrum framework, you are most probably aware that scrum teams are structurally different from traditional development teams.

In most cases, the traditional teams will follow a “Top-Down” approach where Management defines the project deliverables, schedule, and pace. While on the other hand, scrum teams will utilize a “Bottom-Up” approach, where they will determine their own pace and deliverables based on prioritization, Velocity, and capacity of the team (Under the restrictions of the organization boundaries of costs, Budget, declines etc. ).

The traditional role of a manager in the corporate world


The traditional role of a manager based on a well-known method of “Command and Control”. This method based on one single authority (Manager) that will control the major aspects of the project such as Team deliverables, Processes Schedules, and budget.

In this method the interaction between the manager and the employees is based on four simple phases:
  1. The Manager will identify the organizational “Needs” that based on budget, commitments and pre-defined plan.
  2. The Manager will provide to his employee a list of detailed instructions of demands, expectations, and goals (The employee should follow the instructions trusting the experience, judgment, and knowledge of the manager).
  3. The Manager will monitor the employee progress that based on specific instructions.
  4. The Manager will compare the employee deliverables based on the preliminary goals.
In the constantly changing software industry, this approach becomes less efficient and by far less productive than what we have in agile frameworks. There are many reasons that can explain this and why more and more organizations are now moving to agile. To clarify my point, I will focus on these three aspects:

Productivity – There is no way that a single manager can handle the current challenges that arise in almost any software development project (At least not in an effective way). Just think about the areas that this manager will have to handle in a single project starting from Understanding the organizational and technical requirements, Scheduling, Deliverables, and Quality.  

Centralized Management – We cannot throw this method just because we now have an alternative, but let us face it; centralized management comes with some major challenges starting from the need to issue list of technical instructions to the team (sometimes per employee), Handling internal/External dependencies and continuing with dealing with HR issues that may critically affect team performance.

Team Motivation – I think that we can all agree that this type of management (Depending on the manager and his leadership style) will not help to increase employee motivation. As followers, the employee role is to follow their manager instructions with the absence of freedom, decision making and trust that will not provide any sense of real ownership of their work.

Why agile can be scary for some managers? 


Prior to diving into the manager role in Scrum, I want to add more information about the “Bottom-Up” approach that used in Scrum. Scrum uses a more advanced approach to creating “Self-Organized, Cross-Functional” teams that can take full ownership of their work. This ownership is reflected in many aspects that were once fully managed by a single manager (described in the previous section) such as; determining the amount of work to deliver per iteration, Collective ownership of their work, Self-Management and the ability to decide how and who will perform which task to take. 

Now, as I mentioned at the beginning of this article, the Scrum Framework contains three main roles (Team, SM, and PO) that are critical to the success of the project. However, the Scrum Framework does not provide the same level of details regarding other main stakeholders that we expect to see in any SDLC project such as; Development manager, Project manager, product manager test manager or any other stakeholder that possess a management role.  

Therefore, those stakeholders who are involved in agile transition will struggle to find their role in the new agile teams. Especially when there are no criteria that specify their new responsibilities.  

The role of Managers in scrum team

In theory and based on my own interpretation of the Scrum Framework, the role of a manager in Scrum can be summarized as follows:

Re-Organization – I think that it is a classic for managers to help the organization to make the transition from a traditional way of working to scrum. Their work will focus on the “Re-Organization” and in the removal of any barriers that may affect this transition.

Servant leader – Similar to the role of the SM, managers should shift their state of mind from a single authority into servant leaders of their teams. Their new activities will focus on many aspects that will help their teams such as; creation of safe working environments to their teams, investigating for new tools that can improve efficiency and plan technical training that will improve areas where the team's skills could be improved.

Not interfere – It is simple, to allow Scrum teams to grow, the old fashion management must be removed and the team manager should take one-step back and not interfere with the Scrum implementation (It is a critical point for new teams that just started with scrum).

Change Agents  The organization TL’s should allow the organization to get the most from Agile, One way to achieve this, is to embrace the new agenda and state of mind that comes as mandatory part from this approach and to grow with it to help the organization to achieve better results.

Lead by Example – This is probably one of the most important keys to an Agile transition. Leaders that used to lead by “Authority” now must embrace the new culture and start to lead by “Example”. This is while at the same time allowing their teams to grow and take further ownership.  

Removing organizational Impediments – like we expect from the team Scrum Master to remove impediments that affecting their team capability to perform at the highest level, we can expect the same from the organizational TL’s to do the same. They need to reinforce the team with relevant resources, remove bureaucracy, and provide training as needed.

Feedback – Constructive feedback is another tool that managers can use to promote their agenda in their teams without enforcing it with authority as they used to do in the traditional style of management. Constructive feedback will assist the team to improve continuously.

Technical Assistance - Managers can use their knowledge, experience, and expertise to provide assistance whenever the team needs or ask for it.

Determine prioritization – This is a classic area for these managers to show their importance to their teams and especially in the process.  Using their knowledge, experience and broad perspective, they can allow the team to make a robust and more effective prioritization to increase their ROI.

Classic examples:
  • Assist team to prioritize technical debt affecting their ability to deliver real value. 
  • Assist team with the iteration planning and prioritization of their stories.
  • Assist Product Owner to prioritize the product backlog
  • Assist Product Owner and team to achieve the balance between “Functional” and “Non-Functional” stories.

Drop Their Ego – To be able to take part in the agile transition, managers will have to drop their ego and learn Agile from their Scrum Masters. Now’ it is easy to say it, but I have seen too many managers that fail to drop their ego and learn from someone that was under their direct management. This leads usually to unwanted results. 

Human Resources – Well, this aspect is still under the management responsibility. As part of his job, the TL will conduct regular 1:1 meetings with team members and provide assistance with different HR issues. In addition, they will recruit and hire new employees, integrate them into the team (With the collaboration of the SM) and remove any negative effect that may arise while integrates a new employee into the team.

The traditional manager as the new scrum master


A common approach to redefining the role of the traditional manager is to convert them into the new Scrum Masters of their old team. On the face of it, this seems to be good for the company, but believe me that it can be devastated for the team. When the manager plays the role of the SM, it is very unlikely that the team will gain a true confidence to begin to self-organize itself. The manager will most likely keep the hold management patterns and old habits that will make it almost impossible for him to release ownership to team members (an Agile fundamental concept).

Now, I have seen many team managers successfully transition, this is because they strongly believe in their team and in the Agile values. However, I always believe that the Scrum Master must be chosen and agreed by the team members and therefore should be one of them and not their old manager. 

Wrong Practices to avoid


Let us review some of the most common incorrect practices that I have seen in organizations in relation to this topic.

Assign the work for the team – one of the major cornerstones in Scrum, it the creation of “self-organized” teams that can determine for themselves the team member who will take ownership of the specific unit of work. Therefore, there is no need for using old management habits of assigning the work to the team.

Ensure work is completed – The team is responsible, therefore they need to follow the “Definition of Done” and “Acceptance” criteria.

Monitor what team members are doing – This responsibility belongs to the team, they need to provide answers during their daily scrum meeting. 

Work with your ego – Team leaders who fail to drop their ego and do not listen to their teams will become the team most critical impediment.

Prioritize the work – The team together with the product owner own the work. Therefore, the TL can assist and share his thoughts. He must not have the authority to delegate or priorities the work items. 

Decide what work needs to be delivered – It’s simple, the scrum framework provides two roles that are responsible to this issue, the PO that determines the features and requirements that need to be delivered and the development team that determines which tasks are necessary to achieve it.

Micro Management – I think that if you went this far in reading this article you have gained the knowledge to understand that Micro Management and Scrum are not linked to each other. 

Wednesday, March 28, 2018

The courage to work under Uncertainty in Scrum teams | Supreme Agile



To become fully agile, the team must leave behind much of their traditional project management mindset. Traditional project management can have many aspects that are not relevant to the values and principles that come with agile adoption. This is especially true in allowing a team to make mistakes as part of their growth engine.

Due to the nature of Traditional project management, wrong estimations delivered by the team can lead to dangerous consequences that will affect the entire organization and especially on team morale.

Once the organization decides to adopt the Agile framework, they must allow their Scrum teams to work with high level of uncertainty and keep moving forward no matter if they provide wrong estimations about their ability to deliver their commitments (Measurements, Training, and processes need to be put into place for this to work, This is a complete culture change).

The level of Uncertainty


We all know that for the team it will be simpler (That have some experience) to provide more accurate estimations when using Agile. This does not mean the estimation problem has been resolved. Time estimations can be wrong in agile as much as they are when using traditional SDLC methodologies.

The main difference in agile is that we can accept the idea that the development team can be wrong with their estimations and this is even more true with new teams that have begun following the agile framework. The assumption that Agile will resolve this problem is wrong (although it can improve it dramatically). This is because although the level of uncertainty is lower, it still exists. One cannot assume that the team will be able to provide accurate estimations, good task breakdown during the planning meeting. This is especially true during the in the beginning. 

Embracing courage as a growth engine


There are two main approaches to handle estimations mistakes. The first option is more common in traditional project management methodologies. This method is to point the finger and blame the development team regarding their mistakes and its effect the project.

This approach is what I like to call an "HR" killer that will neither contribute to the motivation and commitment of the team. Blaming is not an effective method to encourage people to improve their abilities. The only output will be that next time, the team members will provide exaggerated estimations just because of they afraid to be mistaken again. 

In Agile, there is a more acceptable room for mistakes that come from the overall mindset that mistakes can be used as a great method for the team to grow, especially when the team reviews them in dedicated retrospectives. Remember that for a team member, It takes courage to stand in front the rest of the team and say "I got it all wrong" or "I made a mistake that kept us from completing the story", but it will allow him to get the help of its team and the confidence that they will help him to improve next time.

Being Agile instead of doing agile


Once the organization decides to start the transition to Agile, there will be a period of weeks and even months that the old project management style will still be the dominant one (do not think otherwise…). This will continue until the organization change its culture and really adopts the agile values and principles.

During this hard period, the Scrum Master is responsible to provide the team with a confident working environment that will allow them the transitioning to "Being" Agile. This is completely different from just "Doing" agile.

In order for this transition to be as smooth as possible, the Scrum Master on one side must remove pressure and any external interruptions that may affect the team. While on the other side, he must recognize warning signs that come from the team itself. This demands more HR-related skills that will enable him to become effective discovering problems earlier.

In tradition project management, often there are slow, ineffective meeting that is usually as the result of missing direction/deadlines that came from a single authority. However, in agile slow and ineffective meetings can be the result of lack of courage or poor team commitment.   

A good experienced Scrum Master will know each of the Agile activities has its own warning signs. From my point of view, daily standup and the retrospective meetings are the best places to see them.

Examples

No courage to admit lack of knowledge


The first example related to these meetings is a team member that does not share any obstacles or impediments. These can result in either slowing down work or dangerous/blockages scenarios that could occur. Both these can result in a delay in meeting time schedules.

A good Scrum Master must see warning signs and should proactively seek to understand the reasons for no progress but determine why no impediments have been reported.

Once the Scrum Master recognizes this issue, he needs to understand the root cause of why the real problem is not reported by the team member. Based on my own experience, a short discussion with this member will reveal that he was not confident enough to stand in front the rest of the team and ask their help. This often results in the team member trying to provide a fast fix to the problem. This takes time. This can have an impact on other team members and result in them losing trust in the team member or the group or Agile process. 

Time Estimations 


Another classic example relates to time estimations that the team needs to provide for tasks during the planning meeting. A clear warning the SM must look for is once team members say that they cannot provide estimations because they do not have enough information about the task. This may be ok in some situations, but based on my own experience the root cause is that the team members do not have the courage to admit that he just doesn't have what it takes to complete what the PO asking for (Or they don’t understand the requirement and what is expected from them…).  

Once this occurs, it is the Scrum Master task to explain to the team it's ok to make mistakes. It will assist them to improve their next planning meeting. Within the Agile framework, there is room for this. Therefore, team members should not be afraid to request assistance from their team members or that they need more information that will help them to handle the task. 

The Scrum Master should consistently remind the team that it takes courage to take an educated guess (Every estimation is a guess unless you have a crystal ball that can show the future). The unknowing on how to finish the task does not say that you cannot start working on it and deal with future problems once they occur.  

And as the Scrum Master


If you are the Scrum Master of the team, it is your responsibility to search for warning signs. Although I provide just two examples there are many more warning signs that can help you to determine how courageous your team really is while providing their estimations.

Based on the warning signs revealed by your team, it’s your responsibility to coach your team on how to be more courageous and transparent to allow them to keep moving forward without rather their estimations are correct or not (I can assure you that it will improve per iteration).  

My Presentations