Make File Tutorial: barebones, to the point, and effective it building up a full fledged make file
Retrospective Plans: Retrospectives play a crucial role in software teams. It is time specifically put aside to reflect on how the team is performing and what can be done to improve.
5 Questions Every Unit Test Must Answer: Unit tests combine many features that make them your secret weapon to application success.
- Design aid: Writing tests first gives you a clearer perspective on the ideal API design.
- Feature documentation (for developers): Test descriptions enshrine in code every implemented feature requirement.
- Test your developer understanding: Does the developer understand the problem enough to articulate in code all critical component requirements?
- Quality Assurance: Manual QA is error prone. In my experience, it’s impossible for a developer to remember all features that need testing after making a change to refactor, add new features, or remove features.
- Continuous Delivery Aid: Automated QA affords the opportunity to automatically prevent broken builds from being deployed to production.
Operating Systems: Three Easy Pieces: a book centered around three conceptual pieces that are fundamental to operating systems: virtualization, concurrency, and persistence.
Anatomy of a Modern Production Stack: stream-of-consciousness dump of the parts a modern (container based) production environment. Qualities to look for in a "modern" stack:
- Self healing and self managing. If a machine fails, I don’t want to have to think about it. The system should just work.
- Supports microservices. The idea of breaking your app into smaller components (regardless of the name) can help you to scale your engineering organization by keeping the dev team for each µs small enough that a 2 pizza team can own it.
- Efficient. I want a stack that doesn’t require a lot of hand holding to make sure I’m not wasting a ton of resources.
- Debuggable. Complex applications can be hard to debug. Having good strategies for application specific monitoring and log collection/aggregation can really help to provide insights into the stack.
Linux Containers with systemd: using systemd-nspawn instead of LXC for container management. Some testing still required to affirm the content of the page.
DevOps and Security: The Five Monkeys: The most damaging phrase in the language is: "It’s always been done that way."
A group of scientists placed five monkeys in a cage, and in the middle, a ladder with bananas on top.
Every time a monkey went up the ladder, the scientists soaked the rest of the monkeys with cold water.
After a while, every time a monkey would start up the ladder, the others would pull it down and beat it up.
After a time, no monkey would dare try climbing the ladder, no matter how great the temptation.
The scientists then decided to replace one of the monkeys. The first thing this new monkey did was start to climb the ladder. Immediately, the others pulled him down and beat him up.
After several beatings, the new monkey learned never to go up the ladder, even though there was no evident reason not to, aside from the beatings.
The second monkey was substituted and the same occurred. The first monkey participated in the beating of the second monkey. A third monkey was changed and the same was repeated. The fourth monkey was changed, resulting in the same, before the fifth was finally replaced as well.
What was left was a group of five monkeys that – without ever having received a cold shower – continued to beat up any monkey who attempted to climb the ladder.
- "We've always done it this way". "Why?".
- "We can't do that, it'll slow us down". "Why?".
- "This checklist item is non-negotiable". "Why?".