An opinionated dev setup

Key takeaways

  • Cognitive load is a hidden productivity killer
  • Patterns are easy to remember and improve productivity
  • Unlearning your old habits is difficult, but well worth it going forward

Every project you work on is unique

Projects are unique not only because they use different programming languages, frameworks, or databases, but also because they each have their own, custom workflows, scripts, processes, and rules.

Even in the context of one company or even a single monorepo, uniqueness among repositories or packages exist.

Knowing in the first place, but remembering generally how to work in each project (or monorepo package) requires you to keep that information in your brain.

“That’s not true, it’s all documented in a CONTRIBUTING.md” – Someone out there who reads this blog post

Yeah yeah, I hear you. My response, “Is it, though?” Even if that file is maticulously maintained and always up-to-date, who reads it? And to play along, even if everyone reads it, how often do people have to re-read it in case it updates?

What if there were a set of codified patterns that stay the same no matter which repo at a company you work on?

Develop patterns, remove cognitive load

Imagine every project you work on uses the same commands to set up dependencies, seed the database, start the servers, etc. With that alone, you only need to memorize a handful of commands and they apply to every project you work on.

That’s certainly an incredible step in the right direction. While we’re at it though, we can easily take it to the next level by automating processes and add a visual representation of what is happening.

I put together a template repo at mootoday/project-template you can use to get started.

In the video below, I’ll walk you trough the template repo and what it looks like when I work on projects.

Conclusion

By codifying patterns into each of your projects, you significantly reduce the cognitive overhead anyone needs to contribute. This not only leads to instant onboarding of new team members, but also provides long-term cost reduction and faster time-to-market for your organization.

If this is something you want for your project, here’s a shameless plug 😊: Contact me via onboarding.webstone.app. My team and I do this for a living and help companies improve their internal & external developer experience. I shared more on what I think developer experience means in Beyond the Bottom Line: The ROI of Investing in Developer Experience

👋

Was this helpful?