You should subscribe to our blog! RSS feed Email

7 reasons not to reinvent the wheel

So you're a donor organization, or a host government agency, or an international NGO. You need software to manage your projects, analyze data collected from the field, and report on your results. Should you build that system on your own, or should you use DevResults?

I am of course biased, but I think trying to build a DevResults-like system from scratch, in this day an age, is pure folly. Here are seven reasons:

1 Software is not your expertise

Writing good software is hard. And chances are, you're not good at it. "But I'll hire a software development firm," you say. Of course you will - you're not insane enough to try and have your IT staff do this. (Right...?)

But even having software built is a skill, and it's unlikely that it's something you're good at.

You're good at what you're good at. Focus on that, and leave the software to us.

2 DevResults is ready today.

Writing good software takes a long time.

You'll be starting from scratch, and it will take time to get to a minimally viable product

3 Forgot what this one was.

Something something

4 You don't have to bear the full cost alone

Lots of other people have similar needs
You benefit from years, $M of R&D investment

Build it yourself, and you'll bear the full cost of the software alone

5 You'll benefit from ongoing upgrades and new features

We're constantly working to make DevResults better

6 DevResults is configurable

Every organization wants to think that it is a beautiful and unique snowflake.

7 DevResults is an emerging standard, and we need standards.

  • It has a growing installed user base
  • You'll have lower training needs
  • The development community needs shared standards

We built DevResults in response to a very specific reinventing-the-wheel problem.

Many USAID RFPs come with a line item for a custom database - sometimes referred to as a "Performance-Based Management System" - to be built from scratch.

Here's how that works in practice:

  1. The implementer spends a lot of money - sometimes hundreds of thousands of dollars, sometimes millions of dollars, to create a custom software system just for that one program.
  2. A couple of years into the project, maybe they had a version 1.0 system.
  3. But people had already developed their own ad-hoc systems by this time
  4. When the project was over, they threw away the software because it had too much project-specific logic baked into it to be reusable.

That last part causes me physical pain. The amount of money being wasted is staggering - and it's still going on.

To be sure, there are advantages to building your own software:

  • You have complete control
  • You can build to fit your needs precisely
  • You can manage deliverables and timelines

And conversely there are disadvantages to working with DevResults:

  • You can't control our product roadmap (you can influence it, though)
  • It's not custom-made for your systems and processes (but it can be configured)
  • Working with a small startup is risky (but we're really good people trying to build something great)