Consistently throughout my career I’ve ran into situations where problems happen within engineering teams. I’ve heard war stories from others at conferences regarding team issues. It continues to baffle me why engineers can solve technical problems but not human issues. The primary reasons I decided that a software engineering career for me was that I love to solve problems. I’m hoping that others joined a career of engineering for the same reason. Why then do we not treat non-technical problems the same was as any engineering problem.
Think of it this way. Let’s say you have a performance problem with your web application. The first thing we probably do is think through the potential areas the problem could exist.
- Resource Sizes
- Database locking
- File sizes
- Missing caching
Then we determine a way to prove them. After that we replicate the issue and work toward a solution. Why can’t we do the same thing with team problems?
Let’s take a scenario of performance to the people side. Let’s say that our scrum team that continues to not deliver on our commitments. Wouldn’t we think through the problem the same way? Let’s look at potential causes.
- To much external noise
- Client issues
- Inter-team conflicts
The next step would be to determine how to prove which one of the causes it really is. Let’s think through this a little further.
For number one we could just pull back our estimates for a few sprints or automatically add buffer to our sizing strategy to create buffer till we actually meet our commitment.
2. To much external noise
For number two we could start to track the external disrupters. This could be logging how many non engineering related meetings we have.
3. Client Issues
For number three we could probably just look at our ticket system to determine how often we are getting said number of tickets which could lead to number two being the problem again.
4. Inter-team conflict
As for number 4 that one is tougher. This could be done by getting HR or outside counsel to talk to team members to find out if there seems to be issues. This is sort of the elephant in the room problem though and it depends how easy your team is willing to have open conversation in the end.
Either way the same practices we do to solve engineering problems can be applied to any other issue we run against. I still find it very hard to believe how many times I run into teams or hear stories about how someone continues to come to management or others with problems without ever applying basic troubleshooting steps to their problem. Maybe if we took ever problem on similar to our engineering tool belt we would get to resolution much faster.
To me engineering is all about solving problems and we should use the skills to solve any problem we have. It’s a game to me. I really enjoy it, which is why I got into this career.
Have you ran into engineers being unwilling to solve problems that are not technology related? How did you get past the problems?