Modularis

Stop Writing Code and Start Writing Invoices!

SHARE THIS

We were brought in to do technical due diligence for a software company recently, and I asked the CEO a simple question: 

“Where do you want to be in 12, 18, 24 months?” 

Now, he’s a smart guy. He’s been selling software and running companies for years. “I don’t want to be a software development company,” he said. “My job is to build, sell and support great software in my target market.  But I’m doing too much building and not enough selling.” 

And he’s not alone. 

Many entrepreneurs starting out with a technical background are a bit like Dilbert, the legendary comic strip known for its satirical office humor about a white-collar, micromanaged office. They’re excited about their code, their product, and so amped up to show prospects every amazing bell and innovative whistle they have. But it doesn’t take long to realize that they need to be the Marketing or Sales guy – not Dilbert himself – if they ever want to grow their business and make some money. 

That cultural shift is never easy (it certainly wasn’t for me). But more than anything, we all have to deliver results. We all know very well that sales calls go much better the less you speak, the more you listen, and the less you show the product itself, no matter how amazing it is. In the same vein, as you focus on growth or even survival, you need to write more invoices and less code.  

We get it. You run a software company. Software research and product development is a profit center for you (even though some quarters it may not seem like it). You’re working to keep your current customers happy, grow your footprint with them, expand your market share, and perhaps even break into other parallel markets with your offerings. 

But like a lot of CEOs in your position, you seem to be writing an awful lot of code, and not enough invoices. And when you do close a deal based on new code delivered by your R&D team, replicating that success seems to take much longer than it should, and isn’t very efficient. You know you need to invest in software R&D—it’s core to your business—but that investment seems to be endless, the returns seem too uncertain, and this “next-gen” product your team seems to be spending all their time on (and your money), won’t be ready for 6 months…or was it 12? Maybe 18 months?  

Sigh… you’d rather be writing invoices than code, right?

Now, I know exactly what you’re thinking…

How do I stop writing code and start writing more invoices? 

I’m glad you asked, my friend. 

There are really 3 ways people attack the product development process:

  1. You can build everything yourself.
  2. You can build upon open-source frameworks. 
  3. You can build on a commercially-licensed platform.

 

  1. Build it Yourself

Most software developers want to build their own platform of reusable components. They see the value in writing something once and using it over and over. This isn’t a new concept at all, and all good developers want to do this.  

But, even with the skill, experience, focus and drive to build reusable components, the dirty secret is that they don’t actually get to do it. They might start out doing it…but inevitably, their priorities shift, or deadlines tighten, or quality and reusability go out the window because a customer needs something NOW, and you need to sell what you’ve got. 

Worse still, proofs-of-concept and prototypes are rushed into production, even though your developers tell you you’ll have to rebuild it right (not quick and dirty) before going live. You need to write some invoices and you’re sick of writing code, so the pressure to ship grows, and the reusable modules your developers once dreamt about building fade away into nothingness.

Big surprise, right? 

It’s not all bad, but it does point out the folly of trying to build everything yourself.

And the truth is, even if you build reusable platform components, maintaining them is time consuming. They constantly need to be managed, updated and cared for. And in-house developers are not paid to care for such things. They are paid to generate revenue and keep customers happy with new features. 

  1. Open-Source Frameworks

This is why open-source software has become so popular. It sounds amazing up front. It’s FREE! Why wouldn’t we want to use free software that’s maintained by a community of developers around the world? 

Because, none of those developers are paid to maintain the code. They contribute because they had to make an adaptation to the code and then they pushed it out into the ecosystem. And they do this on their timetable, with lots of different flavors of those frameworks popping up, and no real thought put into long-term viability or solutions built on them.  

The code is free up-front. Great. So, you have to write perhaps 50% less code yourself, with the other 50% being open-source.  

But what does this mean in the long- or even intermediate-terms? Even though you’re only writing 50% of the code yourself, you’re responsible for maintaining 100% of it.  It’s on you.  When a new version of an open-source framework comes out (Angular anyone?), it’s expected that you upgrade to it, in order to take advantage of new features, security patches, bug fixes, etc.   

But there’s often little thought put into making sure that upgrade path is easy—in many cases you have to REBUILD your product on the new version of the framework. Your developers don’t mind, because the new version is newer, better, faster, stronger, sexier, yada, yada, yada.  

They love it because they get to write more code! 

But you have to pay their salaries, and ultimately, you’re responsible for maintaining all that open-source code.  And every hour your developers spend maintaining this code is an hour not spent building value for you or your customers. 

And this restricts your ability to write an invoice. 

  1. Commercial Platforms

WARNING: UNPOPULAR OPINION COMING IN 3…2…1…

Buying a license to a platform is the fastest, most efficient way to start generating revenue and stop writing code.

I said it. As my daughter would say: sorry, not sorry!

When you license a commercial platform, you are off-loading to a technology partner the responsibility for building and maintaining a huge percentage of the code you need for your solution (up to 75% in our case).  

Think about it—you get 75% of your code pre-built, ready-to-go, and fully supported and maintained by someone else. That means your team can stay focused on the remaining 25% that is truly unique and adds value to your business–things like user experiences, proprietary algorithms and business logic. Your IP.  

Now I use the term “technology partner” here instead of “vendor” because this is not a decision to be taken lightly. If you’re going to build on a 3rd party commercial platform, you need to have a tight relationship with that firm in order to hold them accountable for keeping that platform modern, secure, stable, scalable, and sustainable. They must give you a clean, low-risk, low-effort upgrade path so you can keep your products updated, modern, and viable over the long haul and don’t have to rewrite them every 3-5 years.  

How many more invoices could you write if you had to write, support, and maintain 75% less code?

You don’t get paid to maintain a platform. You get paid to sell software. But, platforms are what allow you to scale up, build features faster, and get to market more quickly.

Why a Platform?

Several reasons, actually. But let’s explore this through the lens of two businesses: PE Funds & Software Companies.

PE Funds should standardize on this type of approach because every investment you make for one of your companies may be reusable across others. The common skills, resources and talent you need in order to do this also gives you unparalleled flexibility and a better return on all fronts:

  1. You can move people around where they are needed
  2. You’re not dealing with isolated development silos anymore
  3. You can react to market changes faster
  4. You get greater productivity out of a team

 

If you’re leading a software company, you can actually focus on taking advantage of your market opportunities and not on the mechanics, plumbing, or software infrastructure you need to get the job done. 

When you’ve got a platform and trusted technology partner backing it, you’re able to build modular and modern software components and systems far more rapidly. This allows a much better short-, medium-, and long-term return on investment. Plus, you’ll enjoy:

  1. Faster time to market. Since you are reusing a library of proven assets, you can assemble solutions with them to create products in less time.
  2. Lower risk. These platform assets have been battle-tested and are fully supported.  If something goes wrong, you hold your technology partner accountable. Try doing that with open-source!
  3. Higher reuse. You can reuse both platform components and your own modules across multiple products.
  4. Higher quality. You’re working on a platform that has been thoroughly tested and validated by others.

Final Thoughts

Look. No matter how skilled you think you might be at time management, there are simply not enough hours in the day to do it all. You need to work smarter, not harder. And yes, I know that’s a worn-out cliché, but you know what’s even more worn out? YOU! 

So, if you’re serious about writing more invoices and less code, you need to reset your expectations and give yourself the opportunity to be successful. And that starts by using a commercial platform that allows you to delegate the mundane, day-to-day tasks within research and product development that are consuming so much of your time.

For a demonstration on how Modularis can help, just click here to get started.

Head over to LinkedIn and follow us for more Software Product Development Insights

Follow On LinkedIn