I asked this question on Hacker News last week to understand the shifts in software development over the last 20 years. From 1995 to 2015, there has been a dramatic change in the developer ecosystem. I thought I’d summarize all the changes and try to make sense of the trends. In this post I am only going to focus on the identification of the trends, as opposed to the analysis. I would love your thoughts on trends I may have missed.
3. From waterfall approach to development to Agile: Most early software development was based on Requirements -> Design -> Architecture -> Development -> Testing -> Release. Now with agile methodologies being followed by many development teams, we are seeing a rise of faster release and in many cases daily releases.
4. Client-server application development to Web apps to Mobile apps: The overall changes are from PC (dekstop / laptop) client software to web applications and now to mobile applications. We have gone from native clients to browser based apps back to native mobile apps all over again.
5. Phenomenal rise of consumer apps, thanks to mobile : Personal finance (Intuit), to 1+ Million consumer apps thanks to mobile. PC’s were largely (90%) used for “work” with few consumers having home PC’s. The home PC’s rose thanks to the web, but now everyone has a mobile phone. Which has led to a phenomenal increase in # of consumer apps, not just business or productivity apps.
6. Increased availability of application level API’s: From providers such as Facebook, Twitter, and others on programmable web. The abstraction of core API’s from just Operating system SDK’s to application level API’s has made the move for apps to be built on the next level of the application stack.
7. Ease of looking up coding examples, tutorials and sample code: Thanks to Stack Overflow and Github, there are many more samples, code snippets and examples that developers can use to be more productive quicker.
8. Rise of coding / hacking schools: From no programming skills to employed developer in less than 6 months. Most developers, 20 years ago, needed to have an education in Computer science, before they could code. With the rise of frameworks and libraries, along with higher level languages, there has been a significant rise in number of coding schools and bootcamps to get anyone with any degree be a developer in less than 6 months.
9. Increase in the number of indie developer (solo): With the rise of consumer mobile apps and mobile games, there has been a significant rise in # of solo developers who are able to make a living based on building applications for niche audiences.
11. The rise of DevOps: Developers are now being asked to not just build and architect, but also release and push their apps to production. Roles that were previously performed by specialized system administrators and release engineers are now performed by the software developers themselves.
12. The fall of software testing: More developers are also being asked to test their own code and software applications, instead of handing off the testing to a separate team.
13. The changes in app distribution – App Stores: Discovering, installing and using apps is a much more smoother and easier process now than before thanks to App stores.
14. The availability of Cloud infrastructure for app development: The biggest change for developers over the last 10 years has been the rise of AWS and other cloud services, which allow developers to provision, build and deploy instances and machines much faster than 20 years ago.
I’d love your feedback on the relative ranking of these trends and if I have missed any trends I’d love your feedback on those as well.