Hi, I’m Lukas Witkowski, a seasoned Software Engineer and Tech Lead
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