Software Development Sourcing 101

Software Development Sourcing 101

Our thirst for more connected products require us to understand the unique nuances of software development in order to bring smarter hardware devices to market faster. Building software can seem like a blend of confusing words a basketball coach might bark during practice, so if words like “agile”, “sprints”, and “points” make you queasy, read on. Pair the jargon with the many underlying coding languages, from Python and C# to JavaScript, and it’s easy to see why you might feel like sitting out this part of the product development lifecycle if you’re not a Computer Science major.

If you’re a non-technical founder or business professional that needs to develop software for your all-new Internet of Things (IoT) product, have no fear. What’s discussed in this blog will demystify software development and outline the core things you need to successfully engage the right supplier. Most importantly, it’ll aid your efforts in developing your software on time and on budget.

Can’t Write Code? No Problem.

First things first, if you don’t have a technical background you can still successfully oversee the development of a successful software application. Simply put, you can source the development of your software with a software engineering services firm and/or broader product development firm. Yes, there are advantages to having a technical background, as there are advantages to having a supply chain, finance, etc. background; however, the key to successfully sourcing software development is understanding 1) what you need, 2) how the process works and 3) why selecting the right partner will determine your success.

1. What You Need

This seems easy right? Yes, but often non-technical professionals get lost in the details trying to define how the software should work. It’s ok to have a product vision, but you should focus on clearly outlining the “voice of the customer.”

“Clearly document your customer pain(s) and desired business outcome(s) – e.g., I want my factory associates to spend 10% less time managing inventory – because this will enable you to have more focused meetings up front with potential suppliers,” says Jeeva Nadarajah, Chief Strategy Officer of Ann Arbor, Michigan based software engineering services firm Hurley Collective.

Get specific. Outline dollar amounts, percentage increases and time saved. Below is a short list “scope of work” of the basics you need ahead of contacting a supplier. These items don’t have to be final, but you should have a “plan of record.”:

Software Development Scope of Work

  1. Customer Pain(s)
  2. Desired Business Outcome(s)
  3. Timeline (both ideal project start and completion dates)
  4. Budget
  5. Project Lead

The better you document the problem, the faster you’ll be able to engage a supplier to build your software. It’s no secret, the more prepared you are for a meeting with the supplier, the more seriously you’ll be taken. Further, an organized and professional customer often receives better pricing if the supplier can better scope out the project.

2. How the Process Works

Each supplier uses its own methodology for developing software, like Design Thinking, as well as its own process for execution – i.e., Agile. Today, most firms gravitate toward Agile so we’ll focus on that for illustrative purposes. The following are a few key components of the Agile process:

Discovery: An experienced team will want to interview stakeholders, end-users and IT personnel to ensure the problem is clearly defined. Discovery is typically a paid engagement where your software partner gathers data, defines the business problem and presents a recommendation. Your supplier can also help you determine the value of the outcome you’re trying to drive. It might seem like wasted time and money but skip this step at your peril. There are countless examples where suppliers uncover hidden challenges their customers were unaware of. Further, it can be difficult to see a problem you experience everyday since you’re numb to the environment.

Third parties have an advantage interviewing users because they’re not blinded by the current product functionality so they can uncover invaluable insights that’ll better define the problem. The better you can define the problem(s) from the start, the better your product will become. Oh, and your software development budget and timeline will be more accurate too.

Sprints: A sprint is a set amount of time in which your software development partner is actually “manufacturing” the code your software runs on. A typical Agile sprint tends to be one or two weeks comprised of “tasks” that are scored via points system. So, it’s quite easy to forecast the time it’ll take to complete an overall project by adding up the tasks and number of sprints. Where non-technical professionals get frustrated is often a misunderstanding that individual sprints are forecasts and the overall product timeline is a forecast.

It’s important to remind yourself that you’re building something all-new so some things will take longer, and some won’t. The key is to outline expectations up front, then hold weekly update meetings with the supplier on 1) the status of each sprint (points and completion dates) and 2) the overall product timeline total points and completion date. These will likely evolve throughout the project, but your net trend should deviate toward your end completion date if things are going in the right direction.

Software Releases: There will often be a series of rough and more polished software versions that your supplier will build and deploy. These iterations are called MVP and later Alpha, Beta, etc. to denote the advancement of the product. “Releases” of advanced versions of the software should be defined and agreed to ahead of engaging. Eventually your supplier will publish the final “production” version of the application, which means it performs how it was designed during product development and is ready for users.

Testing: The testing of software isn’t the sexiest step in the process but it’ll happen throughout your engagement and it’s a critical piece of the process. During each sprint, engineers will dedicate time to test the code they write and features they build ahead of launching the code to production. Again, skipping the testing phase might seem like low-hanging fruit to trim days off your timeline, but resist the urge. Great testing builds better products.

3. Why Selecting the Right Partner Determines Success

The most common ways to engage a software development firm are 1) time and materials and 2) fix-priced contracts. We often gravitate toward fixed price to limit our risk, but often frustration ensures when cost overruns happen. In the worst cases we spend our entire budget only to be left with software that doesn’t work. Yikes.

Both engagement options work fine, but the process should be scoped to include a series of “milestones,” both in terms of cost, time and deliverables, which ensures alignment with your supplier and allows you to better manage your project and budget without being a technical expert. Natural milestones should include Discovery, Product Definition, MVP, Beta and Production.

Ok, so you defined your software product and have a clear understanding of the process. But even the best laid plans can stumble if you source the wrong supplier. How do you select the best-in-class partner? Funny you should ask, so read on:

Communicates Clearly: The words the supplier uses to communicate should be simple and understandable. “Suppliers should break down technical speak into business talk so that you understand why certain designs, hardware or tools are used,” adds Nadarajah.

Speaks Hard Truth: True supply partners speak the truth no matter how hard it might be to hear. “This will mean they turn down money for the right reasons, disagree with you and admit unknowns. You in turn will feel comfortable sharing your challenges,” stresses Nadarajah.

Positive People & Culture: This is arguably the most important and difficult to quantify. Move beyond superficial qualifiers like “we wear slacks and they wear jeans”; clothing doesn’t determine culture. After all, if you’re a large company, you might want to tap into some of that “entrepreneurial creative magic” from that startup in jeans. Review suppliers’ core values. Do they demonstrate them? It’s a better indicator of their people and culture.“Ego and failing to be vulnerable can introduce costly mistakes,” adds Nadarajah.

Appreciates Building Quality Applications: Everyone claims to want to build quality software, but does your supplier have ingrained processes to support repeatable deployments?“A supplier should test drive their software so that the code is reliable, easily modifiable, maintainable, scalable and promotes better coding principles,” adds Nadarajah. This ends up saving a lot of cost in terms of time because quality code requires less manual testing and rewriting.

Go Get Results

Knowing what you need, how the process works and what to look for in the perfect supply partner will position you well to successfully source software development. One time in a basketball practice I said to my coach, “I’m working hard,” who quickly quipped, “It doesn’t matter how hard you work, what matters are the game results.” This applies to building software as well.

A supply partner will get results for you by shipping a great product (winning games) not lines of code (working hard). But if you’re not a technical professional, you can still source software development. We hope the discussion above aids your efforts in getting better results bringing your vision to reality so you can win in the game of business.

-William