Author: Marina Johnson, CEO and CIO, MOST Programming, Inc.
Agile Development has been around for some time, since 2001, and many organizations have been using agile principles to deliver working software for many years. As a company with a dispersed global team, we found that Agile Values and Principles are key to running our business better and to create greater value for the customer. Agile Values and Principles set the overall culture and are the glue that strategically and tactically binds our globally dispersed team together. Here are some highlighted principles we think companies can focus on to create greater value for their employees, their business and their customers.
It starts with Happy Teams. Create a great environment for each individual and for each team. Clear, transparent communications are a foundation for this success. Happy teams focus on collaboration and interaction with the customer.
When teams are happy and collaborating, there is full understanding of outcomes and this fosters continuous innovation. Continuous innovation is crucial in producing incremental working software that can be continuously evaluated and adapted to changing needs. Which leads us to…
Resiliency. One of the most important Agile Values is being resilient and the ability to respond to change. Companies should be thinking about how they can look at things differently. How can they respond to change quickly and effectively? How can you always innovate? The ongoing response to change, adding requirements over the development period, continuously creates value for your project.
What makes change smooth and effective is face-to-face communication focused on short iterations. The goal is for continuous feedback. This enables the ability to add valuable requests and eliminate those that are wasteful or not meaningful.
For us, this face-to-face communication is critical; we become personal through video conferencing. Whatever collaborating software you use, whether it is video, Slack, Skype or some combination thereof, this helps to maintain a relationship with your whole team and enable those programmers to feel comfortable with asking questions.
Part of this the face-to-face communication includes ensuring continuous communication and feedback from the customer. You want to always get feedback from the customer so you can ensure that you understand their business. Combine this with feedback from the development team, periodically linking the customer and development teams to ensure the greatest feedback. Clear and often communication keeps things simple.
Another critical Agile Principle is building projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. Focus on hiring people and teams who are motivated and love what they do – they love development, love coding and love challenges. That makes it easier to build relationships and trust. You must develop the relationship with the individual so you understand where that person is coming from. To build trust, you also must be transparent. Share with developers your pipeline, what potential projects and customers you have, and what your plans are. It helps them understand you and their business. They will share their concerns with you, and you should always listen to them.
A lot of people always say in business that the “customer is always right.” Well, we really believe that the employee is always right. We put employees first by creating a great environment for them, always trusting them, and having their back. In turn, this translates to our employees always doing an excellent job for the customer. We ensure that we give them credit and don’t hide them in the background. They love that.
Here is a great example of why, in the end, the customer will benefit from this extraordinary level of trust in employees. We had a situation recently where I was talking to a customer about their BI portal. The client wanted to use data only for a portion of the year. I asked our developer if he could jump on the call. It was 5 am his time and he was still working. He suggested that what they were thinking of doing might mislead their end-users and make the data less credible. Our customer was so impressed and thankful for that suggestion because they hadn’t thought of that! Our developers understand that we will always do the best for them, and they will in turn always do the best for the customer. Everyone wins.
That trust leads to the principle of allowing self-organizing teams – You want your teams to be self-tuned to become more effective as they work. They must collaborate as a team, by innovating and self-tuning. We don’t want someone in Denver micromanaging. They need to become self-reliant and self-organizing to become more effective. The best architectures, requirements and designs emerge from self-organizing teams. Having teams that know how to do this works extremely well, particularly when they are dispersed.
Lastly, continuous attention to technical excellence and good design enhances agility. We have a global group of experienced and highly skilled developers, but technology is continually evolving. It is important to create an environment of continuous learning. We work very hard to take time to support our developers in the learning of new applications and languages. It is important to stay current and ahead of the curve.
We have found that Agile Values and Principles build a sustainable culture that binds our teams together. The result is a passion for customer satisfaction and a passion for always creating greater value for our customer’s business through technology and software development. You might already exemplify some Agile Values and Principles, but push your team to embrace all of them in harmony.