Choosing the Right Software Partner, Part 2: Evaluating for Great People

Engaging with a service firm isn’t like buying a product. It’s about hiring a set of people to do work on your behalf. Yes, the company as a whole matters, but you also need to be confident that the people there have the right set of skills for your project.

This is the second post in a four-part series aimed at helping you select the best software development partner. The series covers each of the characteristics you should look for in potential partners:

  1. Longevity
  2. Great people
  3. Experience
  4. Engagement management process

In this post, I’ll focus on great people.

Below, I’ve outlined the questions I would ask when evaluating a firm’s people, and I’ve included my experienced perspective on answers I’d like to hear. The goal is to help you evaluate potential partners at a foundational level and focus on what’s really important in this first stage.

Defining “Great People”

I would look for two big things:

  • Generalist product developers – I want to work with people who specialize in software product development and who take a generalist approach to technology. This is not the same as specializing in a certain software language/tool/technology. Being flexible across technologies means my partner’s team can use the best tools to help me meet my goals.
  • Engaged, experienced consultants – Custom software projects are filled with tradeoffs and value decisions. I want to work with people who care about helping me find smart answers–people who are capable of meeting product development challenges and guiding me through the project.

Asking the Right Questions

There is a wide range of talent in the technology industry. However, talent is difficult to measure, especially when you want to hire a team that is capable of working in many technologies. To learn more about my potential partner’s people, I’d ask seven questions.

1. Please describe a project that falls into your company’s sweet spot. For such a project, describe the team members and expertise they bring. Are team members selected based on the technology used in a project?

I like the open-ended nature of this question because it lets my potential partner highlight what they do best. I can then determine if my needs match their skills.

I want to hear that my potential partner mostly engages in custom software product development projects. This type of partner is different from a firm that mostly focuses on large e-commerce or marketing websites and occasionally takes on custom product development projects.

I want to hear that the team is composed of developers, designers, testers, and someone managing the product development effort (Atomic calls this person a Delivery Lead). That management role is something I’m particularly interested in understanding. I want a team member with product development expertise who can help guide me through the constant series of options and tradeoffs that come with software product development projects.

I want to hear indicators that the developers are software generalists and full stack developers. This means they can write code from the user interface layer all the way down the database layer and backend services. I want developers that can work across different technology stacks like mobile and web.

I believe smart generalists are more valuable than specialists when it comes to most software development projects. A generalist can better design, and work across, an entire software system or application. A generalist will seek to create a well-designed architecture instead of making their area of the codebase simple only to push complexity into another area where someone else is responsible.

It’s a red flag for me to hear I’m getting a team of specialists including a blend of specialized mobile, web, front-end, and back-end developers.

It’s also a flag for my potential partner to recommend a specific technology based on their company’s relationship with a platform provider or focused professional training of their team. I want my potential partner to pick the best technology for my product needs.

Overall, my questions are a bit of a ruse, as they seem to indicate that I want team members who specialize in a narrow set of technologies. In reality, I’m looking for reassurance that my potential partner will staff my project with technology generalists who have a blend of career experience levels. Such a response helps me understand that my potential partner shares my belief in the value of software generalists.

2. What percentages of your overall headcount are employees and subcontractors?

I like to know if a company is weighted toward employees or subcontractors. I believe it makes a strong statement of the company’s and employees’ long-term commitment when the subcontractor headcount is low.

Companies can grow a culture and hone their process when they have long-term employees. An employee-based team can be more engaged and have higher professional standards when they share goals and a culture.

An employee-based team is an indicator that the company doesn’t quickly staff up with subcontractors to take advantage of a project opportunity. A willingness to staff my team with employees also says they have confidence in my project’s success, since directing employees to focus on my project may mean turning away other opportunities.

3. What’s your process and criteria for hiring employees and/or subcontractors?

I like to know that my potential partner has an established method for this task. A lack of hiring process or standards represents a risk of hiring-under qualified people. It also indicates that the company’s management team may not take quality or risk management seriously enough.

I’m suspicious about a heavy use of subcontractors, and this question allows me to see how a company mitigates the risk of hiring an under-qualified person (if they do use subcontractors).

I’m interested to know about the employee hiring process and criteria because it demonstrates the baseline of qualifications for someone to start working at the company. For instance, is the company hiring people directly out of coding academies, or do they prefer hiring individuals with industry experience or college degrees?

Does the hiring process focus on behavioral and emotional intelligence skills in addition to vocational skills? I want to see evidence that my potential partner is hiring qualified software generalists with experience in software product development.

I also like to know who’s involved in the hiring process and how decisions are made. Are employees hired based on the judgement of a single manager, or are there many team members involved in the process? I believe hiring decisions are better (and on-boarding new employees is more successful) when a broad cross-section of the existing employee team is involved in the decision.

4. How does the experience on your team break down? How many people have less than two years, two to five years, five to ten years, or over ten years of experience?

Due to the ongoing mix of active and inbound projects, scheduling and committing teams to projects can be dynamic. It’s silly of me to ask for a guarantee on specific people, especially if we are early in evaluation or proposal phases of developing our relationship.

What I really want to know is that I’ll have the right blend of experience levels on my team. When I see that the company has a good range of experience levels, it indicates that my project will likely get staffed with the right blend.

I like seeing junior team members in the mix because they are hungry to learn and have lots of energy to pour into their new careers. The junior team members can stay focused on hammering out features. Seeing mid-level and senior team members tells me the team has the experience and wisdom to navigate complex product development projects and make proper technology, systems architecture, and application architecture decisions. Seeing a blend of junior and senior team members is an indicator of an engaged team that’s actively participating in teaching and learning.

5. Tell me a story or two about why you have let someone go from your company.

I like to hear stories about this because it tells me that the company has standards for what it means to stay on the team.

It’s not uncommon for management teams to live with bad team players or under-qualified people because they don’t want to engage in difficult conversations about performance. Companies also allow poor performers to stick around because they would rather deal with the “devil they know” than expend the effort to let someone go, experience a temporary capacity deficit, and do the work to hire someone new.

However, keeping poor performers around is toxic. The team suffers in silence, and everyone waits for management to take action. Top performers eventually leave because poor performance is implicitly deemed acceptable, and they would rather work with other top performers.

This is not a situation I want with a potential partner. I want to know that the company will do what it takes to show that poor engagement isn’t acceptable, fixing hiring mistakes when necessary.

Hearing how someone was let go also tells me about the company’s culture. I want to hear that employment transitions are done with compassion and a desire to truly help an employee find their best fit.

6. How do your people engage in professional development? How do you support your people’s professional and career development?

Continuous professional development is an indicator of engagement and ongoing maintenance of professional qualifications. Technology moves quickly, and I want a partner that keeps up with industry trends and capabilities.

I want to work with people who are curious, love to learn, and keep their skills sharp to remain competitive. I want to work with a company that has expectations and supports (through cash, time, or both) continued professional and career development.

I want to hear that professional development is spread across a variety of domains like technology, design, business, consulting, and product development, and that it also has a wide focus. It’s a flag to me if my potential partner believes that getting everyone certified by Microsoft or Amazon is the complete answer to professional development (although it can certainly be part of the answer).

7. How do you know if your people are engaged? Are you using any tools or techniques to measure engagement?

I believe engaged people are more innovative and productive and will care about my success. It shows a certain level of sophistication for a company to care about, and measure, employee engagement.

I also want to hear if my potential partner is using any tools or techniques to measure the engagement, cultural health, happiness, etc. of is employees.

Choosing the Right Software Development Partner

This is the second post in a series on choosing a software partner. In the next post, we will be taking a look at how to evaluate a company’s experience.

  1. Longevity
  2. Great people
  3. Experience
  4. Engagement management process

Questions? Disagreements? Please leave a comment below.