Project Visibility - Ophthalmology for Software Engineer Managers

Share on facebook
Share on twitter
Share on linkedin
Share on reddit

Run-through

As a software engineering manager it’s your responsibility to look after the health of your team and the projects they are working on. That’s right, you’re like a doctor. You provide your team guidance on best coding practices to prevent bugs from being transmitted to the software they’re developing.

This requires clear visibility on your team’s efforts. With the right tools, you can be more like a neurosurgeon in augmenting the full range of your team’s software development capabilities. So, grab your mask, stethoscope and scalpel, it’s time to dig into ophthalmology for software engineers.

What is Project Visibility in Software Engineering?

Project visibility in software development is the ability to get a clear picture of what team members are working on and how they are proceeding. It informs engineering managers of how developer resources are being allocated and possible risks to delivery. When accessible to the entire team, each developer has greater clarity on their role, personal and project objectives.

Visibility, overall, is derived from a combination of people, processes, and technologies:

  • Direct observation and interaction with your team members.
  • Retrospectives, standups, and other meetings.
  • Automated performance metrics – like we offer here at Gitential.

It’s very difficult to improve what you don’t measure. Performance metrics provides objective data to quantify and qualify problems, measure improvements, and assist with ongoing planning.

Defining Problems and Areas for Improving Visibility of your Projects

Patient: “It hurts.”
Doctor: “Can you tell me where exactly?”
Patient: “It moves around, it’s intermittent, and varies in severity. Oh, and I have this strange rash… if you listen carefully, you can hear it talking!”

Now, aren’t you glad that you got into software engineering?

As a tool for visibility, performance metrics can help identify issues before they threaten the health of your project. Even in the absence of severe problems, software development has a lot of room for optimization. Our goal is to prioritize efforts at improving software delivery according to:

  • Overall impact for your client
  • Impact on your company and team
  • Relative potential for improvement
  • Ease or speed of implementation
  • Dependencies and barriers to implementation

The idea is to systematically fix problems according to their relative ease and impact. Some problems are obvious, like a continuous pattern of client’s requesting changes midstream during development. It happens enough that it’s practically an industry-wide joke. Many other problems are not so noticeable or easily isolated to a root cause.

Severity of Symptoms and Scope

Knowing the symptoms and their extent helps to narrow down the likely root causes. Addressing symptoms without knowing the root cause can introduce additional problems. Software development is complex, so there can be many, often interconnected problems. Because they’re interconnected, efforts to resolve one problem will holistically improve others.

Fortunately, all problems don’t have the same severity or complexity. The more widespread and persistent a problem the more it falls on your shoulders to take corrective action. But, while it is your duty to be aware of everything, it’s not always on you to personally address it. Problems can be prioritized by you and your team with a wide variety of tools and processes.

Five Degrees of Severity

Scope Oversight Tools & Processes
Company or teamwide across multiple projects
  • Engineering Manager
  • Business Analyst
  • Scrum Master
Teamwide on a single project
  • Engineering Manager
  • Business Analyst
Developer across multiple projects
  • Engineering Manager
  • Team Lead
Developer on a single project
  • Team Lead
  • Coding Partner/Mentor
Developer on one or a few tasks
  • Team Lead
  • Codign Partner/Mentor

The best way to solve problems is to prevent them from developing in the first place. A lot of “problems” can originate in the hiring and onboarding process – like high turnover. We provide a lot of advice there for software engineering managers working with startups and brand new development teams.

Teamwide - Management Problems

Team and company-wide problems are usually pretty easy to spot from an outsider’s perspective. Management’s not always to blame, except when it is – and when it is, it is likely to persist and on a wide-scale basis. Most people don’t want to confront their manager. Symptoms like poor team performance and/or high turnover are closely tied to management issues.

There’s good reason to not get into the blame game. There could be any number of different reasons. The first supposition is that the manager is overtasked. Even so, neglecting one area of software development can have a substantial team-wide impact.

But, YOU are the software engineering manager. Providing guidance to your team is a central component of your role. Offering guidance, establishing team standards and policies is not to be underestimated. It’s groundwork essential for any team.

Though not specifically a software development project, I remember the lack of uniform guidance or a Standard Operating Procedure generating 60% turnover with several hundred contractors just three months into one year contracts. All of the team’s time was spent in and out processing of personnel. After the SOP, policies, and HR guidance was finished and distributed – turnover magically disappeared.

Keep an Eye Chart

As an engineering manager you’re able to create a framework that can really help keep your team on track – and prevent a lot of problems. This starts simply enough by formally maintaining documents for your team to reference as needed:
  • Coding standards (like programming language style guides)
  • List of recommended resources
  • Definition of Good Enough Code
  • Outline of work processes and best practices
  • Updates
Also, you’re not alone. Talk with other software engineering managers to see what they’ve done for their teams. During retrospectives, your team will also come up with ideas that may warrant adding to your best practices. Keep these items updated and if you move onto another job, pass these along to your successor.

Collaborating and Delegating

In larger teams, when it comes to individual developer performance it’s only sensible to collaborate and delegate remedial efforts to team leaders or mentors. Their team leader may have more direct insight into why a developer’s performance is slipping. They should also have visibility on the team member performance. Each individual should be able to see how they’re performing, as well – as part of a continuous, “on-demand” feedback loop.

Being Available

According to most developers, a software engineering manager’s social skills are more important than their technical skills. Taking time to interact with and building trust with your developers can make it a whole lot easier to solve problems. When a team member needs help or guidance they will feel more comfortable approaching you. That’s a much easier conversation to have than having to go to each developer to understand what they are going through when an issue emerges.

About Gitential

Our team at Gitential constantly watches trends across the software development industry. We also get down into the code with you to find ways to make it easier for you to make your team more efficient. Please take a moment to arrange a free demo – or sign up for a free trial, no credit card is needed.

Did you like our content?

Spread the word

Share on facebook
Share on twitter
Share on linkedin
Share on reddit

Subscribe to Our Newsletter

Don't miss our latest updates.
All About Software Engineering Best Practices, Productivity Measurement, Performance Analytics, Software Team Management and more.

Did you like our content?

Spread the word

Share on facebook
Share on twitter
Share on linkedin
Share on reddit

Subscribe to Our Newsletter

Don't miss our latest updates. All About Software Engineering Best Practices, Productivity Measurement, Performance Analytics, Software Team Management and more.