Hi, I’m Lukas Witkowski, a seasoned Software Engineer and Tech Lead

» LinkedIn

» Github

Perfect software development lifecycle doesn’t exi…

This list is not complete, nor ordered by priority. Not all points are easily applicable everywhere (it depends). Just a bunch of topics I personally value during creation of digital products.

From my experience, these dramatically improve developer experience, minimize lead time and failure rate of the changes. Business people love it too.

  • true agility requires technical excellence
  • you build it, you own it, you run it
  • developers drive architecture - architect is a role, not a full time job
  • tradeoffs are essential part of this job
  • Trunk Based Development with short-lived branches
  • pushing directly to master is not a crime
  • master/main always shippable
  • optimize for fast feedback, minimize time from commit to prod
  • boring deployments
  • exciting releases
  • engineers talking to users
  • DORA metrics may be useful
  • 100% test coverage doesn’t prove anything, but 0% means something
  • good monitoring is as important (sometimes even more) as test coverage
  • pairing for new code or at least sync code review > async pull requests
  • KISS > DRY, especially in tests
  • automated tests, TDD when it makes sense, testing diamond/pyramid
  • automation ftw (ci, cd, local environment, database migration, security scans, code style checks)
  • PR is not a place for code style discussions
  • feature packaging over package by layer
  • up-to-date runtimes and dependencies
  • TestContainers and Docker FTW
  • not every commit needs jira ticket
  • not every project needs jira
  • kanban > scrum > SAFe