GitPrime is Renaming to Pluralsight Flow Learn more

Hidden costs that engineers ignore


Hidden costs that engineers ignore

Newsletter for Software Engineers and/or Software Developers 14

Subscribe to Engineering Impact, the weekly newsletter for managers of software teams.


This week: Habits that programmers should avoid, hidden costs that engineers ignore, what am container, a git squashing guide

bad practices every programmer needs to avoid


Bad practices every programmer needs to avoid

Ken Mazaika offers an insightful list of 35 bad programming habits. What’s fascinating about his list, is that many of the bad habits have nothing to do with the skill-set of coding. In fact, less than half of the items Ken mentions, (16 by my count) explicitly relate to writing code.

While you may debate individual points (e.g. “not having a Twitter account”), his article underscores what the effective leaders know to be true. Technical chops are not the only skills required to be a successful engineer. Relational skills and self-discipline also play an essential role, such as the ability to manage time, collaborate with others, plan ahead, and take personal responsibility. 

See the full list of bad habits.


complexities example



Hidden costs that engineers ignore

Poor software decisions impose a tax that can be burdensome for many years. Without understanding these hidden costs, software estimates can slip by wide margins. Edmond Lau highlights the complexities that introduce overhead and add friction to getting things done on time:

  • Code Complexity (dependencies and combinatorial growth)
  • System Complexity (technology and tools)
  • Product Complexity (lack of focus)
  • Organizational Complexity (people!)

Lau proposes some practical strategies to fight against complexity. One strategy is to periodically pay off technical debt. He relates a story from working at Quora, where his team gamified the process of refactoring legacy code and tracked the purging on a leaderboard. If you’d like to be able to quantify your own team’s legacy refactoring, or check out a leaderboard for top contributors to paying off technical debt, GitPrime can help.


the definitive post on containers


What am container?

No doubt you’ve heard of “Docker” and “Containers” but maybe the jargon and hype stopped you from investigating further. If you’ve ever wished for a simple explanation for yourself or to share, this the definitive post on Containers.

Glyph, also known as “the twisted guy” cuts through the noise in a longform gem. He walks methodically through why containers are confusing, how containers fix an old design flaw in UNIX, and the four ways they provide value. By the end, you’ll have a grasp on why you should be adopting some form of ‘container technology’ to build your software.

One of our lead engineers, @ghickman endorses, “As someone interested, but not working in ops, I was never sure what containers really represented and his article cleared that up.”


git squashing process


An illustrated guide to squashing in git

When GitHub introduced the squash and merge button, it provided quick access to a power feature of Git. Although it can make code review easier by compressing work into a tidy view, it comes at a cost. Squashing makes it more difficult to locate and remove bugs. It also obfuscates how features come into existence and can make ‘git blame’ unreliable.

Check out the illustrated guide to Squashing in Git to understand what really happens when you squash, and why you may want to limit squashing on your team.



If you enjoy Engineering Impact, sign up to get it weekly.

Twitter Facebook LinkedIn

Ben Thompson is a co-founder at GitPrime where he leads design and customer experience. He is a Y Combinator alumni, with a background in product design, branding, and UX design. Follow @thebent on Twitter.

Get Engineering Impact: the weekly newsletter for managers of software teams

Keep current with trends in engineering leadership, productivity, culture, and scaling development teams.