Skip to main content

Broken Software Engineering or Broken People & Organizations

Premise: Over the past decade, working in product software engineering leadership in corporations, I have noticed that most of the time, leadership is focused on the wrong things. The focus is often on performance vs. trust, downstream problems vs. upstream solutions, and protecting their own interests vs. extreme ownership


Result:
 A lot of product software engineering is broken. The source of the brokenness is not the technology or the processes. Sure, those elements can be evaluated and improved. Proper Testing, CI/CD, Security, Documentation, Run Books, Microservices, API, and AI strategies... Those are all essential elements of software engineering, tools of the trade. They can be analyzed, tuned, and optimized, and you're bound to get some improvements. But, I will argue that "fixing" those things will only get you mild enhancements if you are not addressing the root cause.

Theory: The most valuable asset to any software company is its people. In most organizations, people only achieve about 50% of their potential. 

Why: Solid and mature leaders are rare, resulting in organizations focusing on the wrong things.

Symptoms:

Inefficient Work Environments:

  • Distractions: Open-plan offices, frequent meetings, and constant interruptions can significantly hinder focus.
  • Outdated Tools: Using outdated or incompatible software can slow down workflows and lead to errors.
  • Poor Infrastructure: Inadequate hardware, network issues, or slow servers can hamper productivity.

Unclear Goals and Priorities:

  • Lack of Direction: Ambiguous or conflicting requirements can lead to wasted effort and rework.
  • Prioritization Challenges: When priorities shift frequently, it can be difficult for engineers to maintain momentum.

Excessive Bureaucracy:

  • Approval Processes: Lengthy approval cycles can delay projects and stifle innovation.
  • Redundant Tasks: Administrative burdens can take time away from core engineering tasks.

Organizational Culture:

  • Fear of Failure: A culture that penalizes mistakes can discourage experimentation and risk-taking.
  • Lack of Autonomy: When engineers are micromanaged or have limited decision-making power, they may feel disengaged.

Burnout and Mental Health Issues:

  • Long Hours: Excessive workload and tight deadlines can lead to burnout.
  • Stressful Environments: A toxic work culture or high-pressure situations can negatively impact mental health.

Lack of Continuous Learning:

  • Stagnation: Without opportunities for professional development, engineers may become less effective over time.
  • Outdated Skills: The rapid pace of technological change means that skills can become obsolete quickly.

So What:

  1. Assessing your current state is the first step in helping yourself, your organization, and your team be the best they can be. 
  2. Act on the assessment's outcome to improve your product software engineering's health.
Reach out if you are interested in learning more about my assessment.

Comments