"I Learn by Doing" – A Scary Phrase in Software Development

"I Learn by Doing" – A Scary Phrase in Software Development

I often hear people say, “I learn by doing.” Certainly, practice makes better, but in a world moving at the speed of technology, learning by doing can be costly in terms of lost time and mistakes. Would you want a surgeon “learning by doing” surgery on you? I suspect not.

This introduces a bit of a conundrum; you don’t know what you don’t know, so how do you know what you should be “doing” without knowing?

In a fast moving, nimble software company like ours, we are always exploring the latest technologies to improve our products and our clients’ bottom line. This presents a challenge to keep pace with rapidly changing advances in technology while applying sound practices. How can one know what a sound practice is for technology that is not yet widely adopted?

It seems like there is no solution, but there is and it is not to learn by doing. It is learning by architecture and design, then master by doing. Semantically, technology is not changing as rapidly as it seems – the use of technology is. Yes, there are new inventions, however, most of these inventions are the aggregation of other known technologies and collectively form a new technology.

In our world, mobile devices, cloud computing and app technologies dominate. Still, these are not very new technologies. They are advancements in technology that have been around for some time and are aggregated uniquely to form new uses of technology. Take cloud computing and the “new” concept of composable business. At its core, this is using the internet to call applications. Not very sexy when explained this way. Yes, there are new features accessible for more mainstream uses such as pre-built libraries of web services, elastic applications and sophisticated mobile apps. However, the HTTP protocol has been around for quite some time now, and web services are just software programs that can be called using the HTTP protocol (and others). Mobile applications are programs built to run on a mobile operating system and a smaller screen size. These concepts foster a new way of thinking more so than being new technologies.

I am not downplaying these technologies, but it helps to understand that sound practices can be identified and applied to most new technologies even if they have not yet been widely adopted. Understanding architecture and design helps achieve this. As an enterprise software architect, my studies included core concepts for such things as design patterns, system patterns, interface specification design, threading and re-entrance, object and component design, layering, dependency injection, protocols, IDL, duplex communication, polymorphism, brokerage, event and notification models and more. These concepts are the building blocks for most legacy and modern software applications alike. If we can address more of these concepts in education for technology degrees, we would have better programmers and better software solutions. These concepts are taught for every design and development position at our company. When a newer technology is introduced, such as WebSockets, we can apply our knowledge of duplex communication and notifications and apply the semantics for that particular implementation.

Understanding the fundamental concepts and building blocks for such technologies helps to determine if newer technologies are a good strategic decision and implement those technologies without a need for extensive “trial and error” implementations – a.k.a. learning by doing. These are essential core skills required to move at the pace of technology and soundly implement advanced uses for technology. They are the foundation to help know what you don’t know.

Michael D. Croft (@Michael_D_Croft) is Chairman & CEO at Volute Holdings Corporation, parent company to Volute Technologies. Michael has over 16 years of professional experience architecting enterprise software used by world-renowned companies. In 2012, he earned the 40 Under Forty award citing 40 professionals under the age of 40 making an impact on a local or national scale. Michael has been featured in various publications and speaking engagements, sharing his expertise on software development and methodologies.

Learning by doing also ends up costing the customer a lot as they pay for your learning curve. - great article - Thanks! :)

Nice read Michael ! The ability to learn quickly and pickup new technologies makes you more valuable to your employer! Everyone is always looking for great talent that is flexible and adaptable!

To view or add a comment, sign in

More articles by Michael Croft

Others also viewed

Explore content categories