Today’s software development and test teams are organic, powerful, and fast. In this environment, the risk of project failures increases, which makes leadership more important than ever. To reduce that risk, there are two specific types of leadership skills necessary. One is technical leadership. It consists of knowledge of the business plus translation of business requirements into a technical strategy that accommodates project, time and budget requirements. The second is project management skills to get over the finish line.
For companies that outsource software development, this becomes even more complicated. Whether those roles are played on the client side, the vendor’s side, or both, are a function of many factors and variables that change with each situation. Companies that outsource software development generally do so because they lack internal bandwidth or project-specific skill set, or they are trying to save money. But project failures reverse those potential advantages. Believe it or not, 25 to 50 percent of outsourced projects fail. This is where the right leadership—on both client and vendor sides—comes into play.
Over-staffing vs right staffing
When outsourcing, a project manager (PM) is sometimes considered a fluff layer of team structure, serving a role that a good technical lead should be able to play. Likewise, a technical lead is looked at as perhaps redundant to a good PM, scrum master or architect. In either case, a client doesn’t want to over-staff just to be safe.
The concern is not unfounded. That’s why it is important to understand which partner will play the necessary roles. Without this consideration, companies risk under-staffing, over-staffing, over-paying, and maybe most importantly, failing to get the project completed.
So whom do you need on your team to end up with success? The real answer is: It depends. Start by taking into consideration the strengths and weaknesses of your team and the roles that need to be played on the vendor side for leadership. It’s less about titles and more about your individual players.
Who should lead on the vendor side?
Project success requires technical vision plus scope and budget awareness. A competent outsource software development vendor will a provide technical lead who plays a myriad of roles and complement the client’s team. The TL identifies and manages technical risk, works closely with business people to create solutions, and works with the team to establish and work towards a technical vision.
The technical lead is creative, adaptive, inspiring, and empowering. When outsourcing in particular, the tech lead ensures that despite location differences, the vendor team can continue to make progress toward the goal. This requires a TL who is competent in code, able to empower a team in the right direction, remove impediments, and communicate on a business level as necessary among client stakeholders.
The project manager responsibilities are just as critical and quite different. Responsibilities are not code-focused and are time, scope, and budget oriented. The PM wants to get the project completed as stated and within time and budget. The project manager is more schedule, time, and cost-focused, and in some cases more tactical and rigid.
Depending upon the client and project, the TL may also get involved in project management, timing, scope, estimating, and communicating with the non-technical stakeholders about the project in an accessible way.
An example of the different priorities in practice:
Morning stand-up meeting (or perhaps weekly status report in case of project manager). Task completion is delayed:
The PM wants to know how this will affect budget, overall timeline, completion date for other tasks and final delivery to the client/stakeholders. “Hey Team: You said you’d have this by Friday. What’s up? When can you get this done? I need a new date. The delay will increase budget and we’re already in the red here. We need an answer that will allow us to recover the time we’ve already lost.”
The technical lead, on the other hand, is less focused on the delay itself and more on the reason for it, what it means for the project as a whole including all moving parts, and resolving it through use of best tools and methods. “Hey Team: Here’s some espresso. Move over so I can look at your code. What tool did you use for this? I think there’s a better one given the overall architecture—one that might improve the enterprise-wide functionality. Plus we can move from legacy to web-based faster. We may have to push some of the non-critical testing later to get past this hurdle. Are you going to drink that espresso? If not I will.”
It is difficult to find a technical lead who can speak business and provide project management services as well. In order to truly meet client needs and provide customized service, the technical lead needs to wear the hats dictated by the client and project at hand. A good vendor will find the caliber of talent that can be trained and mentored to this end. At the same time, the client has a critical role as well.
Who should lead on the client side?
Again, the real answer: It depends. In today’s flat and fast world of software development, where development and testing happen in smaller increments and continuous iterations, pivots need to happen fast to keep up with business needs. There is little time for translation between “English” and “Tech”.
What kind of technical and project management leadership does the client have internally? As the client, the most critical role is to assess their own capabilities. Clients need to ensure that between the client team and the vendor team the following skills are represented:
- Knowledge of the business
- A technical strategy that accommodates project, time and budget requirements
- Project management to a get over the finish line.
Outsourcing success looks bilingual and knows how to surf
Make sure to balance skill sets between the client and vendor teams so that representatives from both teams speak tech and business. This will reduce time and inspire both teams toward ownership and next level results.
As said best by software engineer Edward V. Berard, “Walking on water and developing software from a specification are easy if both are frozen.” In today’s agile environment, the water is neither frozen nor falling. It is everywhere! You need a good moon to control the tides! Enjoy the integration and iteration that great leadership delivers.
Yousef Awad graduated from San Diego State University with a Bachelor of Science degree in Information Systems and has 20+ years’ experience in the custom software development industry. He joined Integrant in 1997 after a successful career in programming, database administration and project management. He is responsible for establishing the company’s wholly owned development centers in Amman, Jordan and Cairo, Egypt. With over 130 full-time employees, Integrant specializes in providing custom software development, offering clients outsourced teams that allow IT departments to stay in control of their projects and expand their software development teams effortlessly. Beyond Integrant, Yousef’s passion is to bring an understanding of the power of programming to children and young adults. Yousef is working toward giving younger children access to coding classes that provide real-world, hands-on mentoring. For additional information, please visit www.integrant.com.