Modern development - Domo: good software starts with humans
This Computer Weekly Developer Network series is devoted to examining the leading trends that go towards defining the shape of modern software application development.
As we have initially discussed here, with so many new platform-level changes now playing out across the technology landscape, how should we think about the cloud-native, open-compliant, mobile-first, Agile-enriched, AI-fuelled, bot-filled world of coding and how do these forces now come together to create the new world of modern programming?
This contribution comes from Catherine Wong in her role as chief product officer and EVP of engineering at Domo — the company specialises in cloud-based business intelligence tools, data visualisation solutions and data integration technologies.
Wong writes as follows…
I have been in software development for two decades now, working at companies like Omniture, Adobe and now Domo. I’ve experienced everything from the classic startup, to two IPOs (both as an engineer and architect and as a chief product officer), to economic recessions, to leading M&A integrations to managing global teams at massive scale.
Through it all I’ve learned that building a successful product is ultimately much more of a human challenge than a bits-and-bytes obstacle course.
Any company can assemble the best development tools and services, but that still will not automatically guarantee success. If it were that straightforward, we’d see a lot more startups succeed. There are of course a multitude of reasons why building and scaling software is so challenging: those millions of lines of code and distributed bits and bytes are absolutely important… and as tech leaders we talk a lot about those aspects.
But over the years, I’ve seen countless examples of how the art of software development and the human elements of diversity and collaboration are what can really differentiate a product and its speed of response to the market.
Team sport
For the majority of us, software development is a team sport. Our teams have long had crisply defined roles, like engineers (and all of their specialisations), architects, product managers, quality assurers, designers, project managers and technical writers.
All of those are still relevant functions today, but how we enable diversity of thought and experience, as well as how we cross-train for increased empathy and better communication among the team has become more critical than any one job title. It dramatically influences the business impact of the software that’s being developed… and more importantly, on a human level it stretches us as leaders to cultivate an environment of inclusion, innovation and growth.
I could fill an entire book on this topic, but for now I’ll highlight two main questions we should regularly ask ourselves as software development leaders:
- How am I enabling diversity of thought and experience?
- How am I functionally cross-training so that we are able to better communicate and empathise?
On the first question, when it comes to enabling diversity of thought and experience, there are a few key aspects to consider. Hiring and retention practices is one area and constantly improving the inclusiveness of our team culture is another. We also need to address team locations, especially in today’s work-from-anywhere culture — and embracing regional considerations. Product leaders also need to evaluate ongoing education opportunities and develop a system that leads to an awareness of and addresses biases or habits that may be dampening voices within the company, however unintentional these biases may be.
Women in tech
There’s one more, very simple thing we can all do: ask those who may be more introverted or in the minority how we can improve things. Seventeen years into my career, I experienced a manager actually asking me how he could make things better for me, as a woman and minority among the group… and it was a profound experience. I’d never noticed that no one had directly asked me this question until he did… and I was so appreciative of that simple, open willingness to ask, listen and learn.
That leader then followed through by implementing changes based off of my candid answers and that transformed our team dynamics and led to the hiring of more diverse employees to the team.
When it comes to functionally cross-training so that we are able to better communicate and empathise, this can be one of the biggest accelerants to transforming a team from average to one that operates in concert, smoothly and where the output is several step-functions greater than average.
There are a few things to examine on this front. One aspect is organisational structure, which is interestingly something that I’m frequently asked by venture capitalists who are working with young companies. They’ll pose questions like: How should I align the different functions (does design report into product management? How much do you emphasise cross-functional squads? While there’s no single right answer, here are a few things that influence the strategy:
- Where is the product in the product life cycle?
- Where are the teams located?
- How long has the group been working together?
- What are the key milestones the business is trying to achieve in the next year or two?
The answers to these questions influence an organisation’s ability to navigate, as reflected in Conway’s Law, when it comes to product experience and infrastructure potentially reflecting the organisational structure.
The career jungle gym
The other aspect to consider is how we promote career growth and encourage exposure to different functions and disciplines.
As Sheryl Sandberg, referencing Pattie Sellers, shared in “Lean In,” I too have experienced the “career jungle gym” (versus the “career ladder”) and embrace it wholeheartedly. Filling a variety of different and seemingly “misaligned” roles throughout my career has given me the language of understanding for those in various positions on my team. I’ve also recognised a higher level of empathy and efficiency among my own team members who have sat in other people’s seats. The speed of a product or company’s common language and output when employees have been trained in multi-disciplinary capabilities is profound, and I tend to find that those teams are also having a lot more fun at work.
I love technology and how rapidly it’s advancing and changing the world. I also believe that our approach to the human side of software development must advance and improve in order to help the technology itself advance and improve.
As leaders, we have the opportunity to enable more diversity and inclusion in our teams and to provide training and experiences that help our employees understand different disciplines and roles within our organisations. When we approach the people management side of software with the same passion and rigor that we invest in the bits-and-bytes, the result is not only a differentiated product, it’s a culture and environment that attracts the best of the best.