You’ve defined a business problem, but don’t know how to drive towards a solution. We’ve all been there. What’s the next step? Do you build it in-house or do you go to a trusted software development agency with all the resources you need at your fingertips? How do you write a requirements document to present to your potential software development partners? How do you even begin to find these partners? So many questions to answer in such little time.
This guide identifies a manageable process, presents considerations for an effective selection process, and it presents tools and resources to assist you in the process. We’ve got your back.
Basically, there are four options when it comes to building a software solution from the ground up. Three of these options are variations of the "do it yourself" route and the fourth option addresses outsourcing.
Utilize existing in-house development resources – Most organizations with development capabilities, rarely have idle development capacity and development projects are placed in a queue. In addition, utilizing in-house resources requires solution expertise in the technology required for the solution type.
Hire a full time, in-house development team. Typically, this means hiring talent for design, engineering, QA and project management. This option is difficult, time consuming, and requires highly experienced management resources to execute the project, not to mention the time that is required to assemble the right talent and form these individuals into an effective team.
Find short-term contractors that can get your work done on a small project-by-project basis. This is akin to becoming a contractor to build your own house. The task requires development experience, resource relationships, and a vast amount of management time. Again, the task of assembling effective teams is a critical consideration.
Outsource the project to a qualified agency with consultation, implementation and lifecycle support experience. We’ve written about this in our AndPlus blog pretty often and this option is usually the most effective option from a resource, time, and cost perspective. In addition, the quality of the solution can be optimized through the partner selection process.
After weighing your options, you probably ended up at option 4, and you were smart to do so! But why choose an external partner rather than build something in-house?
“With more respondents viewing service providers as key business enablers, service providers are becoming purveyors of innovation and enabling transformation rather than just providing a source of price arbitrage”
Deloitte Global Outsourcing Survey
Before determining the development option that best fits your needs here are some topics worthy of consideration:
Cost-effective Digital Product Development
The least costly solution may, at first, seem to be hiring an internal development team or hiring contractors for each of the development stages (design, development, testing, QA, UX, etc.). Unfortunately, hiring individuals and creating an effective team to create an effective solution, is usually not the most cost-effective solution route.
Few small to mid-sized companies are prepared to take on the responsibility or the costs of hiring project managers, designers, user experience professionals, engineers, QA staff, and other experts that are required to bring their vision to fruition. That’s why these companies benefit greatly from outsourcing simply as a cost-cutting effort.
Experienced and Effective Digital Solution Development Team
Creating exceptional digital products is more than just assembling a collection of individuals, it’s about how these individuals interact and collaborate to solve problems and anticipate needs to create a solution better than what was initially conceived.
Teams at development agencies often have deep and experienced technology skillsets, thought processes, and approaches to problem solving. That deep experience and teamwork often fuels solutions that create competitive differentiation and great user experiences. Don’t underestimate the impact that mature, tested and successful teams can have on your solution.
Wider Digital Solution Domain Experience
While many agencies specialize in a particular industry vertical or specific technology stack(s) some have an industry agnostic view of taking on projects supported by extensive technology expertise. This wider breadth of experience gives development teams an advantage in solving complex problems with code. Diversity in experience leads to creative approaches around potential roadblocks that nobody saw coming. The result is often digital products that deliver best of breed architectures and technologies.
Established Proven Digital Product Development Process
Nearly all development groups utilize a development methodology such as Kanban, Waterfall, Agile. But a cookie cutter approach to managing your project is rarely not the most efficient, or effective. Processes go beyond the development methodology and experienced digital solutions teams establish nuances to these processes that have benefits in the cost, speed, and quality of the development product.
A Disclaimer: Outsourcing ≠ Offshoring
We get asked this a lot. What’s the difference between outsourcing and offshoring your work? Offshoring is outsourcing, but not all outsourcing is offshore.
For example, AndPlus is a Boston based software development agency. Our team is 100% in-house as full-time employees under one roof, no part-timers, no contractors and nobody looking at your code that isn’t a full time resource that is heavily involved in our internal culture. We don’t staff resumes to fill a void, we staff teams that solve problems.
All of these considerations add up to a common theme, a massive reduction in both technical and financial risk. This is the true advantage to partnering with an agency.
While it’s easy to think of the development as a single process, the various stages of development should be considered before engaging in sourcing a solution provider.
1. Digital Product Solution Strategy
By first developing an understanding of your business needs, challenges and objectives, a good partner will deliver unbiased perspectives and experienced counsel regarding digital product strategies and solution approaches designed to support your business objectives.
2. Digital Product Solution Design
Whether you have a new product or an existing one that needs a comprehensive design plan. A good development partner will help you craft a solution blueprint that achieves your business goals while delivering excellent results.
3. Software Product Development
The bulk of the work takes place in this phase, and naturally, this is where you'll spend the most time. A good software development partner works in time-boxed sprints (we do 2 weeks pretty consistently) to deliver iterations on your product regularly.
4. Software Product Delivery
Leveraging a diverse team of strategists, UX experts, technical leaders, project managers, software engineers and QA experts, a good development partner combines these people with the discipline of a refined process to deliver world-class technologies as a solution.
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.
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.
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:
Check out this extremely helpful comparison matrix template (created in MS Excel) that can help you expedite the selection process and ensure easy and accurate comparisons of your development partner interviews.
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.
We’ll be honest with you. In a lot of cases, an off-the-shelf solution is more than adequate for what an organization is trying to accomplish. This is totally fine if generalized software gets the job done for you, but many businesses require bloat-free, specialized pieces of software designed to get very specific tasks completed flawlessly.
The same question comes up regarding enterprise software systems: Do we build a custom software solution from scratch, or do we buy off-the-shelf software? If we decide on the latter, then how do we make it work for us? Is it even possible?
It’s important for a business to choose the software path carefully. Software can represent a major investment in time and money. Making the right choice can mean the difference between seeing a return on that investment and writing it off as a loss.
Ultimately, the choice of build or buy comes down to cost. For any major software investment, it pays to look at both options and to get multiple proposals for both COTS and custom solutions. Because a COTS solution may have a custom component to it, this option should be considered as well.
Some questions to ask when making the final decision include:
A requirements document specifies the functionality of a software product. It could cover the entire software product, a specific module or set of modules, or new functionality to be added to an existing product.
Regardless of scope, the important thing about a requirements document is it’s limited to describing what the software should do, not how the software should do it. The “how” part is covered by software design documentation produced by developers or user interface designers and is often a result of our Product Map Sprint.
The requirements document has three primary audiences:
Designers - Use the document for guidance in making design decisions
Developers – Use the document for guidance in making development decisions
Testers – Use the document to design test cases
It’s one thing to write the requirements appropriately. Far trickier is getting the “right” requirements to document in the first place. If you simply take everything the customer and users say at face value and try to create requirements out of it, the result may be a convoluted, confusing mess. Too often, new product owners don’t really know what they want or need, much less how to articulate it.
Successful requirements elicitation takes a willingness to ask uncomfortable questions. You need some domain knowledge of the business process and a fair amount of intuition. Much of the discussion should be about the process and the problem to be solved rather than specific software requirements. Often, you can avoid time spent on unnecessary software requirements.
Understanding MoSCoW Prioritization
I’ll keep this one quick. MoSCow is a prioritization method that allows you (and us!) to… well… prioritize features. Ok that was easy. Let’s break it down a little bit.
Mo - Must have: Non-negotiable product features or needs that must launch with the MVP
S - Should have: Important features that add value, but wouldn’t be the end of the world if the product launched without them 100% ready in their final form.
Co - Could have: It would be nice to have these little pieces. Maybe not right away but they’ll be important later on. If we have time left over we’ll get to a couple of these backlog items.
W - Will not have: I don’t feel the need to clarify this one any further. If you’d like me to break this one down, give us a call maybe?
Increasingly, companies realize that their existing business models and processes are holding them back and causing them to fall behind in the competitive race. For these companies, choosing the right partner to guide them in their digital transformation process is a critical step.
With the right partner organizations can effectively create top-down, organizational change that leverages digital technologies and business models to improve business performance and deliver new levels of customer value.
At AndPlus, that’s what we do. We’re a digital product development agency that applies technologies to create or improve experiences, processes, and products.
For more than a decade, our teams of builders, innovators, engineers, and designers have delivered business transforming digital products that work the boundaries of mobile, web, IoT, firmware, and advanced technologies including data warehousing, machine learning, AI, and big data.
Driven by a passion for excellence, AndPlus creates digital transformation strategies and reliable digital products that also deliver exceptional user experiences. Our deep expertise and custom Agile process enable AndPlus to iterate quickly, provide transparency, and deliver on time and on budget — helping our partners get to market faster with less risk.
Put simply, we’re here to guide and assist your organization in its digital transformation journey by delivering the best strategies, expertise, processes, and technology.
Give us a call and let’s get started.
AndPlus is a digital transformation agency that applies technologies to create or improve experiences, processes, and products. For more than a decade, our teams of builders, innovators, engineers, and designers have worked the boundaries of mobile, web, IoT, firmware, and advanced technologies including data warehouse, machine learning, AI, and big data.
Put simply, we’re here to guide and assist your organization in its digital transformation journey by delivering the best strategies, expertise, processes, and technology.
Give us a call and let’s get started.