What is hindering software engineering? | DSI dive

Maximizing the productivity of software engineers while preserving business communications is a puzzle that technology leaders have long sought the answer to.

Comments from software developers suggest a potential pitfall: Meeting overload and frequent interruptions can derail productivity, says GitHub’s Good Day project. The study interviewed and followed the daily work of 40 software engineers over the course of two weeks to find which work patterns were most indicative of a “good day” or “bad day” at work.

Going from two to three daily meetings reduced the chance for developers to progress on their goals from 74% to 14%, according to the report. When developers were faced with minimal or no downtime, they had an 82% chance of reporting a “good day,” but if they were down for the majority of the day, those chances dropped to 7%.

Headlong work alone cannot put a business on the path to success. Without enough touchpoints while engineers put together lines of code, teams can create products that don’t meet their expectations. Leaders who refine productivity in software engineering find 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 help software development work, under a joint accountability framework, according to Chris Condo, senior analyst at Forrester.

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

But add planning sessions, recordings, and standing meetings, and a busy schedule can reduce the bandwidth engineers need to create and ship code.

“Points of contact are necessary for any collaboration,” said Eirini Kalliamvakou, senior researcher at GitHub, in an email. Too many of these touchpoints “can disrupt our days and our progress.” Balancing these instances with the rest of the work can guide operations “for the benefit of a team or a business.”

Barriers to Productivity

Technical debt hinders an organization’s ability to progress towards its digital goals. Teams need to resolve existing issues in the technology stack without slowing down ongoing modernization efforts.

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

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

Context switching is another drag on an engineer’s ability to stay productive, according to Condo. This may be because engineers are working on too many projects at once.

There is a financial motivation to give the best of themselves in the software development process. It is companies at the cutting edge of technology who are more likely to expect their businesses to grow, MIT found.

And if there is “not necessarily a direct link” between efficiency in software engineering and the profitability of a company, an effective team is indicative of a successful organization, according to Bola Rotibi, director of research, development CCS Insight software.

“It means the company has invested in people in terms of having the right skills, and maybe they’ve helped them have the right environment and have the right tools, so that they are just as effective. as possible, ”says Rotibi.

How to strike on the right balance

If any working lesson from the pandemic will have lasting power, it’s the fact that effective teams can continue regardless of their location. Teams even found ways to replace synchronous touchpoints like calls or meetings with asynchronous communication.

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

It is essential to articulate what needs to be done and then to “partition people” to get the job done, Rotibi said. Planning allows employees to focus on what they need to do, while still interacting or collaborating when needed.

As part of finding a balance in the day of a software engineer, executives should include a sense of independence, according to Garrett.

“I think you have to give people some autonomy here – the space to do what makes sense, which will probably change over time,” Garrett said. “At the same time, you need to understand and evaluate what works for specific teams and projects, and make sure people share what works. You want to offer insightful advice, but not dictate solutions.”

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

This is a case where meetings can save, not waste time.

Units like security, business, or compliance need to “be part of the design from the start, and that is the only way to develop software from the start, correctly or as close to correct as possible, and which follows all of the company’s best practices. before we get to the final stages, ”Condo said.

Gordon K. Morehouse