For an industry with so many smart people, software development can be one hell of a mess. According to people who research these things, nearly one in three IT projects are cancelled before they’re even completed, and 52% run way over budget. In the U.S. alone, failed software projects cost north of $75 billion per year.
It’s not hard to find the reasons. Our industry has grown really big, really fast and we haven’t had time to lay down any proper ground rules; engineers are often lone wolves by nature, and don’t always mesh into cohesive teams; and technology is advancing so fast that a project can be rendered obsolete before the code base is even complete.
What’s harder, however, is finding the answers. In fact we’ve spent years fine-tuning our approach at Mobile Jazz, in a program which has taken more than 6,000 hours of our time and has culminated in the development of our in-house knowledge ecosystem, Harmony.
In most software companies, each project is an island. Engineers and clients are left to decide all the key details — the language the product is built in, the structure it is built around and every other key factor that goes into an app or website.
When engineers make the right calls, everything turns out ok. Unfortunately, it’s not always possible for them to make good decisions: sometimes the budget is too tight, managers get in the way, or the product vision is wrong. And the worst part is that, often, the knowledge acquired in one project cannot be shared to others (because of ownership rights).
So back in 2014 we took the decision to start building our own internal tools, open-source libraries and frameworks to share our know-how between all of our projects and clients. The idea is that any project can benefit from our technical accomplishments, from a short-term project to a long-term collaborative partnership.
This has represented a huge investment on our part. We’ve dedicated more than 1,000 hours exclusively to open-source development; 1,500 hours to creating courses and learning programs; and 3,500 hours to regular team training.
Of course we can’t expect clients to pay for these internal efforts, so we had to fund the work ourselves. Every time an engineer was assigned to a project, we had to foot the bill. Alongside that, of course, there’s the opportunity cost. Every minute we spend on internal development is a minute we can’t spend winning new business. What’s more, every time we build a feature for a client, we can re-implement that same feature for others in future. So, by diverting time away from client work, we’re also cutting off long-term revenue streams.
Along with the cost element, it’s been risky. What if we’d spent a whole bunch of cash on something that didn’t work as expected? Worse, what if we’d built something only for it to become obsolete?
But that’s completely ok. We want to be a company that sells expertise and seniority, together with an extensive bank of knowledge in our field. We want our clients to feel safe, and that we invest in them. We are not a pool of engineers that are allocated to clients individually; we are a united team working together across many projects, that collaborate and help one another, and share all learnings in a way everyone at Mobile Jazz can benefit from.
Therefore, after years of iterations and development, we are proud to present our new framework, Harmony, which provides a single trove for all our in-house knowledge and expertise.
What Is Harmony?
At its most simple, Harmony allows us to reuse the code that works across all projects. We’ve got our own libraries for all kinds of features, so why not keep using them? Simply by importing some of these existing libraries, we can create a whole bunch of original features with only a few lines of additional coding.
But the concept goes way beyond this. As well as building a reusable code base, we’ve created a shared ecosystem for all our engineers, no matter which platform they code on, while defining the foundations for scalable and testable projects. With this shared way of working, our clients can keep enhancing their products with no issues, and our team can cycle across multiple projects to help one another out, squeezing every last drop from our collective capacity.
These efficiencies, in turn, will free up the amount of time our engineers have available to design new concepts for our client roster, and create solutions to technical problems that go beyond a single project. With this joined-up way of working, each engineer can contribute to projects across multiple technologies and programming languages. Whenever they make a breakthrough, it benefits the entire business.
The Bigger Picture
Many consultancy companies claim that they’re using ‘cutting-edge’ strategies, but this is meaningless without long-term in-house technological capabilities, and this is exactly what Mobile Jazz has been investing in these past years.
We’ve got a roster of stable, loyal clients, including Worldreader (5 years working together), PeerWell (5 years), SocialPALS (4 years) and Nifti (4 years). Each of these clients, along with our more recent projects like TwoNav, RideLink, Shalion and Antelope, are benefiting from Harmony; every time they need an extension to their project, we can apply it in minimal time, without friction.
For example, we decided to build an OAuth2 authentication module, as many clients needed one. Now we have projects like RideLink, Axioma or PeerWell running that shared implementation, and new projects can benefit from it with no extra cost.
What’s more, our team is happy. Harmony has brought the entire team together and turned each engineer into an all-rounder, working on various projects. iOS engineers, for example, can now participate in back-end discussions, because they know the architecture and the code. This allows each of us to embrace new challenges, and pool our expertise.
Naturally, we hope that prospective clients read this article and get in contact with us on the back of it. But we also hope that this blog post benefits the wider software development community, and inspires other companies to embrace Harmony-style practices.
After 25 years of incredible growth, our industry has now reached the adult stage. It’s time we adopted mature working practices, and we feel that Harmony is a key step towards that.