The world wide web is the most important global platform in our age. Digital disruption is everywhere regardless of the industry. It is happening in communication, entertainment, transportation, education, agriculture, healthcare to just name a few. Therefore a good business strategy must include a well thought digital strategy. Whether your business sells PAAS or SAAS you must have a way of building, running and scaling your product. There are many ways of dealing with software development from resourcing and structuring perspective: world wide distributed teams to outscoring the whole or keeping it partially or entirely in house. In this article I am intended to discuss the latter case.
When you keep your development in house the goal is to build and scale high performing engineering teams those not only cover its cost but bring value and eventually revenue in to the business one way or another – think of a business that uses digital as part of the overall strategy like a bank that has a bespoke online banking platform or as a second example think of Uber that can not be exist without its digital platform as that is its core.
Problems in crafting softwares most often can be caught in either lack of quality, lack of essential communication or in a less lucky case even in both. The answer can be this: Creating a high performing engineering team that balances out quality and delivery.
How to build and scale high performing engineering teams? Is there a model of some sort that we can apply? Within this article I would like to show one model that has no secrets or any unknown or untold elements. Yet I believe this is an art and there is no recipe. It is an art – probably easier to write about it then to evaluate it. Since I am writing from my experience I am sure it is possible.
Foremost I am going to be slightly more technical in the wording from now on. I created a list of the most important things to have and to actively practice.
- Test driven development
- Collaboration and pairing
- Continuous integration and delivery
- Communication and ceremonies
In this part I attempt to discuss the very first point: The engineering lead. The right person can create the right engineering culture. Provides great help with operations from selection and recruitment to mentoring, educating individuals and also participates the evaluation of your digital strategy. This person is key to your success so let’s have a closer look of the most important skills to meet.
First and foremost the servant leader is not powerless at all, however, this type of leader uses its power to help others to grow. The servant leader is not the source of the power but a mediator. It has clear requirements and goals for every individual in the team. It helps to create a plan for the team members to overcome certain obstacles and grow to the next level whereas also helps other players to be great leaders through delegating part of his own duties to them. This type of engineering lead always stays close to the team and aware. How can one stay close to its team? Although the engineering lead has to wear many hats can sometimes fork in to actual work through pair programming and should always have time for regular and even occasional one to ones.
The leader who aware on both personal and technical level has its way using certain tools and techniques to measure the current progress, finding obstacles and spot issues early as possible. Sometimes this can be simple as asking around to see who aware of what is being done what is missing and what is left to be done? Also there are tools like JIRA and many other softwares to monitor and keep track of progress.
The right leader is always present and approachable – stays close to the “battlefield”. Also the right leader can communicate on different levels such as senior management, customer or even at stakeholder level.
Good sense of humour
The good sense of humour is very important. Being open, ready to admit any (even personal) failures and being able to laugh can help to create a great and transparent culture. On the flip side being late to be judgmental never making jokes of someone’s faults or personality/disability/disadvantage is crucial.
Understanding the root of a problem, helping the team to grow and earning some respect all requires strong knowledge. The leader of the team might not be the master of all topics, however, it can be a specialist on a certain subject e.g continuous delivery pipelines and can provide useful insight. Alternatively it can be a generalist who has certain methodology to learn and prototype fast to find the best possible way around a technical challenge – creating a good example and leading by an example. The person also has to speak the language of the team even if it is highly technical in some case.
Making a positive impact on the team and its members as well as with in the organization is the purpose and the ultimate goal. Helping the team to deliver and grow is a great achievement. Looking ahead and being a step ahead can also make a good impact on the long run. In the end of the day once everything has delegated and the team is up to speed with smooth delivery (it often can take even a year) then the next step is definitely looking ahead for the future challenges that the team might have to face and making preparations to stay in the competition in our digital age.
The good leader is open, knowledgeable, passionate, helpful, transparent and approachable but most importantly creates other leaders through mentorship and delegation.
To be continued.