A few decades ago, software development was the strict domain of tech companies. Today, more and more organizations are moving toward creating their own in-house software divisions and teams of developers. You can see this trend across various sectors, from restaurant and supermarket chains to shipping, banking, and healthcare.

Photo by Mikhail Nilov on Pexels.com

Companies that have embraced the age of software have thrived. Some examples that come to mind are Philips, a leader in the health-tech industry, and Walmart, the world's largest physical retail store. Those that haven't adapted to software have either died or are struggling to stay afloat.

But there's more to becoming a software development company than bringing in a team of developers. Organizations need to have processes, practices, and culture that create the right chemistry between software developers and people of other disciplines and to make sure they maintain their cohesion as software continues to play an increasing role in their operations. And they also need to make sure that they can continue to innovate and stay up to date as the ever-shifting software development landscape continues to evolve.

If you're a developer looking for pastures new, here are a few things to look for when considering working at a new company. Alternatively, if you're a senior developer at a company, here are ways you can improve software development and culture at your organization.

Software hackathons and dojos

Software developers often get caught up in daily tasks, project deadlines, and software architectures and platforms they've been working on for months or years. The rush of meeting the next milestone makes it hard to explore new grounds and possibly discover new ways to tackle future problems the company will face.

To address this issue, software companies often organize "coding dojos," programming challenges that can be tackled individually or in groups. Coding dojos are meant to be fun and competitive, but they also serve to create synergies where developers from different teams work together and learn from each other.

"Most people that attend love programming. And the things that sometimes make programming less fun, like deadlines and meetings are all purposely absent in a dojo," said Mark Spanbroek, a software engineer who has been organizing coding dojos at Philips. "Having fun together, eating dinner together, programming together, and learning new skills together also creates a kind of kinship that lasts longer than the events themselves."

Philips makes its coding dojos available to its own developers as well as outside participants. The events include some perks such as free dinner, and the timeslots are varied to make sure everyone has a chance to try their skills at the competitions.

"In the beginning we mostly tried to come up with fun exercises to hone skills from Extreme Programming, such as pair programming, refactoring and test-driven development," Spanbroek said. "But we also introduced people to other programming paradigms such as functional programming and logic programming. And there are also exercises where we introduce a programming problem that needs to be solved with a seemingly absurd restriction, for instance, to disallow if statements."

Programmers work on the challenges in pairs, which creates the ground for people to experience new ways to think about and tackle the problems. Sharing learned concepts is an integral part of the experience. At the end of each dojo, the organizers invite the participants to share their experiences and things they've learned.

Later on, the experience is transferred to the workplace.

"I believe that in our profession as software developers, it is essential to keep learning and to have a broad perspective," Stefan van den Oord, former software architect at Philips and co-organizer of coding dojos, said. "This allows you to develop a better understanding of the field. You will develop a better intuition and you will start to see commonalities and principal differences, for example on programming languages and frameworks."

The challenges can be any practical application, from bowling score calculators to elevator control and maze navigation.

"A puzzle is a limited-scope story that stands in for real-world customer requirements. We try to choose something simple enough so that it's easy to explain, yet complex enough that makes it fun to solve," said Ben Bierens, senior software engineer at Philips and organizer of coding dojos.

The challenges also include special restrictions to encourage the participants to think out of the box.

"The purpose of the challenge is to draw attention to a particular aspect of software engineering in a direct, hands-on way," Bierens said.

Most of the challenges were framed to provide developers with fresh tools and practices to apply at their work. In addition to developers, the events also attract people with other roles, such as testers and product managers. This provides the opportunity to bring fresh perspectives to the challenges and helps developers expand their network beyond fellow coders.

"I like to think that making programming fun, learning new skills together, meeting new people is what helps to create a culture," Spanbroek said. "I personally have had a lot of benefits from organizing coding dojos. I learned a lot about the merits of functional programming, what mob programming is and when and how it might benefit a team, why test-driven development is so important when learning a new language, etc. These were all subjects of coding dojos, and we gained a deeper understanding because there is no better way to learn than through teaching."

A software-savvy leadership

Native software companies are founded and run by software engineers. But companies that operate in another industry must overcome several obstacles before they can make a full transition to the digital world.

The best example, perhaps, is Walmart, which has managed to maintain its edge in the market in the age of domination by Amazon and eBay.

Walmart's success is partly due to the company using its vast financial resources to make strategic acquisitions in the tech sector and recruit a roster of talented software, robotics, and machine learning engineers.

But hiring software developers alone does not guarantee success. Software needs a change of culture that goes all the way to the top of the organizations. Following its high-profile acquisitions, Walmart appointed software engineers and entrepreneurs to high levels of authority, including former Jet.com CEO Marc Lore as CEO of Walmart U.S. ecommerce and former Bonobos CEO Andy Dunn as the SVP of Digital Consumer Brands.

Philips, which has had a tech-focused history, has also adapted its leadership to reflect the growing role of software in its business. In March, the company hired Shez Partovi as its Chief Innovation and Strategy Officer. Partovi joined Philips from Amazon Web Services (AWS), where he served as Worldwide Head of Business Development for Healthcare, Life Sciences and Medical Devices. In that role, he was responsible for the global AWS go-to-market strategy, charting the path for customer cloud transformation, and the adoption of artificial intelligence and machine learning.

Having software-savvy people at high executive levels can be a defining factor in helping a company transition to a digital culture and help it remain a competitive software company.

Collaboration culture and tools

As software permeates every aspect of operations and software teams grow in number and size, organizations must find tools and practices to facilitate collaboration among developers. A good software development infrastructure can have the benefits of improved transparency, better knowledge sharing, reduced wait times, higher reuse of developed components, all of which contribute to higher software quality and faster delivery cycles.

At Philips, this goal is achieved through "InnerSource," a program that aims to create an open collaboration culture by establishing a cloud-based and low-friction modern environment for enterprise software development.

"The InnerSource program in Philips is a decentralized initiative where teams and stakeholders from all parts of the company participate," said David Terol, program manager for InnerSource. "There is a small dedicated team from our Chief Technology Office, where Philips Software Center of Excellence resides, and Information Technology groups which help to catalyze the initiative and set up required infrastructure and guidance to support the growing community in Philips."

The InnerSource program covers a wide range of activities, including education, people development, and awareness creation, as well as setting up and developing infrastructure and services to support the needs of the software community. The managers also take an important role in coaching teams on best practices. The growth of the InnerSource program speaks to its positive impact.

"The InnerSource program is growing rapidly doubling the size every few months over the last 18 months," Terol said. "We have a solid platform of choice for open collaboration which includes projects from all over the company."

Philips shares the results of the InnerSource program in its yearly Global Software Excellence Conference, this year held virtually in June. The online conference attracted more than 1,500 developers, technology experts, R&D/business leaders, and software enthusiasts across Philips's global operations. The event included keynotes and discussions on software architecture, artificial intelligence, and data science, as well as booth session and workshops where developer could roll up their sleeves and get involved in coding practices.

"Events such the Virtual Software Conference are great channels to share what we are doing and more importantly why we are doing it," Terol said. "That creates the perfect environment to share industry best practices or arrange hands-on workshops where team members from the whole Company can learn and join the InnerSource community."

Since the conference was held, the growth of the InnerSource community has grown threefold in comparison to the previous month. Terol pointed to the hands-on workshops at the conference as an example of how developers found ways to share and exchange experience.

"Given the positive feedback we got, we decided to repeat the sessions during July getting extra 300+ registrations," he said.

Continuous learning and upskilling

One of the key characteristics of the digital age is the accelerating pace of change. Many companies have job roles today that didn't exist one or two decades ago. And many jobs of the past are becoming obsolete. For example, Azure, Microsoft's cloud platform, did not exist before 2008. Today, its services and applications have become one of the key components of IT infrastructure and software projects at many companies.

For this reason, companies that invest in constantly retraining and reskilling their workforce are bound to remain competitive and successful in the long run. One very telling example is AT&T, the largest telecommunications company in the world.

As telecommunications moved from cables and hardware to internet and cloud, AT&T faced a major challenge regarding the 280,000 people it employed, most of whose jobs and skills belonged to a different era. AT&T engaged in an intense reskilling program, spending hundreds of millions of dollars on training its employees for cloud-based computing, programming, data science, and other technical skills. The company's new policy is to engage in lifelong training, making sure its employees continue to stay up to date as the world around them changes.

Training for software is not a necessity for pre-software era companies alone. Even tech- and digital-native companies need to invest in reskilling and continuous learning. Given the ever-changing landscape of software development tools, languages, and platforms, it is important to be in touch with the latest developments and make sure your team of developers (and non-developers) will be able to take advantage of innovations in the field.

"If we compare the most popular programming languages from today with those from five or even ten years ago, we will see clear differences. This means that in order to stay up to date with the latest technologies and trends and relevant in our job, software engineers need to continuously advance and build new skills," said Lena Hilscher, Competency Consultant in the Software Center of Excellence at Philips.

Continuous learning is not only essential for software developers but for anyone who is connected to software ecosystems, Hilscher believes. "Digital skills and a continuous growth mindset become essential to every employee no matter of the function nowadays. All of us have some connection with software, somewhere. We all use it, it's a part of our everyday lives," she said.

To address this need, Philips launched a digital learning platform that enables employees from different sectors of the company to enhance their skills or learn new ones. The company also launched a global learning ambassador network that encourages employees to develop educational content on technical topics and promote a learning culture.

According to Hilscher, 2,000 employees signed up to the learning platform in the first two weeks, and there are currently more than 8,500 engaged learners across the organization. Part of the effort involves initiatives in which developers and other digital experts share their knowledge and skills with employees from other functions. Another initiative is rotational programs in which Philips employees from one department spend months in other departments, where they get to learn how other disciplines work. This provides them with the opportunity to share and gain experience from those fields and also provides better opportunities to find ways to improve processes with software.

Hilscher herself did a stint in the HR department as part of Philips's rotational program. "I had no clue what to expect from the move to HR. In the end, it accelerated my learning journey a lot. I got to work with people I usually would not work with—that helped also in understanding differences and acknowledging the differences and strengths of each other. Furthermore, it provided me with valuable insights into the world of enabling functions and how this all works together in a large corporate," Hilscher said. "I personally believe this can help a lot to reduce silos and understand each other better no matter of the department/function/area/background."

Article source: https://bdtechtalks.com/2021/08/26/good-software-company-traits/


This free site is ad-supported. Learn more