Do’s and Don’ts of Software Product Development
As software companies strive to meet the growing demands of their markets, they often face the challenge of scaling their delivery teams. Evaluating the ratio of full-time employees (FTEs) to contractors, identifying required skill sets, and determining the type of contractors to complement the team are crucial decisions. In this article, drawing on my 30+ years of experience in Silicon Valley, I will review these questions and provide insights on hiring software consultants.
During my tenure, I spent time as an FTE SW developer, IT leader, independent consultant, and a leader of teams at a wide range of companies from Apple to Ross Stores to emerging startups. The consulting industry exists to fill the gap of FTE’s either long term or short term and it allows firms to manage cyclical demand without the burden of career path concerns and the overhead costs of employees. This dynamic exists in SW more so than any other industry.
For an organization, the desired consulting resources depend on the depth and breadth of talent at a company and the impending deadlines for the desired feature set. Consultants can meet cyclical demands and require less HR and company overhead, so companies regularly involve consultants as part of a product development team. In this “Do’s and Don’ts” article, I will review these topics and provide insights on hiring software consultants.
- Assessing Team Strengths: Be clear on the strengths of your existing team. Do you have a good architect, but lack devs? Do you have devs, but too many use cases for them to be effective because they spend too much time on QA? Being clear about your requirements and creating specific job descriptions will help in finding the right consultants.
- Core Competencies of Consulting Firms: Find a firm that has a range of expertise on hand. This is key so that if you say need a dev, the company can also offer a site reliability engineer in a pinch to add pipelines efficiently. Maybe you need QA part time, and that firm should have a separate department that provides QA services. Your consulting partner should have all disciplines of SW development in their repertoire.
- Try and Buy Contracts: Ensure that the contract allows for a trial period. You should be able to release the contractor within five business days if they are not a fit. This provides flexibility and minimizes risks associated with hiring consultants who may not meet expectations.
- Contractor Oversight and Support: Ensure that the contractor has oversight from the organizational leaders of the SW consulting firm. Hiring mercenaries from job shops will place too much risk on your team and the success rate is often less than desired. Choose a contractor backed by a reputable organization that can provide technical oversight, guidance, and additional assistance when needed.
- Communication Skills and Team Integration: The greater the skills and experience needed from a dev, the greater should be their communication skills. If you are hiring a firm for a project, be sure the Project Managers, Business Analysts, and Architects have clear verbal and written communication skills. On a larger team, the individual devs or QA engineers may not have these advanced skills, but your direct contacts must be able to communicate effectively and clearly.
- Independent Work and Technical Oversight: For individual contract hires, ensure that they have the ability to work independently and again that they have the technical oversight from leaders in their company.
- Account Management and Continuous Improvement: Ensure you have an Account Manager from your consulting firm that can review and discuss continuous improvement opportunities on a periodic basis and one that, through their experiences, can add value to your organization. Their experiences and insights can contribute to enhancing the software development process.
- Geographic Considerations: Consider widening the geography net when selecting consulting firms. This allows access to talent in different time zones, accelerating development and overcoming time zone limitations. Opting for “the right talent in the right time zone” can increase your time to market and value.
- Scalability and Resource Availability: Choose a firm that can quickly provide additional resources when needed or replace a contractor who may not be meeting expectations. Flexibility and scalability are crucial to adapting to changing product demands.
- Avoid solely on staff aug/body shop companies to find talent. Staff Aug’ers is a term used for these mercenaries who are presented to you but may not have undergone proper technological screening or have access to technical oversight.
- Staff augmentation contractors may have a higher rate of attrition because they tend to job shop and make swift changes, leaving you without the resource you trained and need.
- The staff aug contractors lack an internal support organization that adds oversight, value, review, and adherence to methodologies.
- These one-off contractors may not bring best practices or the benefit of market expertise to your product engineering team.
- Your product engineering team may require skills in other disciplines such as UI/UX, QA, performance, infrastructure, architecture, etc. Using a staff aug firm won’t help with these cyclical demands, however a fully-fledged development organization can cycle in these talents in short spurts to meet your needs in a timely manner.
- Product ownership is often difficult to outsource as the contractor may not have the market expertise nor influence within the company to study, review, and author the prioritized product features and roadmap.
To meet the growing needs of software companies, finding the right SW consultants is crucial. Understanding team strengths, selecting firms with core competencies that support all aspects of the development lifecycle, and considering oversight and scalability are essential factors to consider. Choose a firm with global capabilities, preferably in multiple time zones. By following these guidelines, companies can leverage consultants to enhance their software development capabilities and drive success.