Build vs Buy - Cloudy with a Chance of SaaS, #009
Concentrate on What Gives You a Real Advantage
Development
As a 27+ year veteran of delivering software or being around software delivery, I am still as excited today as I was when I first began. From Helloworld with a new library, language, or a new simple application exploring something new to me, or running some new machine learning algorithm, it is all still so exciting. The only thing more exciting than checking out something new is creating things from scratch. Humans are incredibly creative when given a chance, and it is this creativity that sometimes gets developers into trouble. I know this is going to be shocking to some, but the mere act of creating software, does not automatically make it great, nor does it make it key to the success of your SaaS. Worse, it can distract you from delivering on the key differentiation you need in a hyper-competitive industry where micro-niches abound. In a world that delivers micro-niches for just about any background services you need for dollars, or even pennies, how can you afford to expend significant developer time and money on creating software that does not give you a competitive differentiation?
Build
Just a few years ago you had to spend a few million dollars and hire a small army to stand up a worldwide accessible network of servers, that was hopefully co-located to save some expense and was not in your own data center or down the hall in your office. But today that same infrastructure is available for a small monthly fee. The hyper-scalers all provide various capabilities, but at their core, they give you computing, storage, networking, and DNS/routing to make your applications accessible to the world. This same consolidation and abstraction that has occurred in hardware and hosting, has been going on for years in software. At this point a SaaS seems to exist for just about any capability you might need; and if it doesn’t exist, you can easily wire up a few SaaS’s to provide that capability for you.
Authentication and Authorization
At this point, you should not need to stand up or write your own services to authenticate or authorize your users. The hyper-scalers and many pure-play vendors have capabilities in this space. They offload the security requirements, high availability, email, backups, and many other requirements needed for storing users' emails and passwords. For pennies a user, and in many cases, free for the first several thousand users, you can not go wrong by using one of these vendors. You will remove a source of many headaches for your organization, and allow yourself to be built on top of a well-architected, delivered, and constantly updated solution. At the end of the day, for all of your developer's creativity, they will never be able to match the capabilities of a pure play vendor, nor should you expect to innovate in passwords, unless that is your business. This area and space are very mature at this point, and can easily be acquired.
Reporting, Logging and Monitoring
Centralized reporting, logging, and monitoring are other capabilities that can easily be spliced into your applications from any number of vendors. Metrics around use and how people progress through your application is a key to uncovering patterns of use and figuring out a differentiator and competitive advantage for you. However, having to write, create, and stand up the infrastructure to deliver always-on listeners, globally by the use of your application, is a hard problem. Ensuring that the data gathered is secured, is yet another problem. And of course, the analytics and analysis of that data are key for your success, but should be offloaded from your development teams. Many vendors deliver these capabilities and again they can be purchased for pennies per user.
Elegant Integration
When looking to stand up a new capability, the quickest way to deliver is to wire together other capabilities. In the past we would use Service Oriented Architecture to wire up capabilities. But today, we can use any number of vendors that deliver codeless integrations with any number of SaaS vendors. These capabilities run at a scale and a distribution that cannot easily be matched with your own teams. These integrations can simply bring together the capabilities that your offering needs, without the overhead or headache of writing yet more software.
At the end of the day, there are so many ways to deliver software without having to write any code. Elegantly using integration tools and finding SaaS vendors that help you get to market faster, while you concentrate on what makes you unique and different, will allow you to meet the needs of users more quickly and efficiently than was the case a few years ago.
1 Tip:
The software you create should further your competitive agenda, and if it is not key to fostering your differentiation you should acquire it from somewhere else.
Thank You
Jim ‘The Designatic’ Tyrrell