APPS
APPS
APPS
Software engineering leaders face the challenge of efficiently designing, building and delivering high-value software that customers value. Achieving these goals requires a deep understanding of both business and customer objectives, as well as robust processes for designing, building and supporting digital products.
This is all the more challenging considering how quickly the software engineering landscape is evolving. Artificial intelligence is transforming the way that software engineering teams build and deliver software products, and it’s improving the speed and quality of delivering outcomes. Software engineering leaders must envision the possibilities of leveraging AI to deliver better business and customer outcomes, while also being mindful of the potential risks.
Before determining which software engineering capabilities should be improved and invested in, leaders should first determine how effectively the engineering organization delivers on business and customer objectives.
It is helpful to begin by understanding the software engineering organization’s baseline effectiveness and operational maturity compared to peers. Using resources such as roadmaps to visualise the progress being made can help validate the current direction and help provide visibility into how it compares to peers.
Software engineering leaders must consider the feasibility and value of investing in improvements in engineering practices, processes, tools and capabilities. They must consider the estimated costs of investments, the engineering organization’s ability and willingness to execute on the same, and the level of sponsorship from key stakeholders.
They also face pressure to respond to the hype of the technology market and customer and business expectations. It is important to identify the priorities which most significantly contribute to long-term, sustained value for the organization as a whole.
A key next step is to estimate the impact of software engineering improvements. First, quantify the value of each opportunity: Use financial calculations such as an ROI assessment to understand the potential payoff of your investment and shape the business case for moving forward.
Then, ensure alignment with strategic outcomes: Use key performance indicators or objectives and key results frameworks to demonstrate how improvements in software engineering priorities impact enterprise outcomes, such as excelling in customer experience and improving operating margins.
For each priority in the plan, there are three key investments leaders should make:
Leveraging agile, product management and user-centered design processes in software engineering enables teams to accommodate changing business priorities, understand evolving customer feedback and deliver business value faster. To achieve this, software engineering leaders need a deep understanding of their customers and their challenges.
To promote collaboration across engineering, product and design, software engineering leaders must formally align efforts and contributions to greater enterprise OKRs or KPIs.
Engineering teams must work closely with product managers, designers and customers to refine the backlog and get the work items clearly defined and prioritized. This creation of cross-functional, multidisciplinary teams reduces handoffs and waste in the development lifecycle.
To develop a strong design capability and focus among software engineering teams, software engineering leaders should, for example, incorporate user-centric design techniques, such as design thinking workshops and user research, into software engineering practices.
They might also consider clarifying individual roles and responsibilities, and educate developers on design thinking principles. They should also work with designers to acquire and implement a design system, and deploy a design platform for the entire engineering team, ensuring consistency and governance in the user experience elements and enabling reuse where appropriate.
To develop a strong product management capability and focus among software engineering teams, software engineering leaders should begin by setting the expectation that adopting and scaling agile and product management practices, tools and ways of working is a multiyear journey. Continuously evaluate gaps in Agile, product skills and competencies, and promote opportunities for learning and development. Collect and deliver business-oriented metrics to the software engineering teams to promote data-driven decisions
With business goals and customer needs in mind, the next iterative step is to optimize delivery and execution of high-quality, secure software products. There are a few things software engineering leaders can do:
Software engineering leaders should also improve software quality to lower costs and enhance development efficiency. They can begin by implementing shift-left and shift-right testing practices while supporting developers in adopting a test-first development mindset.
Then, foster a quality-first mentality by illustrating the impact of code quality on business and customer outcomes and by using early quality practices in the development cycle.
Finally, curate and provide access to a comprehensive set of patterns, processes and tools to accelerate quality software delivery, empowering teams to take ownership of quality.
At scale, software engineering teams often work in siloes and can build similar functionality, services and assets, duplicating work. To improve how software engineering teams deliver value at scale, software engineering leaders must iteratively introduce the following practices and approaches.
They should initiate a platform engineering team to develop reusable components, tools, and services that expedite software development for product teams. Then, manage application programming interfaces as products for both internal and external users by appointing API product managers to guide their strategy and improvements based on ongoing feedback. Additionally, create a shared internal developer portal to facilitate centralized governance and visibility across engineering teams.
After completing the first implementation plan, software engineering leaders should move on to the next priority: debrief and iterate. This includes reenvisioning the plan based on evolving goals and challenges, reassessing and reprioritizing investments, and reevaluating and planning based on what is feasible and what will have a significant impact on customer value.
Annie Hodgkins is a director analyst in Gartner’s Software Engineering Practice. She wrote this article for SiliconANGLE. Her core areas of research cover software engineering strategy and governance, including platform engineering, organizational design and change management, agile development and methodologies and hiring, developing and attracting engineering talent. Further insights into application innovation and software engineering strategies will be discussed at the Gartner Application Innovation & Business Solutions Summits taking place June 3-5 in Las Vegas.
Support our mission to keep content open and free by engaging with theCUBE community. Join theCUBE’s Alumni Trust Network, where technology leaders connect, share intelligence and create opportunities.
Founded by tech visionaries John Furrier and Dave Vellante, SiliconANGLE Media has built a dynamic ecosystem of industry-leading digital media brands that reach 15+ million elite tech professionals. Our new proprietary theCUBE AI Video Cloud is breaking ground in audience interaction, leveraging theCUBEai.com neural network to help technology companies make data-driven decisions and stay at the forefront of industry conversations.