Building and Managing Competitive Software Teams – Part 3 of 5
Part 3 of our multi-part post showing how David Ward and his team at Telegraph Hill are changing the way IT gets software “Done”.
- All companies must become skilled at building and consuming software.
It doesn’t matter if your business is digging coal out of the ground or building technology — your business now runs on software. Your interactions with your customers, suppliers and other stakeholders occur via software. Increasingly, we’re seeing companies that never thought about software before confronting the need for entirely new skills across the software spectrum. We don’t see this trend ending any time soon.
Companies are finding the need for product managers or business process analysts who have a deep understanding of end to end business processes in their industry and who are able to give concise, accurate specifications to their software development teams. This requires cross-domain knowledge, the ability to transfer knowledge in one area to an entirely different area. It’s like asking someone to be an expert at software development and also to have a medical degree. And then a finance degree. And then an advanced math degree. The intellectual labor has to be divided up but the trend is that digitization is demanding companies to increase their skill sets and open themselves to new worlds.
- We now live in an “app culture”; this means fast paced releases with smaller, self-contained deliverables.
The product life cycles of software, and many of the devices that deliver it, have decreased dramatically. The days of huge, multi-featured applications downloaded and installed on local desktops is vanishing. These behemoths are being replaced by much smaller, mobile, distributed apps that fulfill a single function. This change has given rise to the term app culture.”
It means creating deliverables much more quickly. It means shorter timelines on products that must deliver their value quickly within a narrow window of opportunity. The app culture entails moving targets that, nonetheless, must be hit quickly and accurately.
- Companies now more than ever need to merge architecture, development, data and QA resources on co-located teams.
The Agile approach posited that if you want to develop software rapidly you need to move away from a functional matrix approach. It advocated bringing all of the key resources necessary for the project together in one, collocated team.
It has been shown that it is extremely difficult to manage software projects with virtual, remote resources or with resources that are matrixed across an organization. When resources to not sit together, when they report to different managers, development becomes far less efficient and timelines lengthen. Advocates for collocation point to the advantage of short lines of communication. The value of collocation, however, is not just in the fact that people can walk over and lean over a desk to talk to a colleague. It’s value is related to the social dynamics of high-performing teams.
- There continues to be a scarcity of talent and it remains expensive.
It is harder than ever to find the right people who can form the right team — and yet it is more important than ever to do so. Companies need to find and retain talent in the domains of architecture, programming, data modeling, and testing. And all of this talent needs to be collocated which is a challenge.
For example there is some top talent available in Eastern Europe, but to be most effective a US-based company must move these individuals overseas. This raises immigration issues and other complications that figure into the time required to assemble the team. At present, the need for speed far outweighs the need to keep costs at a minimum. Forming small, high performing teams, and forming them quickly, is what it is all about in the software development industry. Whether it’s inside a big company or a small startup, the issue of finding the right talent is the most visible trend.
- Non-software companies need to learn software product management.
The whole world is going to run on software. If a process or a company is not already software-dependent it soon will be. Every company must become adept at managing software projects. Whether they have the expertise on staff or whether they contract for it, they generally have a great deal to learn about it. Product management is a key concept because many companies are not necessarily in the software product business. In most cases they’re not. Product management is about the forward-looking requirements for software over a significant period of time.
If you define product management in this way, then all companies that rely on software have to learn the disciplines that are unique to software. They have to learn what platform software means, what infrastructure software means, what their change dynamics are over time, etc. Then they must think tactically about how to build and deploy applications or acquire applications. We are now beyond the point of just cutting a deal with a third party to develop the software and trusting that company to take care of us. That approach is becoming increasingly untenable in a competitive corporate environment.
Please comment here and join us for Part 4 – Risks & Opportunities in the series “Building Software Teams”. If you are facing these types of issues in your organization please Contact us.