2018 has been great so far for developers. With cloud automation CI/CD has become the focus. A major chunk of that scripting work is to be done via the script or code. How a developer would grow into the current role defines his/her ability to quickly adopt the ever changing world. Gone are those days when knowing only the ASP.NET and ADO.NET would get you a job for couple of years. No need to learn additional new technologies back then. Now it is just the pole opposite. Absolute process of learn and unlearn would keep you relevant in the market. As a close observer to the enterprises on how they are growing and thinking around modernizing are key to my thinking of year 2019 for a developer,
Web is the clear winner
Web is the way to go. It is time tested again and again with its many rivals. Web Application is definitely less cumbersome when it comes to the maintance and deployment. The reach is key to the current market. To reach more people you need to have less dependencies on the user devices. One should not be forced to install and update an app every time there is a change. The change is evident, hence make is simple for end users. An app is like a hotel room – you leave the room to come back to see it is being done. Freshness is the key to success. Hence you observe the frequent UI changes which is adding the features to the applications.
API is inherent
With web based applications API also becomes the key to the collaboration. API enables enormous avenue to extend beyond the Web Applications. You may have a Web based application but there are quite a lot who also wants Mobile Phone apps. API would then give you the ability to seamlessly control the business process. UI changes but the business rule remains the same. Today is it iOS and Android – tomorrow it might be something else. API would give you a breathing space to think more around enhancing and less on compatibility for various platforms. This design success of API also contributed to the popularity of the web.
It is Nano-services not always Microservices
Microservices is undoubtedly the winner but it is not a silver bullet to every problem. May be you need an API – at the most a Nano-services where APIs can be deployed independently. A Microservices design is really complex and every API holds their own databases and sandboxed. A typical Microservices is meant to deal with very large userbase, unpredictable burst in nature. One of the solution design mistakes most of the team is doing today is to convert their legacy applications to Microservices. If you have one single database and fixed number of users think about Nano-services.
Conceptually Microservices is being defined by Martin Fowler https://martinfowler.com/articles/microservices.html
With every cloud vendors adopting container it is obvious that developers would think around how applications can be deployed and distributed. It is not just the container, emphasis is on how the container orchestration would fit into the game. Kubernetes seems the default to many applications teams as of today as well to the major cloud vendors. RedHat is also gaming for their OpenShift. Let me be very clear that the container is a developer’s game and is part of the CI/CD. So if you are a developer – watch out this space.
Old wine in a new bottle – good that it is now recognized widely. The importance of having automation is not just the headache of a developer but it is now in the charter of the organization. This translates into the budget allocations and focus from the day one.
ThoughtWorks Technology Rader
Keep watching the technology trend here https://www.thoughtworks.com/radar/
Happy coding and welcome 2019.