Software Development: Turning A Car Into An Airplane 


As a core processor owned by the credit unions it serves, our CUSO has an important mission to find out what our member-owners need and give it to them in a way that honors that owner relationship now and into the future.

If we invest too much, we hurt the CUSO’s ability to continue building new products to meet their next need. If we invest too little, either the products we already spent money on are underutilized, or worse, we have a bunch of unhappy clients.

This is particularly challenging when it comes to the design of the software tools that credit unions use for their day-to-day activities and interactions with members. There are only so many resources to go around, so every day we work to find ways to use them wisely and on the right things, at the right time. It’s more art than science.

Upgrading the original

Let’s take as an example a software component that allows for underwriting and servicing a particular kind of loan product. When it was first designed, many years ago, it was a beautiful little thing, built exactly for the needs of the time.

To use an analogy, we needed a nice sedan, so we designed a nice sedan. Over the years we made the seats a bit more comfortable, expanded the storage options, and added a few cup holders, but the car still does pretty much what the car was originally designed to do.

A few years go by, and the world changes. Now this product that was perfectly good a few years ago doesn’t have all the bells and whistles members want. If we can meet those needs by tacking on a few more enhancements, great. A couple more cup holders in our sedan? Sure. A better exterior lighting system? Fine, as long as it doesn’t hurt the car’s overall performance.

Just slap some wings on it!

But what if credit unions now need that car to be able to fly? We can maybe design some nice airplane wings, or even install a jet engine…but will that sedan be able to get off the ground?

If by some miracle it does fly, will it really behave like the jet they are imagining? Won’t we just end up with a goofy-looking, much higher-maintenance car? And what about all those people who still need the basic sedan? Will this new contraption still meet their needs or do the new features just complicate things and reduce its performance?

It might be time to consider going back to the drawing board and designing a new vehicle that is intended to take to the skies.

Designing for many points of view

Once the tipping point is reached where something brand-new is needed, the next challenge is to come up with a design that takes into account the different needs and points of view of all the stakeholders.

Credit Union A wants this new loan product to work a particular way, and that way seems completely logical and “right” to them. But Credit Union B looks at things differently, and some of their needs are completely the opposite of the way Credit Union A wants things to work.

Flexibility adds complexity, and with added complexity comes added expense. It’s a heck of a lot cheaper to build something that does one thing, one way. Add even a handful of options and you could potentially have hundreds, even thousands of potential combinations you have to code for, test, document, and support, for many years to come.

It’s all part of the software game, of course, and in a CUSO where we’re investing our clients’ money, our clients count on us to work hard to give them the best bang for their buck. We just have to do it without compromising quality, without overspending, and without it taking a decade to get something useful on the street.

There’s always a trade-off

On a personal note, I will say this can be a fun challenge to overcome. It’s much more rewarding to design something that allows users to pick and choose their own preferences from a menu of choices, so everyone can be happy with what you’ve built.

The trick is to balance the trade-offs. These days just about anything you can imagine can probably accomplished if you throw enough time and money at it. (Maybe even making a 737 out of your cute little sedan!) But there’s rarely enough time and usually not enough money.

Oh, and remember all the tweaking you did over the years to make that sedan just right? Guess what? You get to go through all of that again as you break in your brand-new airplane!

This means you have to work a lot harder to think through the consequences of each function you want to work in multiple ways to meet multiple preferences while playing nicely with all of the other functions that need to work in multiple ways. All of this adds time, and there are always compromises that must be made if you want to get the project over the finish line on time and on budget.

More than meets the eye

So the next time you think, “This is just a simple change to this software to make it work like I want, I wish they’d just get this done,” stop and think about how everyone else using that same software might want something different. If what you’re asking for is akin to strapping an airfoil onto a rooftop luggage rack, it’ll take some complicated engineering to get that idea off the ground!


Your email address will not be published. Required fields are marked *