The future of software development. Are you ready?
15 years ago, Microsoft released its first version of Internet Explorer. In 8 years, the mobile devices are going to take over television, computer, phone, gps, internet, console… Everything will be integrated in a single device. Internet connectivity will be universal and inexpensive. The 80% of the applications we will run will be web browser based.
Now, I may be very wrong with my previous prediction, but for those of you who think I may be right, how prepared do you think you are for this next challenge? I’m not saying that there is reason to be afraid now, or in a rush to learn new technologies, but if you think that you are going to be developing software in 10 years, it maybe worth asking yourself if you prefer to be leading what is probably going to be a revolution, or if you prefer to just be one of the developers that will have to go through a technological transition. In case you prefer to be leading, here you can find my personal suggestions to start getting ready.
1.- Get agile!
I already wrote an article where I expose my conviction that one of the current big changes in software development is the process, we are moving from waterfall to agile, in the future, in an on demand environemnt, where packaged applications are going to dissapear, being able to start deploying value to your customer ASAP is critical. Companies with a waterfall mindset will find it difficult to keep up with an environment which is going to demand the development team to be changing continuously.
From a developer point of view, this means that we need to start getting used to some engineering practices as TDD, continuous integration, pair programming, refactoring…
From an educational point of view, there are several great books, from which I would recommend the ones from Mike Cohn, Kent Beck and Martin Fowler, for those who prefer some more formal education, it is also available a certification program for the Scrum process, which is one of many different agile processes.
2.- Web browser development.
In the future, for an average user, the browser is going to be the only application he is going to use, how comfortable are you developing applications for it?
I think the following are the main areas where all developers should have a basic understanding.
- CSS
- Javascript, AJAX techniques, Frameworks as JQuery, Dojo…
- HTML
- HTTP
So why don’t create a web application just for fun?
3.- Mobile development.
We are actually not so far from an unique mobile device that integrates all our needs, currently new products as the iPhone, Android phones or windows phones are on their way to achieve it. Being able to develop applications for them can make a huge difference in you CV.
It is also important to consider that getting used to mobile development will also give you some experience on developing for an tactile and small interfaces.
4.- Security, Integration and Cloud computing
This on demand scenario I am talking about, is going to rely on a heavy server side load which the user is going to access through the Internet.
As developers we have the challenge to adapt our applications to this kind of scenario, the main challenges are;
Security. All the personal data from all the users is going to be stored in central locations which are transparent to the final user, being able to secure them is going to be fundamental, having a basic understanding of authentication, certificates, encryption, digital signatures… is going to play a major role.
Integration. The users will access a number of services and will expect them to interact with each other, to accomplish this, as developers we must be able to integrate our applications with third party applications with very small effort.
Cloud computing. Cloud computing means that the users are gonna access the applications as services where the backend infrastructure is going to be transparent for them, being able to have a basic understanding on cloud computing and its design challenges is going to be a key factor.
Related posts:
![[Google]]( http://www.makinggoodsoftware.com/wp-content/plugins/easy-adsenser/google-light.gif)
How true! Cloud computing is something I need to learn more about. With google apps and such, it’s going to be the next big thing.
ESN
15 Feb 10 at 4:49 am
Hope you are wrong. I like my 50″ TV but I don’t want to carry it around with me.
Seriously though, you are aiming at the wrong things. Do you REALLY think that in ten years we’ll still be using JavaScript / AJAX / HTML for new projects?
Jim Danby
16 Feb 10 at 7:57 am
Hi Jim!
Yours is actually an excellent point… I agree with you that we are going to use something quite different from what we know now, but because all the legacy code, I also believe that they are just going to be the an evolution of the current technologies (HTML / JavaScript and AJAX), so being used to them and keep in touch with their new versions is going to be something necessary.
Just to illustrate my point, think about HTML, is being around for 15 years now, and it doesn’t look as there is any serious competence… W3C have actually just published the working draft for HTML 5.
Alberto Gutierrez
16 Feb 10 at 10:32 am
Web based technologies are just set to increase over the next few years. Especially with technology like cloud computing that enables users to access their applications via a web browser.
I would love to see improvement in mobile development especially with web based technologies which are still not a big hit perhaps because of screen or keypad restrictions. Tablets or netbooks might be a solution to this.
Kevin
16 Feb 10 at 11:06 am
[...] The future of software development. Are you ready? 15 years ago, Microsoft released its first version of Internet Explorer. In 8 years, the mobile devices are going to take over television, computer, phone, gps, internet, console… Everything will be integrated in a single device. Internet connectivity will be universal and inexpensive. The 80% of the applications we will run will be web browser based. [...]
Weekly round-up: 15 must read development, design and blogging articles - Web Development Blog
19 Feb 10 at 5:40 pm
I totally agree with you. I’d just add another topic: Following standards. I really bealieve that we’re following a movement that leads towards standardized technologies, which has started years ago.
Congrats for the list!
Gregório Melo
1 Apr 10 at 4:10 pm