I’ve had the ability to lead some pretty good development teams in my career. Some of the most important lessons about leadership are learned in times of struggle as opposed to prosperity. Some of these ideals seem like common sense, but in the day to day management of a digital agency, they can get lost.
To build a team, you have to know your team.
Know your teams capabilities and limitations. Identify aptitude early on. Many times in my career I have seen that if you push developers the right way, the talent they possess will emerge. Development teams are defined by interactions among each other. A team can either be dragged down by poor standards and work ethic or it can be pushed up by the opposite. Every team has champions for success, those people should be placed in positions to infect others.
I like to group development teams up with a primary developer and one or two support members. This engages developers in conversation about development, promotes transfer of knowledge and increases team culture within the group. Developers should never be left on an island. Isolation produces substandard work and does not push team members to grow and develop.
Know what you know and what you do not.
Don’t pretend that you know everything. Chances are, you are working with people much brighter than yourself (in specific areas). I know that I learn something everyday from my guys. Their passion for learning is only as strong as the time we give them to learn. Absorb. If you don’t know some of the newest cutting edge stuff, it is ok. Embrace that fact and it will serve you well.
Under promise and over deliver. Period. No exceptions.
Resourcing can be a nightmare. Every development agency goes through expand and contract phases and resourcing is a pain point. The only way I have found to combat this is to identify what deliverable would be sufficient for success. Taking that success and building another, and then another. What this does is allow you to work within your pipeline and establish an ongoing long term relationship with the client. There is nothing better than a string of successful deliverables.
Removing inexperienced developers from the expectation conversation is an important part of this process. Identify certain developers that can set the correct expectation and they can assist in the process.
Don’t dictate solutions. Be a mentor.
Being a leader does not mean that you tell people what to do. Allow developers to make decisions and support them. It is more important to teach your team about when not to do something. If you allow them to be creative and make decisions you might be surprised. They will find things they are passionate about. Ask them their thoughts, only then will you truly know how they think and how you can help them to become better. I know that when I lead a team, I learn as much from them as they do from me. Engaging your team regularly has a huge upside to culture and loyalty.
When it is all said and done you are still accountable so know when and how to push back.
Be prepared to roll up your sleeves.
If you cannot do it and do it well, you cannot expect others to respect your position. Development teams have to know that the person that is leading them understands what they are building. Early and often, take every opportunity to remind your team that you know what you are talking about. Show them you are willing to do it and they will support your decisions and follow you into battle.
Do not say anything is “simple”, unless you are prepared to do the work yourself. It is quite possibly the worst thing you can say to a developer. I have been guilty of this on occasion and know that it tells a developer that you do not value the work they are doing. It goes back to rolling up your sleeves. If you think it is simple, then you should just do it yourself.
Own every decision you make.
If you make a bad decision, it is ok. Take accountability for it and adjust. Learn from the mistake, educate those around you and do not make the same mistake again. That is the textbook definition of experience. The ability to lead has it’s roots in having “been there”. If you are accountable for all your decisions, it sets the example for your team members to do the same. It is a cliche but it is true, “Lead by example”.
Calculated risks are mitigated by experience.
I am known as a risk taker. This is a misconception. I am just simply not afraid to do things that most people would not. People are afraid to step out of usual process but it is necessary to move ahead. I am not a fan of the status quo and choose to move forward at every opportunity. As you gain experience, every “risk” you take should be vetted against that and against the experience of your team.
Accountability is necessary for success.
It isn’t popular, but accountability is a necessary component for a successful digital agency. There are a number of ways to force accountability (I will do a separate post on accountability soon). The expectations should be set early and often at all levels (account and development) so teams know what is expected of them. Accountability is directly related to reliability. Know that what you promise affects everyone in your process stream. Be accountable for your work and hold others accountable for theirs. Only together will you achieve maximum efficiency and profitability.
Remove technical debt at every opportunity.
Technical debt is building code/hardware that will never be reused and is more expensive to maintain than profit can support. If you have legacy code that is hard or expensive to maintain, take every opportunity to get rid of it whenever possible. More importantly, no deliverables in production should ever add to technical debt. A successful team is a lean team. You should strive for 50% profit margin across the board (minimum). Anything less should be audited for efficiency and process.
Success doesn’t happen overnight. Um, yes it can.
Status Quo can be changed immediately by injecting new processes and variables into the development cycle. You should always provide some type of change on a regular basis. This promotes creativity, culture and prevents complacency in the workplace. This statement is an excuse to maintain the status quo for fear of negative results. If something is broken, it must be fixed. Take it one step at a time but expect and enact change. A digital team should always be evolving and changing with the market, identifying new opportunities and also conceding when an offering becomes a commodity. You should ALWAYS know when to outsource.
If you can know and define your team, establish standards, promote culture and be accountable, you are going to be a force in the digital agency. Be methodical, back up arguments with facts and generate excitement and buzz with unorthodox leadership style. These are the ingredients to building and maintaining a successful digital agency development team.