In the world of application development, there is enterprise grade and product grade. If you’ve never heard those terms before, you’re not alone.
Product grade software means a software system built at such a high degree of quality that it’s able to provide value for many different platforms, problem domains, and enterprises. Much like you would expect from a software product or cloud service.
Specifically, the differences of a product-oriented approach to software development are:
- The ability to leverage many user interfaces in native ways.
- The ability to adapt to different security approaches and enable security technology.
- Integration with a wide range of other software and database systems using plug-in/no development approaches.
- Software systems that can self-heal.
- Solid support, including automation and humans answering phones and e-mails.
Why do enterprises need to take their software development game to the next level? They really don’t, mostly. However, some organizations think so much of the software systems they have built and deployed in-house, that they think the product is a good candidate for others in the market. In the case of cloud-based product development, you also have the option of building it as an on-demand, as-a-service product.
The interest in product-grade software development is really because cloud computing has made devops cheaper and more accessible, and created the tools to build and deploy product-grade software. Indeed, the game has changed; enterprise IT development teams can push out better software much faster these days, as well as continuously improve it.
A common request I get is for guidance about the best practices and tools to build product-grade software. There are a few emerging patterns of advice that I’m providing:
First, you need to do some deep market analysis if you believe that your software could find a market outside of the enterprise usage. Most enterprises don’t understand that there is a whole set of processes and costs that come with building and maintaining a product, such as sales, sales support, product management, security, and more. There is a reason software startups need at least 20 people these days, even with the automations and use of cloud-based platforms.
Second, even if you actually have a marketable piece of software or on-demand service, enterprises are typically not good at keeping up with the blocking and tackling that it comes with. They typically run them into the ground, with a few exceptions.
The cost is the core issue. Taking software to product grade typically costs about three times as much as traditional enterprise software build and deploy practices, even with modern devops and cloud services.
So, if you’re looking to take things to the next level, there should be a compelling reason.