Webinar with Craig Gosselin, Chief Business Officer at AndPlus
Choosing a software development partner isn’t rocket science, but it does take considerable time and effort. A healthy investment in researching and choosing the right software development shop will likely pay dividends in a higher quality end product, better solution adoption rate, and a more satisfying end-user experience.
So, let’s take a look at steps that will help to ensure a thorough and effective evaluation process.
Getting Started: Prepare
Completing any effort of value involves properly preparing. The old adage, “Failing to prepare, is preparing to fail” is especially true in the process of selecting a software development partner. Here are some important preparation considerations that will dramatically increase the effectiveness of your selection process along with the success of your digital product development.
Define your business problem
Before doing research into any partner, it is vitally important is to make sure you understand and define the business problem you’re trying to solve. In short, this stage is about preparing a solid business case. This seems obvious, but experience indicate this step is often overlooked.
Whether you have an idea for a mobile app that will make life easier for users (and perhaps make money in the process), or you have an internal business process that needs automating, you need to define what you want to achieve—then draw boundaries around it, because the temptation to extend the solution to a neighboring problem space will be hard to resist.
ID the End-user Experience
With the business problem defined, it is extremely important to identify what the desired end-user’s experience is and what functionality is required to support the basic user experience. This understanding will not only expedite the selection process but also enable you to more carefully align your vendor selection criteria to your potential development partners.
After defining of the problem and the desired user experience, you may find that the application you have in mind is a solution in search of a problem, or the business problem may not be best solved with a software application. In any case, the suggested preparation work is designed to determine this BEFORE going further in the software partner selection process.
Identify The Software Development Partner Capabilities You Need
With a clearer understanding of the problem its desired outcome, it is prudent to define your development needs and how these might align with your software development partner. For example, will you require front-end developers, backend developers, project manager(s), designers, QA testers, business analysts,… or more?
Acquire a Basic Development Knowledge
If you’re unfamiliar with the process of software development, you would be wise to do some preliminary research and self-education. The conversations you will have with potential partners will undoubtedly involve software development terms and process discussions. Having a basic understanding of these will allow you to focus on the differences and nuances that potential development partners present, rather than learning about the concepts during your conversations with prospective partners.
Topics and terms worthy of research might include:
While this might seem like a significant task, you don’t need to go into extensive detail or become an expert in software engineering. A little knowledge will make the conversations with candidate shops much more productive, and you will feel more confident in the information offered by the potential partners you speak with.
Starting Your Partner Search
With a clearer understanding of the solution requirements, your development needs, and the terminology and process around software development, you are ready to begin identifying potential development partner organizations.
Performing an Effective Web Search
You likely ended up here from a (seemingly effective) Google search. With a clearer understanding of the solution requirements, your development needs, and the terminology and process around software development, you are ready to begin identifying potential development partner organizations.
An often-overlooked search capability that might help narrow your initial web search is the use of Google’s advanced search capability which enables search criteria such as: words, phrases, Number, Languages, regions. You can execute a detailed search here: https://www.google.com/advanced_search
Don’t forget your contact list. Speaking with colleagues in related positions, industries, associations, professional groups, and more, is often a productive way of assembling a list of development partners to consider, or in some cases avoid!
3rd Party References
Another tactic that can help identify development partners worthy of consideration is the use of web-based third-party reference sources. This might include technology analyst reports, provider rating reports or online satisfaction ratings.
One such platform can be found at www.clutch.co which provides ratings and reviews of leading IT, marketing, and business services companies. Here you can quickly identify the organization’s focus, their technology capabilities, and the industries they have experience with. You can see case studies of the work the organization has performed and the clients that the work was done for. Consider how these case studies align to your project size, industry, technology, company culture, and project complexity – to name a few.
Interviewing Development Partner Candidates
Now it’s time to begin discussions with your list contenders. This step will consist of both parties asking questions of the other and this will likely be an interactive and dynamic process.
Start by Building a Comparison Matrix
At this stage of the process it is especially important to use a comparison matrix to record details about the vendors that you have chosen to learn more about. A comparison matrix will:
- Help you determine the questions and information that is most important in your vendor evaluation
- Provide an organized format to record information gathered is recorded and aligned with the corresponding vendor
- Help to ensure that the Information collected about the vendors will be consistent across all vendors – enabling effective comparisons at a later date
- Facilitate easy comparisons between vendors based on criteria that is most important to your unique needs
- Support more complex comparison scoring or weighting approaches to your vendor comparison – if you choose to add this level of comparison
- Establish a written record that can be shared or reviewed by others during or after the comparison stage of the selection process
Question Categories to Explore
While the number of questions that may be asked is extensive and there are countless variations possible due to your unique requirements, we’ve identified several areas for questioning that are likely to initiate in-depth discussions while providing you with valuable insight about your potential software development partner:
“What’s your preferred methodology?” While there are multiple possible responses (such as Kanban, Waterfall, Agile), almost all software shops will say “Agile.” Assuming the response is Agile, be sure to explore if there is something special about their approach to Agile software development - some “special sauce” that makes their flavor of agile better than their competitors’? Initial dialog may be more effective if conducted via a phone conversation, but its highly recommended to meet in person before making a final vendor selection. Ultimately, this questioning may reveal nuances that differentiate their experience and use of best practices with their development process.
At the very least, this question will identify the components of the Agile process that the vendor feels are critical to a successful outcome and it will initiate discussion about their execution of the Agile methodology.
Ask the prospective partner, “What technology stack do you use?” This is really a trick question: If they have a ready answer, their preferred technology stack is probably the one with which they’re most comfortable. Be sure to look for candidates with expertise in numerous technologies and a willingness to understand your problem before they recommend a technology to develop a solution. This will help to ensure a technology fit with your individual needs. If the “technology stack” answer comes before the partner has a detailed understanding of your needs – be sure to ask why this happened.
On the other hand, be sure to ask what technologies they have worked with in the past or regularly use and are proficient with. This will provide insight into the depth and breadth of technologies that are in their “working portfolio.”
Onshore and Offshore Software Development
“Where are your resources located?” Use of offshore developers might reduce the hourly rate, but offshore development can lead to communication problems or even introduce political, economic instability. Other off-shore issues might include language- or time zone-related confusion and logistical challenges.
Offshore work may seem like a cost-effective solution to many prospective buyers however, if your business faces compliance or regulatory issues (as most do) offshore development may be at odds with these regulations. For example, if your organization requires HIPAA compliance, FDA approvals, or it deals with sensitive user data, it’s likely best to use an onshore and in-house team that has awareness of the security measures and experience needed to ensure your regulatory compliance. Also, be sure that you have a balanced perspective of price and understand the components of the cost before making a decision.
Use of Software Development Contractors
Don’t forget to ask if the provider utilizes contract workers, or if they will utilize only dedicated full-time company employees. This question may reveal information about the development team’s familiarity in working together, their communications, and the creative “magic” that occurs with teams that have worked closely together for extended periods of time. The use of contractors may also present security and compliance issues that need to be addressed. In any case, the question is worthy of asking and understanding as part of a comprehensive evaluation process.
Software Testing Process
Proper software testing is an important step to producing high-quality software.
Ask the question, “What is your testing process?” It’s a huge red flag if the developers do their own testing. The best shops will have dedicated QA testers to ensure the quality of the end product. Ask questions about how and when manual and automated testing is utilized. For example, simple applications may not require automated testing and automated testing has little use in testing application look and feel.
The fact is, testing considerations are an important and complex subject and one that should be covered in the interviewing process. You can gain additional insight about software testing in the following blog post.
Software Product Lifecycle Strategy
“What is your overall software lifecycle strategy?” The first release of your software should not be the last; that is, version 1.0 should be the foundation on which future versions are built.
If the candidate talks about minimum viable product (MVP) for the first release, keep listening. If the candidate wants the first version to have everything you could possibly want, it’s likely that the project will, in short order, be over-budget, behind schedule and at risk.
Business Culture & Communications Style
“What role do we (client) play in your process?” This is important. The best shops will want to involve you every step of the way. If they don’t want to talk to you until it’s time for a demo of the final product, run—don’t walk—the other way. Frequent interaction between the client and the development partner ensures that both parties are in sync and mitigates the potential for surprises – which no one appreciates. Clear communication and complete visibility throughout all stages of the development process also facilitates better outcomes and avoids unnecessary development delays and resulting cost impacts.
Because effective communications is a critical component to project success, be sure to consider the culture of the organization. Remember that these topics and questions are a good starting point for your discussions. Try to identify questions that are relevant to your concerns and business priorities.
Software Development Price, Payment, and Legal
While we all want to get to the bottom line and establish a price for a potential project, don’t lose sight of the more important discussion about the process utilized to arrive at a price.
Take the time to ask about the process that precedes the development of a project cost. You have a thorough understanding of how the development partners price is arrived at. Ask questions about how estimates are created and what variables might affect price. Often, initial cost estimates are described as a “low-high” cost range. Be sure you have a clear understanding of the factors that affect this range.
At the same time recognize that there are many variables that may arise in lifecycle of a solution development. Be sure to understand how development progress reports relate to the projected project costs and how each phase of the project relates to the overall projected cost. As mentioned before, communications regarding costs is vital to success and no one wants mid-project cost surprises.
Lastly, understand the expected payment cycle proposed and ensure that these terms meet your organizations ability to may payment. Having a clear understanding of the costs and payment cycle will go a long way to keeping the relation positive for both parties.
Interested in learning more? AndPlus — literally — wrote the book on this!