Understanding software through open source

The CEO is the senior figurehead of an organisation. Although most have expertise in particular area of the company, their role requires them to understand the entirety of their business and how to get departments to collaborate and be successful.

From legal to HR departments most business-focused content a CEO looks at are familiar – documents, spreadsheets, graphs and presentations. Is this the same for parts of the business focused on software development? Most CEOs would struggle to explain the software development process in their business and open source software.

“Geeks” and “suits”

In recent decades, businesses have changed from operating in siloed departments to embracing more open collaboration amongst them. Software has made it easier to share information and undertake projects in real time or asynchronously, from any device or location with an internet connection. Whilst technology is the enabling agent for such interactions, software specifically is in fact the main means of communication for the organisation and the customer; interactions through apps replacing person-to-person and telephone interactions.

It’s ironic that although there is reliance on software for collaboration, software development teams are often the most siloed departments in an organisation. Software developers and upper management stereotypes of “geeks” and “suits” can suggest that the other group are unapproachable and unable to speak the same workplace language. The sudden rise of software engineering in most businesses has often left senior figureheads behind as they do not understand to build software.

Inefficient communication

The main problem with this language barrier is that it leads to inefficient communication. For example, software engineers are unable to communicate with upper management about what organisational changes would make them more efficient, and upper management are unable to decide what tradeoffs to make when writing software based on the priorities of the business.

Due to poor communication being an ongoing dilemma, there is an increasing appetite amongst senior leaders to understand software development. From a software engineer’s side, encouraging this will make it easier to progress discussions from “why isn’t it done yet?’ to a deeper understanding of topics such as “technical debt”, iterative development and minimum viable products.

Learning through open source

No one expects the C-suite to become instantaneous experts in software development, as it’s a hard and time-consuming skill to master and upper management are busy and time-constrained. Yet business leaders should get a familiar understanding of the basic tenets of software development in order for them to strengthen their communication with software developers and gain an insight into the discipline that is becoming so crucial to their business operations. It can further offer the C-suite deeper insights into their business goals, if those goals are attainable, and the inherent balances between the quality, features and deadlines of any software project. How can they learn about how software development happens in other organisations? A good start is by looking at open source software projects.

Open source development is happening constantly and publicly where everyone from influential industry professionals to student hobbyists work together to build tools and products. The increasing prevalence of open source development is no surprise. Open source software development relies on discussion, iteration and inherent motivation instead of orders, multi-year projects and top-down pressure. Communication is primarily asynchronous. Problems get found, discussed, diagnosed and resolved in public and anyone can contribute. All information gets tracked, stored and archived for looking back on later.

Those in the C-suite who become familiarised with open source software development will find it offers an entirely different insight on their internal applications and entire business. It will enhance the upper management’s understanding of the role of software development in an organisation, but help guide informed decisions on the balances between perfect code and delivering value to customers.

By Mike McQuaid, Senior Engineer at GitHub