Caution - Tech at work - Exciting time ahead
It's just too tempting to try to loudly think what's coming in technology in near future (especially in cold November/December lazy time while others are busy in Thanksgivings planning). And fact that we are going through significant transformation - and seeing constant disruption and maturity cycle happening almost in no time.
While this is no way any exhaustive list but probably would represent mindshare of application architects/developers/product owners of today (agnostic of technology stack):
- Device Integration: Finally networks and protocols are maturing to make IOT reality. However this is a different skill that developers need to learn. Interesting point is - device integration is NOT new - but was important for niche set of product companies. Today - it's becoming more common and slowly coming mainstream.
- MicroService Architecture Pattern: I think we are distinctly in the era of transformation from traditional layered architecture to service based architecture. While webservice / SOA was in existence for years now, the notion of "microservice" pattern is new and becoming more relevant because of it's apparent simplicity in management and organization alignment standpoint. However - make no mistake, this will present it's own set of design challenges in front of developers.
IMO this is another such concept which will excite a developer immediately - but intricate challenges (like orchestration, performance, security etc) will keep them thinking.
Surely open source will play a big role here ... - DevOps As a Service: It may be no brainer for hyper-scale companies but I think finally it's making its way to real mainstream as barrier to CI/CD is lowering. Adaption of Jenkins type tools coupled with container technology will make a small software vendor deliver more integrated outcome.
It's happening today and we will see more of "As a Service" devops by companies as well as open source github. - Language and Ecosystem: I think 2015 was largely an year of Javascript all the way from client to mobile to server. 2016 probably will be even more with some consolidation and refactoring with introduction of ES6 (a major upgrade). However it will probably make its position even more solid.
Same time Python, GoLang and Swift are also in the race. Add new c# and Java frameworks coming out.
I think developers will extend their love from one language to multiple and have to think "framework" more than syntax.
As you move from end to end development to API / Microservice based stateless architecture, usage of language / framework becomes narrower and little bit different. Because of similarity of pattern, you get to learn best practice from other language and implement into the one that you are using. Also for specific function, you can use a different language (a.k.a technology) side by side.
Simply put, we will see mix of languages in same project / architecture driven by performance, open source availability and obviously developer choice + Org Standard. But while developer choice and org standard use to be more decisive, I think it will change significantly as developers will embrace multiple languages. - Mobile and more Mobile : Every study shows mobile will be the king - some e-commerce companies even shut down their web presence in favor of mobile. The bar is rising higher and higher every day in terms of UI and no-nonsense user experience (as user's attention span is reducing every day).
While that's exciting, it brings low level challenges for developers around performance, high availability, responsiveness (form factor and low bandwidth areas) and offline operation. There is some sort of chaos in design patterns mostly because of lack of understanding of detailed use cases by sponsors. I expect in next year or so things will settle down to some best practice for mobile development standard mainly in terms of use cases (minimum user expectation) and probably open source libraries around those. But in any way, developers will start using those best practices. - Cloud and Container: Cloud is a reality today and slowly marching towards next level of maturity. Probably the most prominent sign is AWS Lambda working in sync with API Gateway. Public cloud technology and features are advancing so rapidly along with ridiculously low TCO, private cloud almost would become irrelevant (except probably some compliance or security concern).
Add container in the mix to make the move much more simple, less risky and centralized compared to every one solving their problem. Again - open source tools and "as a service" model will lower the barrier even more. - Analytics / Big Data: Data capture is becoming de-facto standard and almost omnipresent. The platform will handle that. I think in 2016 we will see predictive models showing up that makes real sense (we are seeing few signs of that already). However I think we are still sort of working our way on data capture side of the story while slowly putting our arms around analysis part. Expect that to be main stream in next few years and become "as a Service".
- Agile and Scaled agile: While not technology but agile deserves special mention because of it's strong co-presence. This has (and will continue to) moved from project delivery methodology to a way to run organization. I think what it does well is identify "crap" early and sort of force people eliminate those. I think it will do that more often in all layers of the food chain.
Overall, what's coming up in next few years is exciting. Surely we have toys in hand which can conquer the world. It is a very high expectation and high quality delivery game and much of the bar is raised systematically. So lot of work will go to frameworks, unit test methodologies etc.
Thanks, Rahul for your simple articulation of the disruptive technologies. I reckon "Automation of Operations/Customer Care Center using Robots/AI" is another technology change. Automobile manufacturers, healthcare and power generation industry had been using "connected devices" even before IoT went mainstream. One of the leading truck manufacturer uses embedded device, mobile SIM network and Java based microservice for routing and monitoring the trucks. Re-engineering the existing architecture with microservices and API has to be carefully designed from the angle of maintainability and future value. Traditional, established software products are now driving towards lightweight, cloud based platforms. Nevertheless, traditional players are yet to release their "containerized" form factor and their support for Continuous Integration is limited.
Great thoughts Rahul. In my view AWS and IBM BlueMix are big enablers for most of these.
Thanks for sharing very good information