While there is a broad range of skills needed, this set should be part of any company’s tech-talent list:
- Experienced designers and engineers. As customer experience becomes increasingly important, companies will need to invest in the tech talent to deliver those experiences. These roles often straddle IT and other functions, with experience designers in particular focused on getting at the heart of the customer through ethnographic research, human-centered design, and rapid test-and-learn cycles with customers.Partnering with experience designers are in-place front-end and mobile engineers who can rapidly translate exceptional designs and digital experiences into working software that can be tested and iterated. This approach to rapid prototyping places a premium on user input and flexible software that can respond quickly to user needs.
Experience designers tend to wear multiple hats, from driving insights through customer research to running rapid test-and-learn programs in the field. They should have considerable experience creating and iterating products or services based on real customer interactions (i.e., not just data) and translating customer research, insights and ideas into solutions using design tools such as personas, empathy maps, and customer journeys (to name just a few).
In our experience, what separates a good from a great experience designer is the ability not only to focus on producing a sexy user interface but to be an advocate for the customer in solving customer-experience and design problems. This is someone who is motivated by customer empathy and can collaborate effectively with both product and engineering teams.
- Scrum masters and agility coaches. “Agile development”—where software is rapidly developed in iterative cycles—is a core capability that drives the technology engine. Making the agile approach work relies on having “scrum masters” to manage teams during the development process. Scrum masters need great leadership and enabling skills, but also a deep understanding of technology and an ability to rapidly solve problems. As important as the scrum master is at the team level, to scale the agile culture across the broader organization, you need agility coaches. Think of them as Olympic trainers for the organization. They have strong communication and influencing skills, can create and roll out plans to support agile processes across the business, and put in place measurable key performance indicators (KPIs) and metrics to track progress.While it’s desirable for scrum masters to be certified, it’s more important that they understand the values and principles of agile (e.g., value-focused delivery, adapting to change, continuous improvement, et cetera) and have at least two to three years’ experience training, coaching and working to build high-performing agile teams. They are people leaders with the ability to deal with conflict, influence ideas, and have empathy. It is helpful for them to have baseline knowledge of software engineering best practices to appreciate what goes into building high-quality software.
Strong agility coaches have deep experience working as change agents to transform how an organization thinks and works. To be successful, they need to be comfortable coaching people across different functions and levels of the organization, including senior executives. They are focused on impact and build organizational muscle around measuring progress.
In our experience, what separates a good from a great scrum master is the ability to be a great people leader. A good scrum master protects the team from distractions, but a great one finds the root cause of distractions and eliminates them. For an agility coach, it’s building capabilities to help an organization create sustainable change.
- Product owners. This role is often referred to as the mini-CEO of a digital product. Product owners clearly define the vision of a product or service, are fully empowered to make decisions that deliver high business value, and are laser focused on KPIs to track progress. The product owners work directly with developers, engineers, experience designers, and other stakeholders in the business on a daily basis. They need to understand technology and user-experience issues in order to make the right tradeoffs in deciding on the product or service features to develop.Product owners are not just proxies for the business-unit leader to manage the project. They need to be empowered to make product decisions. Product owner can often be the hardest job on an agile team, and those who do it typically require four key skills to be successful:
- Vision: they can establish strategic vision for a product and align the organization around a clear view of what’s required to achieve business success.
- Value focus: they possess a mini-CEO mind-set with a focus on delivering measurable business value, delighting the customer, and optimizing ROI.
- Decisiveness: they are natural problem solvers who make decisions and prioritize initiatives using data and facts rather than intuition and feeling.
- Product management: they typically have three to five years of strong product-management experience and a good sense for the intersection of business, user-experience design, and technology.
In our experience, what separates a good from a great product owner is someone who has a strong sense of the complete product or service vision (and doesn’t get lost in the details of its parts), the ability to inspire and influence people to deliver on the overall vision (not just his/her piece of the project), and is focused on enabling the team by, for example, helping it make the hard product decisions.
- Full-stack architects. These roles are particularly important in a more complex and rapidly changing technology landscape. The full-stack architect needs to be fluent across all technology components that include the web/mobile user interface, middleware microservices, and back-end databases, and have a “spike” (i.e., bring deep expertise) in one or more areas. As businesses increasingly engage with external ecosystems of technologies, full-stack architects can provide expertise in third-party packaged software, fluency in multiple best-of-breed technologies, and experience with multiple-technology integration strategies.Full-stack architects are generally hands-on developers with at least eight to ten years of software engineering experience and deep expertise with one to two core programming languages (e.g., Java, .NET, Node.js, et cetera). They also need to be knowledgeable and fluent across the different “stacks” of a large-scale software system (e.g., front-end user interface, middleware integration services, databases, et cetera). They are effective at linking the architectural vision with the business vision and building solutions that focus on business value, not just technical excellence. They have a deep understanding of how an architecture will need to evolve to meet changing business goals and like to produce working software as one of the best ways to illustrate a concept. In our experience, what separates a good from a great full-stack architect is not just the ability to provide technical excellence but also to embrace flexibility over building “bulletproof” systems. They are passionate learners who keep up with evolving technologies and techniques and are willing to experiment with them to test what would work for the business.
- Next-gen machine-learning engineers. As companies move toward machine learning, they need a new breed of software engineer who knows how to use data, can program in scalable computing environments (e.g., Cloud, Hadoop, et cetera), and understands how to refine the algorithms in their software code. They are fluent in distributed computing techniques, have experience using different machine-learning algorithms and applying them effectively (e.g., choosing the right model, deciding on learning procedures to fit the data, understanding different parameters that affect the learning, et cetera) and understanding the trade-offs with different approaches.They work closely with customer-data managers in particular, who use machine learning to collect and rationalize the massive amounts of data—from social media to purchase activities—to create comprehensive 3-D pictures of customers. They have a strong computer-science foundation to understand how to structure data and make efficient use of computing resources (e.g., memory, CPU, et cetera) when designing and implementing machine-learning algorithms. They also have a baseline knowledge of probability and statistics (e.g., regression, probability theory, et cetera) techniques as well as experience in data modeling and evaluating data sets for patterns, trends, and predictability. This capability is important since machine-learning algorithms rely on these data sets to learn and iterate.
What really makes a great machine-learning engineer is the ability to understand how an idea goes from concept to delivered insight. Throughout this process, a great machine-learning engineer not only focuses on the technical solution but is also effectively a thought partner to the business on shaping the problem to be solved, the insights generated, and the continuous learning required to improve the solution.
- “DevOps” engineers. With the advancement of cloud computing and infrastructure as programmable software, infrastructure resources (e.g., networks, servers, storage, applications, and services) can now be rapidly provisioned, managed, and operated with minimal effort. To build and take advantage of these technology advancements, organizations need DevOps (the integration of development and operations) engineers who have the experience to navigate a rapidly changing development and cloud-infrastructure computing ecosystem. They can build out tools and automations that provide development teams with self-service and on-demand access and infrastructure resources at the click of a button (compared with today’s traditional multiweek and months-long process to provision similar resources).DevOps engineers are generally software engineers with a passion to apply the same craftsmanship to IT infrastructure and operations. They typically have five to eight years of software-engineering experience and have now ventured into infrastructure-automation technologies (e.g., Chef, Puppet, et cetera), cloud platforms (e.g., AWS, Azure, et cetera), and more advanced containerization technologies (e.g., Docker). Besides technical excellence, DevOps engineers understand how technology serves business goals and are flexible in adapting approaches to changing business needs. What separates a good from a great DevOps engineer is the ability to role model the collaborative DevOps culture, think about infrastructure, and partner with the business to link solutions to real business problems.
Chosen excerpts by Job Market Monitor. Read the whole story at The new tech talent you need to succeed in digital | McKinsey & Company