Bring Your Project Under Control

8 August 2019

Once a software team begins to struggle, they are rarely able to turn things around by themselves. By virtue of there being "too much to do," they can't find the time to make the improvements that restore their ever-diminishing velocity.

Our experience is that getting teams back on the right track doesn't require months of deprioritizing new development to instead fix bugs, rewrite code, and pay back technical debt. In fact quite the opposite! Focusing too much on rewriting, teams can easily fall into variation of the Second-system effect.

What teams need are seasoned experts who have done it before. And while we love building new things, as software engineers we know we have special skills and experience for jumping into gnarly codebases and helping teams figure things out.

The problems we see most often include:

  • Lack of decent logging, so debugging problems is difficult. It normally takes only a couple days to set up Structured Logging. Once you have it you'll never be able to live without it!
  • Complex configuration leads to runtime complexity. We are big fans of the 12 Factor Application pattern. Most of its concepts are well within reach, and you'll find that simplifying how configuration is done leads to simpler application code.
  • Applications that are difficult to test have few tests. Whether it's a matter of training developers on how to write testable code, or building a way to run unit tests in your non-standard environment, we've done it all.
  • Brittle tests lead to lots of regressions. There are usually ways to write higher-level tests that are expressive and do not lead to headaches every time something changes. We have a great toolbox for writing system-level tests against an API or user interface.
  • Lots of copy and pasted code because abstractions are missing or wrong. It can be very difficult to make these changes because they have tentacles all over the project. Our experience has given us many ways to fix these problems quickly and safely.
  • Finally, teams are maintaining lots of dead code that is never run in production. We can work with you on finding and pruning dead code, and identifying lesser-used parts of your product that could be removed or consolidated.

Believe it or not, we actually love working with teams struggling with gnarly code! We'd love to take a look at what you're dealing with, and put together a plan of action we think will get your team and project back on track. Get in touch!

Lithic Tech was founded in Portland, Oregon by experienced software engineers with a track record of high-quality software, happy customers, and successful businesses. We believe this success is a result of our unique processes, patterns, and convictions.

We are now offering that expertise to the wider community to build better software and software teams. You can learn more about us, and we’d love if you got in touch.

Email us at hello@lithic.tech or use this form: