Well, the way we build software nowadays changed. Back then, if you weren’t building the Games or 3D demos — building business apps were rather boring, not so exciting job.
You had Delphi, .NET and C++ on desktop apps. Around 100 un-compatible mobile apps platforms. On the web-apps side there were “professional Java Enterprise” with never ending XMLs (that no one understood without reading pages of docs). If you hadn’t read them all you landed probably in: PHP — which was back then somewhere in between Perl and Java.
It was years before Github lifted off :) Open Source back then meant Linux and the GPL.
I guess everything started to change around 2005. Around that time frameworks like Ruby on Rails, Django popped up. For me — personally it was when I read “Practices of an Agile Developer” and “Pragmatic Programmer”. The agile movement and the frameworks made me think: wow! This is everything designed by developers for developers. Very pragmatic, designed to not open the opened doors over and over. It started to be fun. You could have completed pretty comprehensive apps within days
I first heard “Lifestyle development” from one of our devs around year ago. He was arguing that he wanted to get some Vue.js tasks instead of — boring backend stuff. Just so he could share on Twitter what’s he working on :-) First I was pretty much surprised. Then I just thought about all these folks streaming 8h coding sessions on Twitch (with thousands viewers!). Kind of e-sports.
If you need a database you don’t have to be a SQL master: you can just take the Firebase or Amazon Dynamo. Running it on scalable infrastructure doesn’t mean you to set the cluster of servers or black-magic load balancers. The same way more sophisticated services like image, text recognition, recommendations and video-conferencing services are currently provided.
The software is eating the world. The demand for software has never been higher. Modern frameworks and cloud services let you develop, test and deploy really comprehensive apps within hours / days. This is totally unprecedented situation given the computing history. There is the whole developer-oriented market where the Framework developers are getting famous, followed on Twitter and YouTube and the application developer is the new end-user.
If you’re dealing with enterprise systems of any sort (e-commerce, fintech etc) you could argue: well, yes, but professional software is designed the other way. Complex systems requires complex architectures.
This is somehow true because the architectures aren’t getting simpler. The way they’re managed and accessed is. Teams prefer to divide the complex systems into services/micro services — deployed separately to Serverless infrastructures. Avoiding the costly dev ops/maintenance operations in order to provide much more business value, faster and easier. The developer’s experience is more important than ever.
The complex enterprise systems are based more and more on Open Source standards instead of building their own complex technology landscapes.
One of the pretty cool examples is how eCommerce evolved. Have you ever built the eCommerce? Maybe Magento or Hybris? Deploying huge java apps, exploring the domain-specific XMLs? Well now you’d use the Spartacus project, Vue or React front end and simple REST API and deploy your app to Netlify within few minutes. Of course having the full CI pipeline on Github just for free.
Many e-commerces migrate towards the backend platforms that are scalable with pretty cool APIs. Shopify Plus, Moltin, commerce tools or Shopware6 are just few examples. The CTOs simply knew that for the team it’s much easier and effective to built — even the whole set — of small JS based apps around it. Instead of finding the one-fits-all solution
Can you agree with this view? Happy to hear your thoughts!