LinkedIn link GitHub link

New series of articles: Embracing software development

First article published of the new series: “Embracing software development”. Lessons for nurturing a flourishing software development environment as the foundation of modern business.

Every company as a software company

Team collaboration

In today’s economy computing is ubiquitous and a core part of every industry. No matter what business a company may be in, chances are it relies heavily on software to realize its objectives. Hence, it is often said that every company is a software company. Besides the catchy phrase, this somewhat provocative argument holds significant truth.

From engaging with customers to streamlining operations, providing a good employee experience, or rethinking the workplace: companies reflect on software all the time for all kinds of goals. It is part of their normal routine. But there is one scenario that often marks a significant turning point for companies: making their own software.

When a company decides to make its own software, the company needs to trust its own supply chain and operating model. For companies without a focus on software development, this demands a strong sense of identity and purpose.

The return on the investment must justify the risk taken. The software product obtained must be top-tier and last long, built and maintained reliably. Even if outsourcing comes into play, this entails recruiting qualified professionals.

In such a scenario, chances are that managers, if not entire teams, are thrown way out of their comfort zone when tasked with the delivery of the software. The expectations are high, the expertise may not be there, and the company structures may not be fit for purpose. The challenge can be overwhelming. The cultural shift is essential: the company needs to think and act as a software company.

What does this mean in practice? Here go two basic principles that may sound obvious, but committing to them often implies a profound cultural shift:

  • Software companies are product-led
  • Effective software development requires engineering practices.

Being product-led entails taking pride in building a community around the product. It also implies not being afraid to iterate and experiment for the benefit of the final result. Some shielding around the product and its development team is key for success. This can create friction by altering the balance of forces within the organization. The new equilibrium will be hard to accept unless the company sees the software product as a first-class citizen.

Setting up a software project that implements engineering practices is no minor challenge. Management experience in projects of different natures does not necessarily pave the way. A well-educated workforce and effective leadership are essential. Besides, technology and best practices evolve constantly. Therefore, continuous training and a predisposition to embrace change are core elements of success in the long term.

With this article, Mirai Solutions inaugurates the LinkedIn newsletter “Embracing software development”, where we will share our passion and explore the challenges of this fascinating endeavor, putting at your disposal our know-how and extensive project experience built over many years of supporting companies developing software.

The newsletter’s purpose is highly practical. We will elaborate on day-to-day aspects of modern software development projects: project management frameworks, best practices for code quality, leveraging open software with security-awareness, test strategies, continuous integration and continuous delivery, DevOps, etc.

Aspiring developers wanting to grow their skill set, senior professionals willing to drive digital transformation in their organizations and ultimately anyone involved in software development who cares about what they do and feel the need for guidance will find this series useful.