There has never been a better time to become a software developer. I realise that not all my readers are geeks and this topic may not be relevant to you. So forgive me for a somewhat technical post, but I feel the subject is important to anyone in a technical career.
This post is for those who are wondering whether learning new software development skills is worthwhile. Whether you are in IT looking to extend your influence, or starting out as a developer, or even feeling that you have grown out of the technical world and need something challenging and exciting, this post might be just what you need right now to get started in development.
Big things always start small
In the 1990s, together with a small but talented team of developers, I built a company based around the software products we developed. Those were the heady days of ERP, dominated by a few very big guerrilla software providers. There appeared to be no business sense in developing our own software when there were such massive organisations that did this at scale. What would be our competitive advantage? Surely our products will become obsolete quickly, overtaken by the big players who had many more resources than we did.
Fast forward nearly 20 years and the products we developed are still in widespread use by some of the most significant enterprises in the world. Many of the bigger and established companies we once worked with are no more. Our software outlived our wildest expectations. The technology has changed, the team remains small and focussed, yet every day thousands of people work with the application in their daily jobs. The net impact of this small team over the years is immeasurable.
Businesses can be built on your passion for software
Why is this? How can a small company survive in such a tumultuous environment where innovation happens at lightning speed? There are many lessons learned over the years that can account for this.
But there is one important factor that I believe is an essential ingredient of our secret sauce – the passion of the software developers for their craft. Developers that are continuously moving the boundaries forward and who innovate on the platforms and tools provided by companies like Microsoft. They do this because they love the ability to create useful applications out of thin air and use the best technologies available in history to do this.
Today the opportunity is greater than ever before
Over the years these development platforms have become much more sophisticated. And therein lies the potential power for anyone wanting to take up development as a serious profession. This month Microsoft held their Connect developer conference in New York and I have subsequently spent hours of my increasingly busy sabbatical watching recordings of the sessions, somewhat in awe at the scale and diversity of the technologies on display.
One of the most impressive sessions was Beth Massi showing the new tools to build a line of business applications in Visual Studio. In what amounted to about 20 minutes of actual work, Beth built and deployed a multi-tier application that combined data from SAP, SQL Server, and SharePoint document libraries into a fully functional line of business, a device-independent application that runs in the cloud. The amazing part was that this application works through cloud-based services such as Azure and SharePoint to deliver a coherent end-user experience on any device and anywhere in the world where there is a connection. 20 minutes (and some experience) was all it took!
Developers in this age have several distinct advantages that enable them to exploit the most sophisticated and ubiquitous technical infrastructure in history. The growth of cloud-based services, hosted data, the power of mobile devices, and the billions of devices that are appearing all the time that will ultimately become the IoT (Internet Of Things).
The potential power of this environment is staggering. But you need to know what you are doing to exploit it.
Your potential impact is enormous
The end game is connecting data anywhere to any device and analysing that data to gain insights into behaviors, processes, and the physical world. These ingredients now are making the next wave of technical innovation possible. What was impossible just 5 years ago is now mainstream.
If you are a developer you now have immense power in your hands to make a serious impact on our quality of life. And it is not necessary to become the next silicon valley startup.
As an aside I love the new miniseries “Silicon Valley” that is currently showing – it is packed with geeky humor and is a really clever parody of small software development companies punching above their weight and their enthusiastic ambitions to become the next Facebook, Google, Microsoft or Apple.
Real developers are able to get on quietly with the creative work of building new applications that somehow appear out of thin air on the other side of the world. They can use tools that are in a totally new class of sophistication, tools that incorporate the combined evolution of the entire information age in a form that you can download and work with on your own computer. More than just a hammer to hit a nail, the new tools can sometimes seem like the equivalent of using a nuclear blast to heat a cup of tea. But understand the technology and you can make many cups of tea simultaneously!
What is the secret to becoming a good developer?
There are endless opportunities in this world of abundant technological resources for you as a developer to make an impact.
So what advice do I offer to a developer just starting out to take advantage of this new technological fabric to paint your creation?
- Adopt a mindset of continuous learning – this will be required for you to stay current with the latest tools.
- Adopt a mindset of curiosity – go out of your way to find the wealth of supporting resources that are abundantly available on the web.
- Stop complaining that you are far behind – in this world of technological change we all start at the same zero base with every new generation of technology every 3 years or so.
- Work strategically with the large technology companies – they need you as much as you need them.
- Practice your craft – don’t just read about it. Build sample applications using the latest tools and do it after hours or on weekends if necessary. Like learning calculus at college, you will only “get it” when you actually do it.
- Download the free resources and tools available to you and take the time to actually get familiar with them. This will require an investment on your part but will be indispensable in helping you understand the foundational principles.
- Keep an eye out for real-world requirements for simple applications. The business world is full of needs for such applications. Most businesses don’t yet know what they need – you can help them discover their requirements by building simple prototypes of solutions that you can then refine for them.
- Be prepared to work in teams and consciously develop your collaboration skills. The isolated developer can go far but will never beat a small team who has the advantage of multiple perspectives and diverse skill sets.
- Keep having fun. Your passion for technology will pull you through and keep you ahead. If your enthusiasm is dropping off, spend some time going to a major event or conference where you can get inspired by others. Enthusiasm is infectious. Don’t rely on your working environment to create this for you – it often won’t. Network with like-minded enthusiastic developers that will stretch your capabilities to the limit – this is how you will learn.
It might seem interesting to you that I never mentioned technology skills, in practice, I have found development is more about attitude and passion than technological aptitude. Sure you need to be smart, but you have read this far in the post so I take that as a given!