What’s impeding software engineering? – CIO Dive

What’s impeding software engineering? – CIO Dive

Maximizing the productivity of software engineers while upholding company communications is a puzzle tech leaders have long sought the answer to. 

Input from software developers suggests one potential pitfall: Meeting overload and frequent interruptions can derail productivity, according to GitHub’s Good Day Project. The study polled and tracked the daily work of 40 software engineers over the course of two weeks to find what patterns of work were most indicative of having a “good day” or “bad day” at work.

Going from two to three daily meetings lowered the chances of developers making progress on their goals from 74% to 14%, according to the report. When developers faced minimal or no interruptions, they had an 82% chance of reporting a “good day,” but if interrupted the majority of the day those chances fell to 7%.

Heads-down work alone can’t set a company up for success. Without sufficient touch points as engineers put lines of code together, teams can build products that don’t fulfill their expectations. Leaders who fine-tune productivity in software engineering strike a balance between autonomy and support. Finding the ideal cadence can lead organizations to higher profits.

A network of supporters, from security to compliance and business, should assist software development work, under a framework of joint accountability, according to Chris Condo, principal analyst at Forrester. 

“If engineers are working on a new product, they shouldn’t be working in a silo,” said Condo. 

But add up planning sessions, check-ins and stand up meetings, and a bloated schedule can reduce the bandwidth engineers have to build and ship code. 

“Touch points are necessary for any collaboration,” said Eirini Kalliamvakou, senior researcher at GitHub, in an email. Too many of these touch points “can disrupt our days and our progress.” Balancing these instances with the rest of the work can guide operations “to a team’s or company’s benefit.”

Obstacles to productivity

Technical debt impedes an organization’s ability to advance on its digital goals. Teams must fix existing problems in the tech stack without easing off ongoing modernization efforts.  

Engineering teams suffer when faced with the consequences of choosing easy solutions now instead of taking longer and better strategies, said Dave Garrett, chief strategy and growth officer at the Project Management Institute.

“While unavoidable at times due to time constraints, resources and other hurdles, technical debt can have a major impact on businesses,” said Garrett in an email. For example, early time investments in design, integration and testing can be a boon for productivity. 

Context-switching is another drag on an engineer’s ability to stay productive, according to Condo. This can be a consequence of having engineers work on too many projects at once.

There’s a financial motivation to whip software development processes into their best shape. It’s tech-savvy companies that are more likely to expect their businesses to grow, MIT found. 

And while there “isn’t necessarily a direct link” between efficiency in software engineering and a company’s profitability, an efficient team is indicative of a high-performing organization, according to Bola Rotibi, research director, software development CCS Insight.

“That means that the company has invested in people in terms of having the right skills, and maybe they’ve supported them in having the right environment, and in having the right tools, so that they are as efficient as they can be,” said Rotibi. 

How to strike the right balance

If any work lesson from the pandemic will have lasting power, it’s the fact that efficient teams can carry on regardless of their location. Teams even found ways to replace synchronous touch points such as calls or meetings with asynchronous communication.

However, teams don’t just slip into ideal workflows by accident. Think of software development as a military exercise, said Rotibi: Without proper planning the objectives will fail.

It’s critical to articulate what needs to be done and then “partition people out” to tackle their tasks, Rotibi said. Planning lets employees focus on what they need to do, while interacting or collaborating when they need to do so.

As part of the search for balance in a software engineer’s day, executives should include some sense of independence, according to Garrett.

“I think you need to give people some autonomy here – the space to do what makes sense, which will likely evolve over time,” said Garrett. “At the same time, you should understand and assess what’s working for specific teams and projects and make sure that people are sharing what works. You want to offer insightful guidance, but not dictate solutions.” 

Without sufficient support from other business units, projects can stall. In dysfunctional organizations, a business team creates “a giant backlog,” then deprioritizes the development team when they need input, said Condo. 

It’s one instance where meetings can save, not waste time.

Units such as security, business or compliance need to “be part of the design upfront, and that’s the only way you can actually get software developed from the start, correctly, or as close to correct as possible, and meets all the company’s best practices before it gets to final stages,” said Condo.

Source: https://www.ciodive.com/news/software-developer-productivity-engineers-github/601330/