* You are the books you read, the films you watch, the music you listen to, the people you spend time with, the conversations you engage in. Choose wisely what you feed your mind.
* [Lucas Medeiros Reis](https://dev.to/iamlucasmreis/the-single-most-important-driver-of-software-quality) - The Single Most Important Driver Of Software Quality
* don't change code you don't understand
* never merge a branch with known defects
* use checklists to make sure the whole problem is solved
* [Ozan Onay](https://blog.bradfieldcs.com/you-are-not-google-84912cf44afb) - You Are Not Google
* Don’t even start considering solutions until you **Understand** the problem. Your goal should be to “solve” the problem mostly within the problem domain, not the solution domain.
* **eNumerate** multiple candidate solutions. Don’t just start prodding at your favorite!
* Consider a candidate solution, then read the **Paper** if there is one.
* Determine the **Historical context** in which the candidate solution was designed or developed.
* Weigh **Advantages** against disadvantages. Determine what was de-prioritized to achieve what was prioritized.
* **Think!** Soberly and humbly ponder how well this solution fits your problem. What fact would need to be different for you to change your mind? For instance, how much smaller would the data need to be before you’d elect not to use Hadoop?
* [Viktor Farcic](https://www.youtube.com/watch?v=mW_gkQnF4eU) - Jenkins World 2017: The Ten Commandments Of Continuous Delivery
* every green commit is deployable
* break silos : no departments, no silos. especially no CI/CD department
* refactor 2-3 hours every day (to make your application deployable, testable, ...
* educate others (the point is not for you to make the work / build pipelines for others) but others need to learn and do it
* be small : split monoliths (otherwise they take a long time to test / refactor / build / need big teams etc)
* practice TDD. no tests, no commits
* define your CD pipeline as code (no more clicking around)
* have a fast pipeline (fast feedback is important, in minutes or at best one coffee, no longer !)
* priority highest on fixing failed pipelines : never start ignoring failures. there is nothing more important in the world but fixing a failed build. If you don't fix it now it will cost much more.
* fix it first, drive later
* don't use sonar rules : either your build is ok or isn't, you cannot play with % to decide if your build is ok.
* you should your CD pipeline locally : you should not wait for jenkins to do everything. test first locally, then commit and have jenkins do the final verification but commiting code you didn't test locally should be illegal
* commiting code you didn't test locally should be illegal
* respect your coworkers
* continuous integration is about committing only to master branch : working on different branches means you don't trust your process. Ff you trust your process you know that the pipeline will detect problems. working on different branches only delays the detection of problems (verification, integration with everybody's else code). If you really like branches, make short lived feature branches (max 1 day) then merge them back to master and deploy to production
* do pull requests
* prioritize
* finish what you're doing, focus on a small number of tasks in parallel.
* Market yourself. You're putting on the effort, make sure you show it
* Go right to the point
* Ask why
* Keep your ability to be amazed by things and people, they won't last forever
* Act to fight perfectionism
* Take advantage of any opportunities that present themselves
* Physical and visual contact rather than emails, sms, chat
* Accept people as they are
* Select your friends
* More slow, minder stress
* Remain calm and quiet about everything which you will experience
* Reinvent yourself, evolve
* Grow and progress in love, work, leisure
* Be yourself, know yourself
* Be curious, observe and play (mentally, physically) with what surrounds you
* Be positive
* Be realistic, concrete
* Understand your goals and others' goals
* Taking notes, writing things down is a way to free your mind and not forget or lose anything. It's also a way to train your senses of observation and reflection