How to create an Agile Environment?
Putting an Agile team and following an Agile framework takes time. A team needs to feel comfortable with an Agile process and they need time to learn how to interact with each other. A manager also needs time to learn how lead in an Agile environment. The team would need to use an Agile process for a few months for a major benefit starts to manifest.
The migration to Agile is more than just a change in your process. It would also require a change in your culture. For a lot of companies, changing their culture is the most difficult part. Here are a few reasons to show you that this is true:
- Whether successful or not, a company has to be comfortable with their process.
- A lot of people still believe that requirements change because they are poorly managed. They could not comprehend a process that just embraces change.
- Most managers are trained to control an event. Empowering a development team to deliver and own a project would not be intuitive or logical.
- Job protection. In a large company, a whole group is dedicated to regulate and oversee a project. An Agile team would have a lesser need for these service.
There are still a lot of reasons but these are the center of the issue. These issues have to be addressed in two ways: First, you want to address the culture needs of each group. Lay out a game plan to obtain support from a line management, a team and an individual and executive management.
If you work in a small company
If you are in a small company, you might not have all of the organization levels that are discussed here which is a good thing. You would find it easier to create an Agile culture due to the fact that you are fighting your competition on a daily basis. You’ll be able to obtain the most value by reading articles related to creating an Agile team and addressing an individual’s needs.
Secondly, you’d want to address this problem through the establishment of practices that foster an Agile culture. Practices like a high customer involvement, early testing and a collaborative decision making would promote an Agile mentality throughout a company.
An agile culture would be established when 3 major groups would come together in a company. The executive management endorses the Agile principles, working managers would learn to coach instead of directing and a project team would understand and support the Agile principles and practices.
This article would help you establish a foundation that would allow an Agile process to thrive. Similar to software development, if you have a good foundation in place it would make everything else a lot more easier to do. If you do not then you would fight the foundation with every change that you make. Let’s have a look at the skills that are required of an Agile manager.
Agile Manager – more shepherding and less directing
An agile manager wouldn’t write a line of code, never document any requirement or test a feature. What an Agile manager would do is:
- Help in tracking the true status of the development team.
- Encourage an automation of a redundant and repeatable test.
- Mentor a team on Agile process and demonstrate the values.
- Helping the team break the work into a small chunk that could be delivered quickly.
- Ensuring the work being delivered is in tune with a customer’s needs.
An Agile manager would provide leadership without the use of formal power. Instead a manager leverages the respect that they are earning from a team as they would establish a history of working together to deliver a successful project.
What does a manager have to do to establish a record of a successful project delivery? Let us start with the soft skills.
If you look up soft skills on the United States Air Force website you would find a set of skill that would influence how we interact with one another. It would include an ability as effective as communication, creativity, analytical thinking, diplomacy, flexibility, change-readiness and problem solving, leadership, team building and listening skills.
This definition is very excellent to describe the behaviors that an Agile manager would need to subscribe to.
- Effective communication in ensuring that a team is synchronized on information.
- Analytical thinking to help a team brainstorm a solution when a challenge would be encountered.
- Great listening skills to ensure an accurate understanding and enhance the relationship with others.
To sum it all up, behaving in a way that would enhance human relations.
An Agile leader would bring their soft skills together to shepherd a team versus directing them.
Soft skills was defined by Diane Ehrlich, Ph. D as “The skills needed to perform jobs where job requirements are defined in terms of expected outcomes, but the process to achieve this outcome would vary widely.” This is the best description for Agile development in general. You have a desired output, a project, and the way for you to achieve that output would vary wildly depending on a specific need of the project.
Now let’s see where the soft skills would be used.
Working with another manager
A project manager would usually lead a group of people that are not their direct report. As mentioned earlier, your job is to earn the respect of the team so they would follow you regardless of your express authority. To be able to do this you need to have the respect of the line manager who owns the resources. The key is in ensuring that a line manger buys into Agile concepts before you ask a team to.
Some level of training would have to occur within a line manager before an Agile migration would be pursued. This training could come from any resource, internal or external, but during this training a manager needs to normalize on their support of the principles. You don’t want to ask the manager’s directs to buy-in to the process before the manager has.
You also have to consider roles when working with another manager. Although everyone is flexible in a task that they are performing in an Agile environment, there will be areas of responsibility for everyone.
Consider a development team. The development manager would usually act as a technical mentor and assign a task to a development team. Historically though a development manager would have been in charge of reporting the status of the development team.
In an Agile environment there is a 10 minute daily stand-up meeting for the whole team to discuss what they did, what will be doing and any road blocks that they may have encountered. This meeting would be facilitated by the project manager or it might be facilitated by a development manager. These types of decisions should have to be worked out with a manager prior to deploying Agile.
Working with stakeholders
Another group that is vital to your project’s success is the stakeholders. Stakeholders are those who have interest or are influencing the project. A typical stakeholder includes senior management and indirect customers like a support team, maintenance team, help desk or third parties that are integrated with the system and other related product group within the company.
In effect, stakeholders are just another type of customer. They have their own set of needs that they want to be addressed by the project. In ensuring a successful delivery of your project you would have to integrate their requirements into a unified design.
All soft skills mentioned above would be useful when working with stakeholders. The stakeholder might not be the main customer of the project but you would want them to feel valued to. You would want to demonstrate a good listening skill and be sure that they know that you understand their needs. You would also have to demonstrate diplomacy and ensure not to upset them. For example, you wouldn’t want to demonstrate a good listening skill and then immediately tell them that another stakeholder does not support their needs.
Demonstrating the values
The most important role of an Agile manager is in exemplifying the Agile principles and live them day-to-day. If you want a team to follow you, you have to provide a strong example. There are a number of principles to emulate and follow. Here are the ones that would provide the most impact:
- Enough planning
In a traditional project management, you identify certain features and specify their requirement. Typically an analyst wants to answer all questions possible in the specifications so a development process wouldn’t be impeded by a missing requirement.
In Agile planning you want to plan just enough. Just enough planning in determining the features that you want to build. Just enough coding to demonstrate a feature to the customer and verify that you are on track.
This is one of the hardest habits to break with a traditional team and an Agile manger has to champion this mentality on a daily basis. A manager could also emulate this behavior by creating a project plan the same way. A plan that has just enough information to get to the next level of a project, not a complete work breakdown structure before development starts.
- Always ready to stop, drop and deliver
Agile development is performed in an iteration to enhance urgency and to support an early delivery of a most valuable functionality. A project manager needs to infuse this mentality into a project team.
A project manager gets a team to put the same urgency around an iteration as they do with a project development deadline.
Urgent pursuit of a customer value
An agile manager would always think about a customer and their needs. All other measurements of a project would be meaningless if a product is delivered to no use of a customer. There are 3 steps to ensure that a customer’s needs are being addressed:
- Clearly defining the customer. A lot of projects get underway with a light understanding of who their customer is. So be sure that your customers are clearly defined and their specific needs are clear.
- Developing a relationship with a customer. Get to know them well and integrate them into a project team. Using soft skills to collaborate with a customer frequently and make sure that they could be easily accessed by a team.
- Being an advocate for the customer at all times. When a feature is being discussed and a customer is not present, put a customer hat on and envision what their response would be to a discussion. Share those thoughts with the team.
Ensuring a technical excellence
A technical skill set of an Agile manager would vary. A manager could come from a classic PMI background, be a former developer or has worked as a business analyst in the past. Regardless of their technical knowledge all Agile managers could push a team to pursue a technical process that embeds Agile beliefs. Here are some of the best practices in obtaining technical excellence:
- Creating a process for a continuous code integration. As a functionality is completed, a developer would integrate their work into an existing code base. The key is to integrate a small piece of functionality is completed as opposed to waiting for a complete feature. This practice would identify a code issue earlier and minimize a complexity of tracing down an issue.
- Automating testing whenever it is possible. Work with the team in automating testing whenever possible. This is usually easy in regression testing. You could also automate a daily smoke test to speed up testing.
- Performing a daily build/smoke test. Related to an automated testing, a daily build would also help mitigate the risk by identifying a code issue earlier. A daily test would focus on ensuring a critical piece of an application is still functional.
- Considering scalability. As an application would be developed the team must consider future growth. What would happen if the application becomes extremely popular and usage would exceed expected volumes? The team could consider scalability as they would design and ensure the design could be scaled easily as needed.
A great collaborator, communicator and relationship builder
Agile is as much of a team culture as it is a software development methodology. It is a culture of frequent meetings and daily decisions.
A correct behavior starts by checking your ego at the door when you walk into the office. There would be an intense discussion in an Agile environment and a process would break down if you would take criticism of your ideas as a criticism on yourself. Demonstrate it to the team by not getting upset during a subject discussion that you are passionate about. Sharing your thoughts with a passion but expecting and embracing criticisms of your ideas. The team would adopt this behavior if you would consistently model it.
Another key behavior is how to interact with a person outside of a direct project team. These groups could be a vendor, stakeholder, other departments or oftentimes customers. If you’ll show respect in your interactions with these groups the team will too.
It is very natural to talk poorly about others outside the team. “That stupid department we work with that does not do Agile,” “that idiot vendor whose system always gets down”. You would always have this at a certain level in your work. The goal is not letting it get out of hand, where it exceeds venting and proceeds into a truly poor relationship.
Leading the team to ownership
In the 1998 Arthur Andersen published a book named “Best Practices, Building Your Business with Customer Focused Solutions”. One of the best practices outlined in the book was the ABO Continuum. The continuum identified a vital element in introducing change to a company, ensuring ownership of such change.
The continuum promotes the belief that a company change would go through three steps: awareness, buy-in and ultimately ownership.
In an awareness phase information about a change would be shared early and informally. For example, during a team meeting a manager could say “an executive is discussing the improvement of our development process”.
Do you need a project management tool for your Agile Team? Scrum||Boards have just the tool to help your Agile Team with their Agile Methodology.