How SaaS Thinking Can Revolutionize Your In-House Tech Team
- Oliver Schenk
- Jan 8, 2024
- 3 min read

In-house development has many challenges. Competing priorities, lack of resources, context switching, technical debt, application maintenance, infrastructure bottlenecks, change management processes and the list goes on.
When enterprises build and maintain in-house applications there is a need for strong and reusable foundations including user management, security, logging, observability, continuous deployment and integration, API discovery, event based integration, and front-end design and components. The problem is that this often gets overridden by the day-to-day pressure of having to deliver solutions to the business and keep projects moving.
Unless there is an enterprise or solution architect involved and working across the enterprise as a whole, it is difficult to set clear targets and outcomes for this kind of foundational work.
Some companies try to solve this using libraries that developers are required to use for things like logging or authentication, but once applications are deployed these libraries either need to be maintained and updated (e.g. go through change management, down-time for upgrades and potential new bugs) and different applications end up with different versions of libraries. This ends up with library versioning hell.
I believe that there is a better approach and that is to look at how SaaS platforms operate. The concept of a platform means to create an environment that is suitable for applications to stand on. It provides a set of common services (not libraries) that applications can leverage and thus improve the developer experience and reduce the repetitive development of foundational concepts that don't directly provide any business value (e.g. re-inventing the wheel). All the things that were mentioned before, like user management, authentication, logging, monitoring and CI/CD, can be provided by the platform as individual services.
Here are some guiding principles and thinking that technology leaders can apply to move towards a more SaaS like architecture:
1. Apply platform thinking - the platform on which your applications are built becomes a project in itself and allows enterprises to apply KPIs, resources and capital to implement. It is no longer just a loose set of tasks on a developer's list. It inherently introduces governance, automation and reusable services.
2. Move from shared libraries to services - this means moving from libraries, which compile code into each application and make it hard to change, to services that provide an API. Developers will end up with much less repetitive and boiler-plate code in their applications saving time and money. Each service will have a clear purpose.
3. Integrate applications using APIs and events - each service should present a clear, domain oriented API that other applications can call and should emit events of what it has done. This creates clear separation of boundaries between business services. It promotes innovation and creating applications that can actually talk to each other and know what others are doing.
4. Leverage a cloud hybrid model - Cloud is a great enabler for SaaS development as it offers a lot of components off the shelf. For example logging, monitoring, authentication, user management, etc... Leverage the parts of Cloud that can solve problems for you and keep others on-premise. Don't waste money on infrastructure and software that has already been solved, leverage what's already proven and working.
5. Automate everything - ruthlessly strive to remove any repetitive task for which there is a reasonable solution available. This means infrastructure deployment, automated Cloud deployment, testing and continuous integration and deployment. For most application, except maybe the most safety critical ones, change management doesn't mean sitting in a boardroom manually approving and reviewing changes in a spreadsheet. Changes should be small and frequent and be tested in automated processes.
What is often overlooked is the multiplier effect that implementing a strong foundation can have. You're not just solving a problem right now, you're also investing in a platform that will solve problems of future applications and save development time. In addition to this, the platform itself will improve over time and provide more features to developers and the business.
If done right, SaaS can facilitate a move towards a more decentralised technology landscape where business areas take more ownership of their applications without compromising technical integrity.
One example includes moving from technology change management into business configuration management. Rather than having to update user permissions for an application in some centralised database or system, this type of functionality should be available in the SaaS platform so that the application business owner can approve and update permissions themselves without requiring lengthy IT service desk processes and tickets. User auditing should be embedded directly into the platform.
We've only scratched the surface of SaaS principles and in-house development. It is a technically challenging concept, but there are clear benefits of creating a SaaS style platform for in-house applications. With the right strategy, investment and dedicated resources you can reap the benefits in the long term.
Commentaires