Sketch Blog

The Five Most Common Software Development Approaches

Written by John Krewson | Nov 9, 2021 2:00:00 PM

And why we’re stumping hard for #5

The road to custom software can be cold and lonely, so come on in for a fireside chat and let’s talk shop. We understand how it feels when the sun is setting on your deadlines and the deliverables still look distant. Maybe you’re feeling lost or stuck, but it’s never too late to stop and ask for directions. By the time you need a custom software solution, the abiding question is almost always: What is the best way to get the right solution for your organization? 

Software development on subscription has become an appealing option for modern companies. Businesses that are ready to adopt an agile mindset normally appreciate the tight feedback loop, as well as the emphasis subscription-based software engagements place on working software. To get a better feel for the pros and cons of software development on subscription, it helps to understand all of the other software development approaches, too.

The “Buy Or Build” Software Dilemma 

Let’s start out on an honest note. It’s always far less expensive to license software if you have the option. Even if you have to do some tweaking and configuring to integrate your new solution, there’s no question that it’s going to be far less of a capital investment to license seats rather than build your own. As a software development company, maybe it isn’t great for business for us to say that, but it is the truth. 

Buying software will always be more affordable than building it. If you find an existing option that has the features you need and works with the rest of your technological ecosystem, stop reading right now, and use the remaining five minutes you set aside for this article to go buy a license. 

Ways to Develop Custom Software

If you’re still here, we assume you’ve already exhausted the option to buy existing software, and you need a custom solution. If for various reasons existing platforms aren’t an option for you, if you’re building a new piece of software for your customers and stakeholders, let’s dig into the “whys” and “hows” of getting a piece of software into production as soon as possible. 

1. Staff Augmentation

Hiring some extra resources on a temp basis and managing them internally is ideal if you have the management structure and functional IQ to develop software already. For companies with the right leadership and structure, it could be cost-effective to source those skills for a short-term project. There is a lot of skilled contract talent out there, and slotting the right skill set into a temp slot is an excellent way to get a project off the ground if—and this is a big if—you can manage the contracted staff successfully. 

All staff augmentation does is provide extra sets of hands to write and test code under your own tech delivery managers. Without those delivery managers? You’re just adding bodies to a pile. And…here’s the catch…it won’t work.

If you add more bodies to what already feels like chaos, you’re not necessarily going to get your software faster. You could, however, add more chaos to the mix. If we haven’t made this abundantly clear, we’ll say this again: “More developers = faster progress” is a myth. Skilled developers within a functional team: Great. Skilled developers piled onto an existing mess: Mess.

The Pros of Staff Aug 

  • No long-term commitment. As soon as you’re satisfied (or decide to go in another direction), you simply stop sending work to the vendor or freelancers.

  • Talent is available quickly with limited onboarding. These individuals and teams are used to working on these types of engagements.

The Cons of Staff Aug

  • You have to have a management structure in place. 

  • You get what you pay for. If you can’t believe what a good deal you’re getting (this happens a lot with offshore shops), all we can say is buyer beware.

  • More contractors may lead to empire-building among management.

2. Hire Permanent Staff

Yes, people still hire full-time developers. Let’s assume that if you could build the software you need with your current team, you’d already be doing it. But maybe you just need a bigger team because you’ve grown or the product is evolving. How do you know when it’s time to grow vs. look for external resources?

In a word: Scale. Can your company’s internal culture and size scale to train, onboard, and manage new members of the team? Remember that throwing bodies at a problem doesn’t work unless you’re slotting those bodies into roles and a culture where they can do good work. Also, it’s the 2020s. If talented people walk into mismanaged chaos, it won’t be long before they walk out. 

Hiring and recruiting takes real effort from HR. You also have to pay competitive salaries, taxes, benefits, and so on. On the plus side, you’ll keep everything (including anything they build) in house. Other pros: you continue to build your already-successful culture with folks who are bought in. This might create a greater sense of ownership and a commitment to the final product. Good, competent developers often seek stable, long-term opportunities and like to be part of an organization. That stability often can be contagious and morale building for the rest of the team.

On the downside, without the right culture, people will walk. Even with the right culture, people may be on the lookout for better opportunities. If you need to get something out the door quickly (and you don’t have the right management structure in place), now may or may not be the ideal time to expand. Your call. 

The Pros of Hiring Perm Staff

  • People are bought fully into your organization, no mercenaries. 

  • You can attract better talent.

  • You own and keep all of your intellectual property without question or contracts.

The Cons of Hiring Perm Staff

  • People will quit. If you don’t have the infrastructure to attract, manage, and retain skilled tech talent, you may see more money and effort go out the door.

  • This is a long-term commitment. When you churn and burn, it hurts your reputation and your bottom line. 

  • Building larger teams requires a lot of money, time, and infrastructure to retain them. 

3. Fixed-Bid, Fixed-Scope Contracts

Software is one of the most expensive and important things you can invest in. That cost leads to the need for certainty and security. Unfortunately, fixed-bid, fixed-scope software development contracts often only give the illusion of control. 

In fixed-bid, fixed-scope contracts, the vendor decides the cheapest way to build the required features, makes a bid, and finds ways to carve out a profit from there.

Business owners, product owners, and IT managers often believe they can’t be taken advantage of if they use a scope based on their own ideas and design. It may feel like you’re taking control of the situation by having all parties commit to your scope. Unfortunately, though, you’re stuck with the first draft of your idea just like everyone else is. When things inevitably change, the vendor makes their pound of flesh by nickel-and-diming you with change orders.

Where does that get you? Not to a good product. Instead, that tension ultimately leads to a more competitive, antagonistic relationship between vendor and client (complete with low morale, blame-shifting, and generally toxic culture). This model makes the client and vendor feel like they’re working against each other, instead of with each other.

The Pros of Fixed-Bid Contracts

  • Business leaders and product teams get the illusion of control.

The Cons of Fixed-Bid Contracts

  • You only get what you ask for, not what you need. Anything that isn’t specifically mentioned in the scope won’t be in the final product.

  • Changes are expensive. Because everyone has already committed to the initial bid, you’re at the provider’s mercy when you want to add or change anything.

  • There’s no way out if you realize the software won’t be profitable, you find a better option, or you otherwise want to change the idea.

4. Time and Materials Contract

A time and materials contract with a software vendor is essentially a way to pay for software development by the hour. It’s a bit like contractual staff augmentation in that you pay for time and talent, only in this case, it’s talent you don’t have to manage yourself. While time and materials contracts aren’t perfect, they offer more adaptability than fixed bids. 

The obvious pros? It’s more open-ended than fixed bids, giving you time to adjust to shifting market conditions. Because there’s no set bid, the client can request changes or additions at any time (as long as they’re willing to pay for the time and materials required to complete the work).

The obvious downside is that vendors are less motivated to hand anything off. The minute they’re off the clock, the income stops rolling in. That can create similar antagonistic relationships, puts tensions on the team (precisely where tensions should not build), and pushes product delivery further and further out. 

There is always room for improvement, and the vendor is motivated to keep the money coming in for as long as they can. The final cost is almost impossible to estimate. The client knows how much they’ll pay per hour, but there are no promises about how many hours they need to get a deliverable in your hands. Imagine if you built a house without an architect, but you have a contractor on site who keeps building rooms. Like that, only software. 

The Pros of Time and Materials Contracts for Software Development

  • Open-ended flexibility lends itself to shifting market conditions. 

  • Potential long-term value between vendor and client.

The Cons of Time and Materials Contracts

  • Where’s the endpoint? The project can just keep going forever. 

5. Software on Subscription

When you buy software on subscription, you’re essentially getting access to a full DevOps team on a renewing basis (normally every two weeks). It’s almost like a better version of a time and materials contract, except you’re buying two-week intervals, and you’ll receive working software at the end of each term. The software on subscription team takes an agile approach to ensure there will be a functional product at the end of every period, and the client doesn’t need to use any of their own IT resources or product managers.

Software development on subscription looks risky on paper because you’re buying time and dedicated experts instead of committing to an enormous scope of work doc and a long, detailed schedule. It sounds like you’re buying something abstract, which is kind of like buying nothing at all. In reality, though, you’re actually more likely to get your deliverable faster. 

It’s hard to get feedback on something that isn’t finished, so this method makes it possible to assess a viable product every two weeks and incorporate feedback into the finished product.

The whole benefit of software on subscription comes back to these two-week sprints. This naturally creates a tight feedback loop: There’s working software every two weeks, and you can correct your course as you go. There’s very little wasted motion because it’s impossible to get too far in the wrong direction.

So what’s the downside of subscription-based software development? Unlike staff augmentation, this will create an overlap, if tech delivery management is already part of your business operation. When you and your hired team are both trying to manage the product at the same time, confusion and frustration ensue (and a comedy of errors is significantly less funny when you’re the main character). Leadership must be willing to collaborate, commit to a transformation, and trust the experts to make the process work.

The Pros of Subscription-Based Software Development

  • Leads to the ultimate goal of short feedback cycles.

  • You have an end date in sight every two weeks. No long-term commitment.

  • No change orders, scope creeps, or blown budgets. 

  • Options to pause, expand, or switch gears. Every sprint is a new opportunity to pivot.

  • Superior flexibility makes it easier to adapt, innovate, and harness change.

The Cons of Subscription-Based Software Development

  • Leadership has to trust the process and avoid micromanaging.

  • Could create unnecessary overlap with existing management. 

Outsourcing software development doesn’t have to feel like giving up control of your own fate. When done correctly, you’re gaining capabilities that will help you hit your goals. If you’re not sure which direction to go in, let us know. We’ll be very transparent about what we think the best software development approach is for you today.