One of the most common questions to pop up when we talk with potential clients (besides “How much?!”) is “What technology can we use that is already out there?”. Regardless of budget, it’s always a good idea to evaluate what technology components you can buy or borrow versus building custom. It could be as simple as using an open source component for a date picker in an iOS mobile application or something a little more complex like a search engine.
Often, our clients do not have in-house software developers, a CTO and/or the time to dig into the technical details. Others may not know it’s even an option in software development to use something already out there. Today, I’m going to walk through three steps for evaluating the build versus buy decision for the non-technical folks out there.
First, make sure you’ve prioritized your product features. If you’re having trouble narrowing them down, and we all do, I highly suggest following one of the three buckets models described by Slava Akamechet or Adam Nash. Slava’s three buckets are best for early-stage products and Adam’s model will fit those that have paying customers. Both will give you the mental framework to break down a giant backlog of features.
Once you have freshly prioritized feature stories in your backlog, try these three simple steps:
- Ask – Do we really need to custom build this feature? Possible answer: This feature is our super secret sauce and it’s critical to our business. In that case, seriously consider building from scratch. And even if you build from scratch there’s a good chance you can use open source projects to help speed up the process. Make sure to check the project is using an appropriate license for your business model. If you’re OK buying versus building, move to step 2.
- Research – For example, one product’ you might like to include is a built-in analytics dashboard. That would be a large undertaking to code from scratch. Let’s start with a Google search. Searching the term “analytics” will give you more results than needed and won’t necessarily be helpful. If you add “for developers” on the end, then we start to get results with different software and API options. When one result looks like a possibility, choose it and search for alternatives or competitors to get a list of options. Either learn about them yourself or just understand that, yes, there are options and building from scratch may not be necessary. The developers can take it from there.
- Analyze – At this point in the process, it would be a good idea to have a developer evaluate the list of possible options with you, but it’s not completely necessary. Next, make a list of features needed. This could include things like price, features, support, scale, popularity, community support, etc. It’s also important to consider what features are missing that you would need to acquire from another product or build from scratch. Dropping all of this info into a spreadsheet will keep you organized.
This might sound really simple, but I promise you – the mental exercise of prioritizing and then doing #1-3 could save time and money in the long run. And when working with a software development team, you’ll have a foundation of knowledge when it comes to making decisions. If you need help, we’re always happy to set up a coaching session and be your CTO for a few hours. Give us a ring.