<?xml version="1.0" encoding="UTF-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title>Chemaclass - productivity</title><subtitle>Tech Lead sharing practical insights on software craftsmanship, TDD, leadership, Bitcoin, and AI. Blog posts, book summaries, and conference talks.</subtitle><link rel="self" type="application/atom+xml" href="https://chemaclass.com/tags/productivity/atom.xml"/><link rel="alternate" type="text/html" href="https://chemaclass.com"/><generator uri="https://www.getzola.org/">Zola</generator><updated>2026-06-26T00:00:00+00:00</updated><id>https://chemaclass.com/tags/productivity/atom.xml</id><entry xml:lang="en"><title>Cut the Token Bill on Both Ends</title><subtitle>Two leaks, two patches</subtitle><category term="ai" scheme="https://chemaclass.com/tags/ai/" label="Ai"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="developer-tools" scheme="https://chemaclass.com/tags/developer-tools/" label="Developer Tools"/><published>2026-06-26T00:00:00+00:00</published><updated>2026-06-26T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/cut-the-token-bill-on-both-ends/"/><id>https://chemaclass.com/blog/cut-the-token-bill-on-both-ends/</id><summary type="html">Caveman shrinks what the agent says back, RTK shrinks what your terminal pipes in. More room in the same context window.</summary><content type="html">&lt;p>Every agentic session burns tokens in two directions at once. The agent talks back to you, and the terminal pipes its output in. Both flow through the same context window, and both of them leak.&lt;/p>
&lt;p>Run a session long enough and you hit the wall. The answers get worse and the bill climbs.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;blockquote>
&lt;p>Same model. Same prompts. Lighter bill.&lt;/p>
&lt;/blockquote>
&lt;p>Open any session transcript and the biggest blocks aren’t your prompts:&lt;/p>
&lt;ul>
&lt;li>Agent responses: small talk, hedging, repetition, “Sure! Happy to help…”.&lt;/li>
&lt;li>Tool output: &lt;code>npm install&lt;/code> logs, &lt;code>git status&lt;/code> walls of text, &lt;code>grep&lt;/code> dumps with full file paths.&lt;/li>
&lt;/ul>
&lt;p>The two tools below each go after one of those. Caveman handles what the agent says back. RTK handles what the shell sends in.&lt;/p>
&lt;h2 id="caveman-trims-the-output">Caveman trims the output
&lt;a class="heading-anchor" href="#caveman-trims-the-output" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>&lt;strong>&lt;a rel="external" href="https://github.com/JuliusBrussee/caveman">Caveman&lt;/a>&lt;/strong> is an Agent Skill. Run &lt;code>/caveman full&lt;/code> once and the agent stops padding its replies: no articles, no filler, no small talk. Fragments are fine, and the technical terms stay exact.&lt;/p>
&lt;p>Install:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="shellscript">&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">curl&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> -&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">fsSL&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.sh&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> |&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> bash&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>What dies:&lt;/p>
&lt;ul>
&lt;li>Articles: a, an, the.&lt;/li>
&lt;li>Fillers: just, really, basically, actually, simply.&lt;/li>
&lt;li>Small talk: sure, of course, happy to.&lt;/li>
&lt;li>Hedging: might, perhaps, it depends.&lt;/li>
&lt;/ul>
&lt;p>What stays:&lt;/p>
&lt;ul>
&lt;li>Code blocks, exact errors, file paths, commands.&lt;/li>
&lt;li>Security warnings and destructive ops (skill auto-clarifies).&lt;/li>
&lt;/ul>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Before and after&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;p>Normal mode:&lt;/p>
&lt;blockquote>
&lt;p>Sure! I’d be happy to help you with that. The issue you’re experiencing is likely caused by an off-by-one error in your token expiry check. The middleware compares the current time using &lt;code>&amp;lt;&lt;/code> when it should really be using &lt;code>&amp;lt;=&lt;/code>. Here’s the fix:&lt;/p>
&lt;/blockquote>
&lt;p>Caveman mode:&lt;/p>
&lt;blockquote>
&lt;p>Bug in auth middleware. Token expiry check use &lt;code>&amp;lt;&lt;/code> not &lt;code>&amp;lt;=&lt;/code>. Fix:&lt;/p>
&lt;/blockquote>
&lt;p>Same fix, and the code block that follows is identical. All that shrank is the prose around it, down to about a quarter.&lt;/p>
&lt;/div>
&lt;/details>
&lt;p>There are three levels: &lt;code>lite&lt;/code>, &lt;code>full&lt;/code>, and &lt;code>ultra&lt;/code>. Start at &lt;code>full&lt;/code>, since &lt;code>ultra&lt;/code> reads like a telegram. If an answer ever lands too terse for you, type &lt;code>normal mode&lt;/code> and it backs off.&lt;/p>
&lt;blockquote>
&lt;p>The agent doesn’t lose intelligence when you take away its small talk.&lt;/p>
&lt;/blockquote>
&lt;h2 id="rtk-trims-the-input">RTK trims the input
&lt;a class="heading-anchor" href="#rtk-trims-the-input" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>&lt;strong>&lt;a rel="external" href="https://github.com/rtk-ai/rtk">RTK&lt;/a>&lt;/strong> (Rust Token Killer) wraps the commands your agent runs. A hook rewrites &lt;code>git status&lt;/code> into &lt;code>rtk git status&lt;/code> behind the scenes, so there’s nothing extra to type and no overhead to notice.&lt;/p>
&lt;p>Install:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="shellscript">&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">brew&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> install&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> rtk&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">rtk&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> init&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> -&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">g&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> #&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> install the hook that auto-rewrites commands&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>If &lt;code>rtk gain&lt;/code> later errors, a different tool with the same name slipped in; install from the &lt;a rel="external" href="https://github.com/rtk-ai/rtk">repo&lt;/a> instead.&lt;/p>
&lt;p>The wrapped version strips the noise before it ever reaches the agent: color codes, repeated separators, &lt;code>npm&lt;/code> install banners, verbose timestamps.&lt;/p>
&lt;p>Here’s the same &lt;code>git status&lt;/code>, raw and then wrapped:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>$ rtk proxy git status&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>On branch main&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Your branch is up to date with &amp;#39;origin/main&amp;#39;.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span>Untracked files:&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> (use &amp;quot;git add &amp;lt;file&amp;gt;...&amp;quot; to include in what will be committed)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> content/blog/new-draft.md&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span>nothing added to commit but untracked files present (use &amp;quot;git add&amp;quot; to track)&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>$ rtk git status&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* main...origin/main&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>? Untracked: 1 file&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> content/blog/new-draft.md&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Same information in half the lines. On a busy repo the gap only grows, as dozens of untracked files, branch hints, and instruction lines all collapse into one small block.&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="shellscript">&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">rtk&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> gain&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> #&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> see how many tokens it saved you&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">rtk&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> gain&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> -&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">-history&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> #&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> per-command breakdown&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">rtk&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> discover&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> #&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> scan your agent history for missed wins&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>RTK reports &lt;a rel="external" href="https://github.com/rtk-ai/rtk">60-90% fewer tokens&lt;/a> on common dev commands. Run &lt;code>rtk gain&lt;/code> after some real use to see your own number.&lt;/p>
&lt;p>It never touches the payload, only the noise around it, so errors and stack traces come through exactly as they are. If a filter ever eats something you actually need, bypass it for that one call with &lt;code>rtk proxy &amp;lt;cmd&amp;gt;&lt;/code>.&lt;/p>
&lt;blockquote>
&lt;p>Output you never read is still output the model has to read.&lt;/p>
&lt;/blockquote>
&lt;h2 id="why-the-combo-compounds">Why the combo compounds
&lt;a class="heading-anchor" href="#why-the-combo-compounds" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>On their own, each tool helps a little. Run them together and the effect compounds, because they hit different halves of the same loop. A turn goes like this: you prompt, the agent thinks, it runs a command, the terminal answers, the agent reads that, then it replies to you. RTK shrinks the terminal half and Caveman shrinks the reply, so every turn gets cheaper and you fit more of them in one window.&lt;/p>
&lt;p>Here’s the real check, on a $100/month plan. Before I added these, I hit the weekly usage cap all the time, sometimes from a single project. Now I run several projects in parallel and the cap rarely shows up. The plan didn’t get bigger; the sessions got smaller.&lt;/p>
&lt;h2 id="set-it-once-then-forget-it">Set it once, then forget it
&lt;a class="heading-anchor" href="#set-it-once-then-forget-it" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Both installs are global, and you do them once. After that you keep typing &lt;code>git status&lt;/code>, &lt;code>grep&lt;/code>, and &lt;code>npm install&lt;/code> exactly as before. The hook rewrites them for you and Caveman kicks in on its own, so there are no new &lt;a href="/readings/atomic-habits/">habits&lt;/a> to learn.&lt;/p>
&lt;p>Not sure where to start? Pick whichever leak hurts more right now. If long replies on every little fix are the problem, start with Caveman. If it’s floods of &lt;code>grep&lt;/code> and &lt;code>npm install&lt;/code> output, start with RTK. Add the other one whenever you feel like it, since they don’t get in each other’s way.&lt;/p>
&lt;blockquote>
&lt;p>You didn’t upgrade the model. You stopped wasting its &lt;a href="/readings/digital-minimalism/">attention&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2026-06-26/footer.webp" alt="blog-footer" />&lt;/p></content></entry><entry xml:lang="en"><title>Skills Over Agents</title><subtitle>Intelligence without expertise is entertainment</subtitle><category term="ai" scheme="https://chemaclass.com/tags/ai/" label="Ai"/><category term="software" scheme="https://chemaclass.com/tags/software/" label="Software"/><category term="craftsmanship" scheme="https://chemaclass.com/tags/craftsmanship/" label="Craftsmanship"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="developer-tools" scheme="https://chemaclass.com/tags/developer-tools/" label="Developer Tools"/><published>2026-05-19T00:00:00+00:00</published><updated>2026-05-19T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/skills-over-agents/"/><id>https://chemaclass.com/blog/skills-over-agents/</id><summary type="html">Why Claude Code skills beat specialized agents. On-demand context, not the model, decides quality. Build a skill library that travels with your code.</summary><content type="html">&lt;p>People compare coding agents. &lt;a href="/blog/inside-the-claude-folder/">Claude Code&lt;/a>, Codex, Gemini CLI. Which one is smarter, faster, cheaper. New benchmarks every month.&lt;/p>
&lt;p>Wrong question.&lt;/p>
&lt;p>After a year wiring agents into real projects, what moved the needle wasn’t the agent. It was the skills I wrote for it.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="agents-are-commodities">Agents are commodities
&lt;a class="heading-anchor" href="#agents-are-commodities" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Every coding agent has the same shape. A language model, a runtime, filesystem access. Read, reason, write. Generalist by design.&lt;/p>
&lt;p>Two teams use the same agent. One ships clean, tested code. The other ships garbage that looks good. Same model. Different teaching.&lt;/p>
&lt;blockquote>
&lt;p>The model is the engine. Skills are the map. Without a map, a powerful engine gets you lost sooner.&lt;/p>
&lt;/blockquote>
&lt;h2 id="intelligence-is-not-expertise">Intelligence is not expertise
&lt;a class="heading-anchor" href="#intelligence-is-not-expertise" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Who handles your taxes? A 300 IQ genius who never read tax law, or an accountant with 20 years of filings?&lt;/p>
&lt;p>An accountant knows which deductions apply, which filings your business needs, which mistakes get flagged. Not intelligence. Expertise.&lt;/p>
&lt;p>AI agents have the same gap. A model reasons about code and writes solutions. It doesn’t know your hexagonal layers. It doesn’t know domain entities must never import framework code. It doesn’t know every feature starts with a failing test.&lt;/p>
&lt;p>Skills close that gap.&lt;/p>
&lt;h2 id="skills-load-context-on-demand">Skills load context on demand
&lt;a class="heading-anchor" href="#skills-load-context-on-demand" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>A skill is a markdown file in &lt;code>.claude/skills/&lt;/code>. A procedure, a pattern, a slice of domain knowledge. Plain markdown with frontmatter.&lt;/p>
&lt;p>The key is how they load. The agent reads only names and descriptions at startup. Loads the full skill when the task matches. Follows links to references only when it needs to dig deeper.&lt;/p>
&lt;p>That on-demand loading is what makes skills scale. Twenty skills cost almost nothing until one fits the task. Specialized agents, by contrast, carry their full instructions every time they run. More agents, more fixed cost.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: A real-world skill example&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>.claude/skills/&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> code-review/&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> SKILL.md # main instructions&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> reference/&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> solid-checklist.md # detailed SOLID examples&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> test-patterns.md # test quality guidelines&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>The &lt;code>SKILL.md&lt;/code>:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="markdown">&lt;span class="giallo-l">&lt;span>---&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#22863A, #85E89D);">d&lt;/span>&lt;span style="color: light-dark(#22863A, #85E89D);">escription&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Review code changes for SOLID violations, test quality, and architecture alignment&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#22863A, #85E89D);">a&lt;/span>&lt;span style="color: light-dark(#22863A, #85E89D);">llowed-tools&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> R&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">ead, Grep, Glob&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#22863A, #85E89D);">a&lt;/span>&lt;span style="color: light-dark(#22863A, #85E89D);">rgument-hint&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">[file or PR]&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>---&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);font-weight: bold;">#&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);font-weight: bold;"> Code Review&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span>Review code changes against project conventions.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);font-weight: bold;">##&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);font-weight: bold;"> Steps&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#E36209, #FFAB70);">1.&lt;/span>&lt;span> Read the diff or specified files&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#E36209, #FFAB70);">2.&lt;/span>&lt;span> Check architecture: domain layer has no framework imports, infrastructure stays thin&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#E36209, #FFAB70);">3.&lt;/span>&lt;span> Check SOLID principles (see reference/solid-checklist.md for patterns)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#E36209, #FFAB70);">4.&lt;/span>&lt;span> Check test quality: tests verify behavior, not implementation details&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#E36209, #FFAB70);">5.&lt;/span>&lt;span> Flag issues with the specific principle violated and a suggested fix&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);font-weight: bold;">##&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);font-weight: bold;"> Output&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span>For each issue found:&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#E36209, #FFAB70);">-&lt;/span>&lt;span> File and line&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#E36209, #FFAB70);">-&lt;/span>&lt;span> What&amp;#39;s wrong (which principle or convention)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#E36209, #FFAB70);">-&lt;/span>&lt;span> What the fix looks like&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Agent sees the description in the skill list. Ask for a review, it loads &lt;code>SKILL.md&lt;/code>. Needs a &lt;a href="/readings/clean-architecture/">SOLID&lt;/a> pattern, reads the reference. Two levels, on demand.&lt;/p>
&lt;/div>
&lt;/details>
&lt;p>&lt;img src="/images/blog/2026-05-19/middle.webp" alt="blog-middle" />&lt;/p>
&lt;h2 id="skills-vs-specialized-agents">Skills vs specialized agents
&lt;a class="heading-anchor" href="#skills-vs-specialized-agents" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>I covered &lt;a href="/blog/inside-the-claude-folder/#agents-specialized-roles">specialized agents&lt;/a> already: isolated workers with their own prompt and tool set. Great for parallel work and clean context boundaries.&lt;/p>
&lt;p>Specialized agents are coarse. One agent, one role, one fixed prompt. If you want three kinds of review quality, you either write three agents or stuff one agent with everything.&lt;/p>
&lt;p>Skills are finer. One agent, many skills. The right skill loads for the task. Context stays small. Quality stays high.&lt;/p>
&lt;p>Rule of thumb:&lt;/p>
&lt;ul>
&lt;li>Use a &lt;strong>skill&lt;/strong> when you need a procedure or pattern. From &lt;code>phel-lang&lt;/code>: &lt;code>/gh-issue&lt;/code> (issue to PR), &lt;code>/commit&lt;/code> (conventional commit), &lt;code>/refactor-check&lt;/code> (SOLID review).&lt;/li>
&lt;li>Use an &lt;strong>agent&lt;/strong> when you need isolation. From &lt;code>phel-lang&lt;/code>: &lt;code>tdd-coach&lt;/code> (&lt;a href="/blog/test-driven-development/">TDD&lt;/a> pairing), &lt;code>clean-code-reviewer&lt;/code> (PR review), &lt;code>domain-architect&lt;/code> (architecture exploration).&lt;/li>
&lt;/ul>
&lt;p>Most needs are skills, not agents.&lt;/p>
&lt;blockquote>
&lt;p>Agents give you speed. Skills give you quality. If you must pick one first, pick skills.&lt;/p>
&lt;/blockquote>
&lt;h2 id="skills-are-your-edge">Skills are your edge
&lt;a class="heading-anchor" href="#skills-are-your-edge" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Models improve every month. This year’s best is next year’s baseline. The major families converge. Better tool shows up, you switch.&lt;/p>
&lt;p>Your skills don’t switch with the tool. They encode your domain, conventions, architecture. They live in your repo. They travel with your code. Point a new model at the library, productive day one.&lt;/p>
&lt;blockquote>
&lt;p>The agent is replaceable. Your skills are not.&lt;/p>
&lt;/blockquote>
&lt;h2 id="start-with-the-first-repeated-prompt">Start with the first repeated prompt
&lt;a class="heading-anchor" href="#start-with-the-first-repeated-prompt" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>You don’t need 20 skills on day one.&lt;/p>
&lt;p>Zero. Then one.&lt;/p>
&lt;p>The signal is repetition. The second time you type the same context, that’s a skill waiting. Extract it into a markdown file. Next session, the agent knows.&lt;/p>
&lt;p>Concrete example. On &lt;a rel="external" href="https://github.com/phel-lang/phel-lang">&lt;code>phel-lang&lt;/code>&lt;/a>, I kept pasting the same brief every session: read issue #N, branch from the labels, TDD, open the PR. Third repeat, I extracted it into a &lt;code>/gh-issue&lt;/code> skill. Now I type &lt;code>/gh-issue 142&lt;/code> and the agent picks up the issue, creates &lt;code>fix/...&lt;/code> or &lt;code>feat/...&lt;/code> from the labels, writes the failing test first, implements, opens the PR. One markdown file. The session no longer starts from zero.&lt;/p>
&lt;p>Don’t write from scratch. Ask the agent: &lt;em>“Read this project and draft a minimal code review skill based on what you see.”&lt;/em> It scans, picks up conventions, drafts v1. Then you adjust. Add what it missed. Cut what doesn’t apply. Sharpen the description.&lt;/p>
&lt;p>The second skill usually comes from a mistake. Agent breaks a convention. Write a skill that teaches the correct approach. It won’t happen again.&lt;/p>
&lt;p>Skills add up. Each one lifts the baseline. A markdown file, maybe 50 lines. Permanent payoff.&lt;/p>
&lt;p>People who don’t write skills keep re-explaining what they “really want.” Every session from zero. Not a tool problem. A knowledge management problem.&lt;/p>
&lt;p>The agent ships next year. The skill ships forever.&lt;/p>
&lt;blockquote>
&lt;p>Write the skill once. Every session after that starts where the last one ended.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2026-05-19/footer.webp" alt="blog-footer" />&lt;/p>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/CEvIs9y1uog"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>The Levels of AI Adoption</title><subtitle>From copy-paste prompts to agentic teams</subtitle><category term="ai" scheme="https://chemaclass.com/tags/ai/" label="Ai"/><category term="software" scheme="https://chemaclass.com/tags/software/" label="Software"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="craftsmanship" scheme="https://chemaclass.com/tags/craftsmanship/" label="Craftsmanship"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="developer-tools" scheme="https://chemaclass.com/tags/developer-tools/" label="Developer Tools"/><published>2026-05-01T00:00:00+00:00</published><updated>2026-05-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/the-levels-of-ai-adoption/"/><id>https://chemaclass.com/blog/the-levels-of-ai-adoption/</id><summary type="html">A six-level ladder of AI adoption, from copy-paste prompts to agentic teams and AI-native workflows. Where most companies stall, and how to climb.</summary><content type="html">&lt;p>Most companies use AI today, but few know where they stand on the AI adoption ladder. At one end, you paste code into ChatGPT. At the other, agents open PRs while you sleep. Beyond that, AI reaches people who never touched a terminal. This post maps the path.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="where-we-started">Where we started
&lt;a class="heading-anchor" href="#where-we-started" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Using AI to code meant a second tab. Write a function, get stuck, paste the error into chat, paste the answer back, and hope it works. It was slow, messy, and disconnected from your code.&lt;/p>
&lt;p>&lt;a rel="external" href="https://github.com/features/copilot">GitHub Copilot&lt;/a>, built on OpenAI’s early Codex, added suggestions inside the editor, often confidently wrong. It was trained on public code, and most public code isn’t great. It also knew nothing about &lt;em>your&lt;/em> domain, &lt;em>your&lt;/em> conventions, &lt;em>your&lt;/em> architecture. It was autocomplete that sometimes guessed right.&lt;/p>
&lt;blockquote>
&lt;p>The first generation of AI coding tools gave you a parrot trained on the whole internet. Fluent, confident, and often saying things that made no sense in your codebase.&lt;/p>
&lt;/blockquote>
&lt;p>This was &lt;em>&lt;a href="/blog/ai-gives-you-speed-not-quality/">vibe-coding&lt;/a>&lt;/em> in its first form: you gave the vibe by pasting context, and the AI filled in code that looked right. It compiled often enough to feel useful, and broke often enough to feel dangerous.&lt;/p>
&lt;h2 id="the-ide-generation">The IDE generation
&lt;a class="heading-anchor" href="#the-ide-generation" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>The next step was obvious: if the AI needs context, give it the whole editor.&lt;/p>
&lt;p>&lt;a rel="external" href="https://cursor.com">Cursor&lt;/a>, &lt;a rel="external" href="https://windsurf.com">Windsurf&lt;/a>, and similar IDEs moved the model inside your coding flow. The assistant could read files, follow imports, and see more than one function at a time. Vibe-coding became a conversation with your project, and productivity jumped. For a moment, it felt like the endgame.&lt;/p>
&lt;p>It wasn’t. Editing files is only part of the job. The rest is running tests, reading logs, opening branches, reviewing diffs, and understanding what the codebase already does. Editor-only assistants helped you type faster, but they couldn’t take a task from &lt;em>“fix this bug”&lt;/em> to &lt;em>“PR ready for review.”&lt;/em>&lt;/p>
&lt;h2 id="the-agentic-shift">The agentic shift
&lt;a class="heading-anchor" href="#the-agentic-shift" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>OpenAI launched &lt;a rel="external" href="https://openai.com/index/introducing-codex/">Codex&lt;/a> as a cloud agent: give it a task, it works on a branch, and you come back to a PR. Anthropic shipped &lt;a rel="external" href="https://claude.com/product/claude-code">Claude Code&lt;/a>, a CLI agent in your terminal, on your repo, with your tools.&lt;/p>
&lt;p>This was the big shift, and not because the models were smarter. The unit of work changed. You stopped prompting line by line and started delegating tasks: read the ticket, write the change, run the tests, explain what you did. An agent doesn’t need hand-holding. It needs a goal and the right context.&lt;/p>
&lt;blockquote>
&lt;p>The jump from assistant to agent is not a speed improvement. It’s a change of job description. You move from typing code to directing work.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;a href="/blog/inside-the-claude-folder/">Claude Code&lt;/a> needs almost no setup. No editor lock-in. Point it at your repo, drop a &lt;code>.claude&lt;/code> folder with rules and conventions, and it adapts. I covered that in &lt;a rel="external" href="https://chemaclass.com/blog/inside-the-claude-folder/">Inside the .claude Folder&lt;/a>.&lt;/p>
&lt;p>The model you pick matters more than before. Today’s frontier models are way ahead of where they were a year ago. The gap between &lt;em>“can draft a function”&lt;/em> and &lt;em>“can refactor a module with judgment”&lt;/em> closed faster than expected, and it keeps closing as Claude, Codex, and Gemini push each other forward every month. Prices are getting closer too, which is a polite way of saying everyone copies whoever figures out the sustainable version first.&lt;/p>
&lt;h2 id="agents-with-their-own-home">Agents with their own home
&lt;a class="heading-anchor" href="#agents-with-their-own-home" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>The next leap wasn’t smarter models, it was agents with their own machine.&lt;/p>
&lt;p>&lt;a rel="external" href="https://openclaw.ai">OpenClaw&lt;/a> is the clearest example. It’s an open-source gateway you run on your own hardware (Mac Mini, old laptop, VPS), an always-on agent connected to your messaging apps, files, and calendar. You bring your own brain: Opus, GPT, or a local model via &lt;a rel="external" href="https://ollama.com">Ollama&lt;/a>. When a provider tightens limits or raises prices, you switch. You own the setup.&lt;/p>
&lt;p>A coding agent lives inside one repo for a task. An OpenClaw-style agent lives in &lt;em>your life&lt;/em>, across days and tools. &lt;a rel="external" href="https://sauronbot.github.io/about/">Sauron&lt;/a> is mine. It reviews my PRs, opens issues, drafts code, ships open source contributions, and pushes back when I’m about to tunnel on something. Anything I can do on a computer, it can do too, just faster. It stops being a tool you open and becomes a place you work in.&lt;/p>
&lt;blockquote>
&lt;p>A coding agent is a coworker you invite to a task. A gateway agent is a coworker who lives on a machine and shows up every day.&lt;/p>
&lt;/blockquote>
&lt;p>Providers change their plans and limits faster than anyone tracks, so people build setups that aren’t tied to one vendor. The logo on the model matters less every quarter, and the architecture around it matters more.&lt;/p>
&lt;h2 id="ai-beyond-developers">AI beyond developers
&lt;a class="heading-anchor" href="#ai-beyond-developers" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>AI coding was the loudest story because developers are loud. The bigger story is agentic tools reaching people who never wrote a line of code.&lt;/p>
&lt;p>&lt;a rel="external" href="https://openai.com/index/introducing-chatgpt-agent/">ChatGPT agent mode&lt;/a> and &lt;a rel="external" href="https://claude.com/product/cowork">Claude’s Cowork&lt;/a> are the obvious examples: an AI that reads your documents, fills your spreadsheets, drafts your slides, and runs code for you in the background. &lt;a rel="external" href="https://www.anthropic.com/news/claude-design-anthropic-labs">Claude Design&lt;/a> launched on April 17 and &lt;a rel="external" href="https://sherwood.news/tech/anthropic-launches-claude-design-sending-shares-of-figma-down/">dropped Figma’s stock over 7% on launch day&lt;/a>. The pitch is simple: describe what you want, get a working prototype, hand it to Claude Code to ship. A workflow that used to need a designer, a PM, a frontend engineer, and three review rounds is squeezed into one conversation.&lt;/p>
&lt;p>Lovable, v0, Canva, and Figma itself are all under pressure to rethink their positioning. Whether Claude Design “kills” any of them is the wrong question. The right one is what happens when making a usable prototype drops from &lt;em>“hire a designer”&lt;/em> to &lt;em>“describe it out loud.”&lt;/em>&lt;/p>
&lt;p>The companies feeling this first aren’t the design tools. They’re the small businesses that couldn’t afford design work, the founders building a pitch deck at midnight, the PMs testing an idea before booking a meeting. There’s a minority of cases where someone would have paid a designer and now won’t, and that cost is real. But in most of them, AI didn’t replace anyone: it filled a space where no designer was ever going to exist.&lt;/p>
&lt;p>&lt;img src="/images/blog/2026-05-01/middle.webp" alt="Small library with wooden bookshelves and stacks of books" />&lt;/p>
&lt;h2 id="the-levels-of-ai-adoption">The levels of AI adoption
&lt;a class="heading-anchor" href="#the-levels-of-ai-adoption" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Every company I talk to sits somewhere on this ladder. The levels aren’t about how much you pay in licenses, but about how deeply AI is built into the way work gets done, and not just in engineering.&lt;/p>
&lt;h3 id="level-0-denial">Level 0: Denial
&lt;a class="heading-anchor" href="#level-0-denial" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>&lt;em>A company-level stance.&lt;/em> No AI, officially. Some people use ChatGPT on personal laptops and don’t mention it. Leadership worries about IP leaks, or hasn’t made it a priority. The conversation stays at &lt;em>“we should look into this someday.”&lt;/em>&lt;/p>
&lt;p>The risk here isn’t technology, it’s time. Every month at Level 0 is a month your competitors grow their lead.&lt;/p>
&lt;h3 id="level-1-personal-productivity">Level 1: Personal productivity
&lt;a class="heading-anchor" href="#level-1-personal-productivity" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>&lt;em>Individual adoption.&lt;/em> AI is allowed, maybe encouraged. Each person uses it their own way: ChatGPT in a tab, Copilot in the IDE, Claude for the tricky stuff, a design tool for mockups. Output goes up, but the know-how stays inside each person’s head. Two engineers, or two PMs, or two designers on the same team get very different results because they prompt differently.&lt;/p>
&lt;p>Most companies are here in early 2026. It’s a real improvement over Level 0, and it’s where the myth of &lt;em>“AI gives you speed”&lt;/em> gets born. As I &lt;a rel="external" href="https://chemaclass.com/blog/ai-gives-you-speed-not-quality/">argued before&lt;/a>, speed without shared direction is faster chaos.&lt;/p>
&lt;h3 id="level-2-shared-practices">Level 2: Shared practices
&lt;a class="heading-anchor" href="#level-2-shared-practices" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>The team agrees on how to use AI: shared conventions, prompts people reuse, rules in the repo, a shared sense of when to trust the output and when to push back. Code reviews catch AI mistakes the same way they catch human ones, and design reviews do too. Tests are required whether a person or a model wrote the code.&lt;/p>
&lt;p>This is the first level where AI becomes a team skill rather than a personal habit. Higher ceiling, higher floor. New people ramp up faster because the prompts and rules capture how the team works.&lt;/p>
&lt;h3 id="level-3-context-aware-tooling">Level 3: Context-aware tooling
&lt;a class="heading-anchor" href="#level-3-context-aware-tooling" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>The team invests in context: rules files, conventions, architecture docs agents can read, and &lt;a rel="external" href="https://chemaclass.com/blog/mcp-giving-your-ai-agent-the-right-context/">MCP servers&lt;/a> connecting agents to the databases, APIs, and internal tools they need. The AI stops being a generic assistant and becomes closer to a coworker who has read the onboarding docs.&lt;/p>
&lt;p>At this level, quality depends less on the model and more on the context around it. A weaker model with great context beats a frontier model with none. Good docs and clean architecture pay off twice: they help both humans and agents.&lt;/p>
&lt;h3 id="level-4-agentic-teams">Level 4: Agentic teams
&lt;a class="heading-anchor" href="#level-4-agentic-teams" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Instead of one assistant, you get a squad: a TDD coach, a clean code reviewer, a domain architect, a docs maintainer. Outside engineering, the same idea applies with research, design, and ops agents. I covered the developer side in &lt;a rel="external" href="https://chemaclass.com/blog/build-your-own-team-of-agents/">Build Your Own Team of Agents&lt;/a>, and the leverage is real.&lt;/p>
&lt;p>Humans stop competing with AI on speed and start directing it. You review, decide, and set the bar. Agents handle typing, and increasingly the thinking. &lt;a href="/blog/effective-pair-programming/">Pair programming&lt;/a> with a person still wins on complex trade-offs, but an agent pair is always there for the rest.&lt;/p>
&lt;p>At the company level, the org chart, roles, and processes are still the same. What changes is that each person produces a lot more, and the team’s output reflects it. Level 4 multiplies output inside the existing structure. Level 5 changes the structure.&lt;/p>
&lt;h3 id="level-5-ai-native-workflows">Level 5: AI-native workflows
&lt;a class="heading-anchor" href="#level-5-ai-native-workflows" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>The final shift is about how the company runs. Processes are designed &lt;em>around&lt;/em> agents instead of just fitting them in. Tickets are written so an agent can act on them, and reviews assume part of the work was written by a machine. Architecture decisions take into account what agents do and don’t do well. Even hiring changes: a senior IC at Level 5 is closer to a tech lead leading people and agents than a classic individual contributor.&lt;/p>
&lt;p>Few companies are fully here in 2026, but the direction is obvious enough that ignoring it is its own decision.&lt;/p>
&lt;blockquote>
&lt;p>You don’t move up a level by buying better tools. You move up by changing how work is organized and reviewed.&lt;/p>
&lt;/blockquote>
&lt;h2 id="ai-is-not-stealing-jobs">AI is not stealing jobs
&lt;a class="heading-anchor" href="#ai-is-not-stealing-jobs" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>I keep hearing people call this a layoff story, and that framing is lazy.&lt;/p>
&lt;p>The industrial revolution didn’t end work. It ended specific kinds of work and created others. The people who lost the most refused to re-skill, and the people who gained the most learned to operate the new machines instead of competing with them.&lt;/p>
&lt;p>Same pattern here. AI isn’t taking your job, it’s changing what your job is. A developer who learns to lead agents out-ships one who refuses. A designer making ten versions before lunch with Claude Design out-designs one still opening Figma from scratch. A PM who ships prototypes out-prioritizes one writing specs nobody reads.&lt;/p>
&lt;blockquote>
&lt;p>AI doesn’t replace the skilled worker. It replaces the worker who thinks skill is a fixed asset instead of a moving target.&lt;/p>
&lt;/blockquote>
&lt;p>With the right training, model, and setup for your context, AI gives you 10x speed without losing quality. I’ve seen it, and it’s not marketing. But the 10x only shows up when you already know what good looks like. Without that foundation, AI happily produces 10x more mediocre work.&lt;/p>
&lt;p>That’s the honest version of the promise: AI can produce crap ten times faster, &lt;em>and&lt;/em> excellent work ten times faster. Which one you get is on you.&lt;/p>
&lt;h2 id="the-shift-in-where-your-attention-goes">The shift in where your attention goes
&lt;a class="heading-anchor" href="#the-shift-in-where-your-attention-goes" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>You stop thinking about details first and start thinking about direction: what are we building, who for, what shape, and which trade-offs. Agents then do most of the implementation while you protect quality and coherence.&lt;/p>
&lt;p>This sounds like good news for anyone who prefers architecture to typing, and it is. But there’s a trap: you can only work at the high level if you know the low level well enough to catch drift. When the agent produces something subtly wrong (a test that passes for the wrong reason, a refactor that changes behavior under load, a design that breaks on mobile), you need to spot it instantly. If you can’t, you’re not directing, you’re signing off on whatever shows up.&lt;/p>
&lt;blockquote>
&lt;p>AI lets you spend more time on direction, but only if you’ve already earned the right to ignore the details. You earn that by having mastered them first.&lt;/p>
&lt;/blockquote>
&lt;h2 id="why-the-ladder-matters">Why the ladder matters
&lt;a class="heading-anchor" href="#why-the-ladder-matters" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>I see teams skip levels and fail. A team jumps from Level 1 to Level 4 because leadership read a blog post about agent squads, and the agents produce mountains of low-quality code because nobody agreed on what quality means. The agents aren’t the problem, the missing foundation is.&lt;/p>
&lt;p>The ladder is an order that matters. Shared practices come before context engineering, context engineering before agent teams, and agent teams before AI-native workflows. Each level builds on the previous one, the same way clean code builds on naming, and naming builds on knowing what you’re modelling.&lt;/p>
&lt;p>The companies that win the next few years aren’t the ones with the biggest AI budget. They’re the ones that climb this ladder deliberately, one level at a time, without skipping the parts that look boring.&lt;/p>
&lt;h2 id="where-to-start">Where to start
&lt;a class="heading-anchor" href="#where-to-start" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>At Level 0 or 1, the next move isn’t more licenses. It’s deciding, as a team, how to use these tools. Write it down, commit it to the repo, and review it every week or month as the tools evolve.&lt;/p>
&lt;p>At Level 2 or 3, look at where context is missing. What does your AI not know about your codebase, product, or brand that a new hire would learn in week one? Write it down. An afternoon of rules and docs pays back for months.&lt;/p>
&lt;p>Further along, the question flips. You stop asking &lt;em>“how do I use AI better?”&lt;/em> and start asking &lt;em>“how does my team need to change so AI amplifies what we already do well?”&lt;/em> That’s a leadership question, not a tooling one.&lt;/p>
&lt;blockquote>
&lt;p>AI is moving fast, but the work of adoption is still slow and human. The tools are the easy part. The hard part is deciding what good looks like, writing it down, and holding the line.&lt;/p>
&lt;/blockquote>
&lt;p>AI can execute, but it doesn’t know where you’re going. It can produce, but it doesn’t know what’s worth producing. That part is still on us. Speed is a gift, and direction is a responsibility. From the solo engineer at Level 1 to the AI-native org at Level 5, the same truth holds: the human supervises, understands, and gives meaning. The machine does the rest.&lt;/p>
&lt;p>When the hype settles (and it will), the question won’t be &lt;em>“did you use AI?”&lt;/em> Everyone will. The question will be &lt;em>“at what level, and with what direction?”&lt;/em>&lt;/p>
&lt;p>&lt;img src="/images/blog/2026-05-01/footer.webp" alt="Library reading room with an open book on a wooden desk" />&lt;/p></content></entry><entry xml:lang="en"><title>Inside the .claude Folder</title><subtitle>A tutorial through rules, skills, agents, hooks, and settings</subtitle><category term="ai" scheme="https://chemaclass.com/tags/ai/" label="Ai"/><category term="software" scheme="https://chemaclass.com/tags/software/" label="Software"/><category term="tutorial" scheme="https://chemaclass.com/tags/tutorial/" label="Tutorial"/><category term="craftsmanship" scheme="https://chemaclass.com/tags/craftsmanship/" label="Craftsmanship"/><category term="developer-tools" scheme="https://chemaclass.com/tags/developer-tools/" label="Developer Tools"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2026-04-17T00:00:00+00:00</published><updated>2026-04-17T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/inside-the-claude-folder/"/><id>https://chemaclass.com/blog/inside-the-claude-folder/</id><summary type="html">A hands-on tour of Claude Code's project folder. What rules, skills, agents, hooks, and settings each do, and how they fit together.</summary><content type="html">&lt;p>Every project I work on has a &lt;code>.claude/&lt;/code> folder at the root. Committed to git, like the rest of the code.&lt;/p>
&lt;p>That folder turns Claude Code from a generic assistant into a project-aware teammate. Everyone who clones the repo inherits the same setup.&lt;/p>
&lt;p>Agentic coding is only as good as the context you give the agent. The &lt;code>.claude/&lt;/code> folder is where that context lives.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="the-claude-folder-at-a-glance">The .claude folder, at a glance
&lt;a class="heading-anchor" href="#the-claude-folder-at-a-glance" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>.claude/&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>├── CLAUDE.md # project onboarding&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>├── settings.json # permissions, hooks, env&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>├── skills/ # reusable procedures (slash commands)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>├── rules/ # glob-targeted conventions&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>├── hooks/ # shell scripts run on events&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>└── agents/ # specialized roles&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Six layers, one folder. Context, safety, procedures, guardrails, automation, specialists.&lt;/p>
&lt;h2 id="the-foundation">The foundation
&lt;a class="heading-anchor" href="#the-foundation" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="claude-md-where-everything-starts">CLAUDE.md: where everything starts
&lt;a class="heading-anchor" href="#claude-md-where-everything-starts" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Claude Code reads &lt;code>CLAUDE.md&lt;/code> on every boot. The onboarding doc.&lt;/p>
&lt;p>In &lt;a rel="external" href="https://github.com/phel-lang/phel-lang">Phel&lt;/a>, mine covers the compiler pipeline (Lexer → Parser → Analyzer → Emitter), module structure, conventions, and key commands.&lt;/p>
&lt;p>A global &lt;code>~/.claude/CLAUDE.md&lt;/code> applies to &lt;em>all&lt;/em> your projects. The project file says &lt;em>how this codebase works&lt;/em>. The global file says &lt;em>how I work&lt;/em>.&lt;/p>
&lt;p>Every byte ships in every prompt. Keep it short.
Past one screen, move detail into &lt;code>rules/&lt;/code> or &lt;code>skills/&lt;/code>.&lt;/p>
&lt;blockquote>
&lt;p>A good &lt;code>CLAUDE.md&lt;/code> is a good onboarding doc. The better it is, the less you repeat yourself.&lt;/p>
&lt;/blockquote>
&lt;h3 id="settings-json-safety-before-leverage">settings.json: safety before leverage
&lt;a class="heading-anchor" href="#settings-json-safety-before-leverage" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Before giving the agent more power, lock down what it must never do.&lt;/p>
&lt;p>&lt;code>.claude/settings.json&lt;/code> holds three things: &lt;strong>permissions&lt;/strong> (allow/deny), &lt;strong>hooks&lt;/strong> (event commands), and &lt;strong>env&lt;/strong> (variables). A gitignored &lt;code>settings.local.json&lt;/code> keeps personal overrides separate.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Permissions example from Phel&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="json">&lt;span class="giallo-l">&lt;span>{&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">permissions&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">allow&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> [&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Bash(composer:*)&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Bash(./bin/phel:*)&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Bash(git:*)&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Bash(gh:*)&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> ]&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">deny&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> [&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Bash(rm -rf:*)&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Bash(sudo:*)&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> ]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;/div>
&lt;/details>
&lt;p>Allow unlocks flow. Deny draws the line agents cannot cross, even when asked politely.&lt;/p>
&lt;blockquote>
&lt;p>Permissions are the floor. Everything else builds on top of a safe baseline.&lt;/p>
&lt;/blockquote>
&lt;h2 id="procedures-and-guardrails">Procedures and guardrails
&lt;a class="heading-anchor" href="#procedures-and-guardrails" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="skills-procedures-you-can-run">Skills: procedures you can run
&lt;a class="heading-anchor" href="#skills-procedures-you-can-run" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Next pain after onboarding: repetition. Skills solve that.&lt;/p>
&lt;p>A skill is a markdown file in &lt;code>.claude/skills/&lt;/code>, a procedure you call with a slash:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;code>/gh-issue &amp;lt;number&amp;gt;&lt;/code>&lt;/strong>: issue to branch, TDD plan, PR.&lt;/li>
&lt;li>&lt;strong>&lt;code>/commit&lt;/code>&lt;/strong>: fix, analysis, tests, conventional commit.&lt;/li>
&lt;li>&lt;strong>&lt;code>/refactor-check&lt;/code>&lt;/strong>: &lt;a href="/readings/clean-architecture/">SOLID&lt;/a>, naming, architecture smells.&lt;/li>
&lt;li>&lt;strong>&lt;code>/release [version]&lt;/code>&lt;/strong>: changelog, PHAR, tag, release.&lt;/li>
&lt;/ul>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Skills vs rules vs raw prompting&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;ul>
&lt;li>&lt;strong>Raw prompt&lt;/strong>: &lt;em>“fix issue #42”&lt;/em>. Agent improvises. Different every time.&lt;/li>
&lt;li>&lt;strong>Rule&lt;/strong>: &lt;em>“use conventional commits”&lt;/em>. Shapes output, not procedure.&lt;/li>
&lt;li>&lt;strong>Skill&lt;/strong>: &lt;em>“&lt;code>/gh-issue 42&lt;/code>”&lt;/em>. The procedure &lt;em>is&lt;/em> the instruction.&lt;/li>
&lt;/ul>
&lt;p>Skills turn tribal knowledge into runnable steps anyone can execute.&lt;/p>
&lt;/div>
&lt;/details>
&lt;blockquote>
&lt;p>Skills capture what to do. Rules capture what not to do.&lt;/p>
&lt;/blockquote>
&lt;h3 id="rules-the-guardrails">Rules: the guardrails
&lt;a class="heading-anchor" href="#rules-the-guardrails" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>&lt;code>CLAUDE.md&lt;/code> is read every session. Rules only when they match. Files in &lt;code>.claude/rules/&lt;/code> target code areas with glob patterns: the agent loads only what applies, keeping context lean.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Glob-targeted rules in practice&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;p>Rule files in &lt;a href="/blog/phel-first-release/">Phel&lt;/a>:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;code>compiler.md&lt;/code>&lt;/strong>: strict 4-phase pipeline, no bypassing.&lt;/li>
&lt;li>&lt;strong>&lt;code>php.md&lt;/code>&lt;/strong>: PER 3.0, &lt;code>final&lt;/code> classes, &lt;code>readonly&lt;/code>, Gacela.&lt;/li>
&lt;li>&lt;strong>&lt;code>phel.md&lt;/code>&lt;/strong>: kebab-case, &lt;code>defn-&lt;/code> private, &lt;code>:doc&lt;/code>/&lt;code>:example&lt;/code> required.&lt;/li>
&lt;li>&lt;strong>&lt;code>integration-tests.md&lt;/code>&lt;/strong>: &lt;code>--PHEL--&lt;/code> / &lt;code>--PHP--&lt;/code> fixture sections.&lt;/li>
&lt;/ul>
&lt;p>Compiler rules don’t fire when editing Phel source. Phel rules don’t fire when editing PHP infrastructure.&lt;/p>
&lt;/div>
&lt;/details>
&lt;p>Rules are not suggestions. They travel with the code: a convention change and its rule ship in the same commit. No drift, no outdated wiki.&lt;/p>
&lt;p>&lt;img src="/images/blog/2026-04-17/middle.webp" alt="blog-middle" />&lt;/p>
&lt;h2 id="automation-and-delegation">Automation and delegation
&lt;a class="heading-anchor" href="#automation-and-delegation" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="hooks-automation-at-the-edges">Hooks: automation at the edges
&lt;a class="heading-anchor" href="#hooks-automation-at-the-edges" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Rules tell the agent what to do. Hooks make sure it happens even if the agent forgets.&lt;/p>
&lt;p>Shell commands triggered by Claude Code events (&lt;code>PreToolUse&lt;/code>, &lt;code>PostToolUse&lt;/code>, &lt;code>Stop&lt;/code>), wired through &lt;code>settings.json&lt;/code>. In Phel, &lt;code>PreToolUse&lt;/code> blocks edits to critical files (&lt;code>build/release.sh&lt;/code>, &lt;code>.github/*&lt;/code>, &lt;code>composer.lock&lt;/code>). &lt;code>PostToolUse&lt;/code> auto-formats PHP via &lt;code>php-cs-fixer&lt;/code>.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Hooks wiring&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="json">&lt;span class="giallo-l">&lt;span>{&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">hooks&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">PreToolUse&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> [&lt;/span>&lt;span>{&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">matcher&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Edit|Write&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">hooks&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> [&lt;/span>&lt;span>{&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">type&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">command&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">command&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">.claude/hooks/protect-files.sh&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span> }&lt;/span>&lt;span>]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;span>]&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">PostToolUse&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> [&lt;/span>&lt;span>{&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">matcher&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Edit|Write&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">hooks&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> [&lt;/span>&lt;span>{&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">type&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">command&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">command&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">.claude/hooks/format-php.sh&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span> }&lt;/span>&lt;span>]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;span>]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;/div>
&lt;/details>
&lt;blockquote>
&lt;p>Rules are what the agent should know. Hooks are what the system enforces anyway.&lt;/p>
&lt;/blockquote>
&lt;h3 id="agents-specialized-roles">Agents: specialized roles
&lt;a class="heading-anchor" href="#agents-specialized-roles" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Everything so far shapes one agent. Agents add specialists the main agent can delegate to, each with its own tools, permissions, and model. Most advanced piece. Recommend it last.&lt;/p>
&lt;p>A few from Phel:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Explorer&lt;/strong> (Sonnet, read-only): files, structure mapping.&lt;/li>
&lt;li>&lt;strong>&lt;a href="/readings/clean-code/">Clean Code&lt;/a> Reviewer&lt;/strong>: SOLID and naming on diffs.&lt;/li>
&lt;li>&lt;strong>TDD Coach&lt;/strong>: red-green-refactor enforcement.&lt;/li>
&lt;li>&lt;strong>Domain Architect&lt;/strong>: module boundaries, compiler pipeline.&lt;/li>
&lt;li>&lt;strong>Debugger&lt;/strong>: compiler errors across all phases.&lt;/li>
&lt;/ul>
&lt;p>Each agent runs in its own context window: the main session stays clean while the specialist digs deep. The win is not only cost, it is focus. An agent with only read and grep cannot rewrite your codebase by mistake.&lt;/p>
&lt;blockquote>
&lt;p>Right model for the right job. Fast and cheap for exploration. Deep and careful for architecture.&lt;/p>
&lt;/blockquote>
&lt;h2 id="start-small-grow-with-friction">Start small, grow with friction
&lt;a class="heading-anchor" href="#start-small-grow-with-friction" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Do not build all of this on day one.&lt;/p>
&lt;p>The order, driven by real friction:&lt;/p>
&lt;ol>
&lt;li>Start with &lt;a href="https://chemaclass.com/blog/inside-the-claude-folder/#claude-md-where-everything-starts">&lt;code>CLAUDE.md&lt;/code>&lt;/a>.&lt;/li>
&lt;li>Lock down &lt;a href="https://chemaclass.com/blog/inside-the-claude-folder/#settings-json-safety-before-leverage">&lt;code>settings.json&lt;/code>&lt;/a> permissions.&lt;/li>
&lt;li>First time you repeat yourself, write a &lt;a href="https://chemaclass.com/blog/inside-the-claude-folder/#skills-procedures-you-can-run">skill&lt;/a>.&lt;/li>
&lt;li>First time the agent breaks a convention, add a &lt;a href="https://chemaclass.com/blog/inside-the-claude-folder/#rules-the-guardrails">rule&lt;/a>.&lt;/li>
&lt;li>First time something bad almost gets committed, add a &lt;a href="https://chemaclass.com/blog/inside-the-claude-folder/#hooks-automation-at-the-edges">hook&lt;/a>.&lt;/li>
&lt;li>First time a generalist is wrong for the job, define a &lt;a href="https://chemaclass.com/blog/inside-the-claude-folder/#agents-specialized-roles">specialist&lt;/a>.&lt;/li>
&lt;/ol>
&lt;p>Each step fixes a problem you actually had. Not one you imagined.&lt;/p>
&lt;blockquote>
&lt;p>The setup grows from real friction, not from upfront design.&lt;/p>
&lt;/blockquote>
&lt;p>Commit the folder. Share it. When someone joins, their session inherits everything.&lt;/p>
&lt;p>Treat &lt;code>.claude/&lt;/code> like infrastructure. Version it. Review it. Evolve it with the codebase.&lt;/p>
&lt;p>&lt;img src="/images/blog/2026-04-17/footer.webp" alt="blog-footer" />&lt;/p></content></entry><entry xml:lang="en"><title>What Success Means to Me</title><subtitle>A simple definition that changed how I live</subtitle><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><published>2025-09-15T00:00:00+00:00</published><updated>2025-09-15T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/what-success-means-to-me/"/><id>https://chemaclass.com/blog/what-success-means-to-me/</id><summary type="html">Success is waking up knowing that what you do makes the people around you, and yourself, happier. Consistency over perfection.</summary><content type="html">&lt;p>For the longest time, I thought success was about hitting certain milestones. Getting that promotion. Earning a specific salary. Building something that people would recognize.&lt;/p>
&lt;p>But I’ve realized that’s not what gets me out of bed in the morning.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="the-real-measure">The real measure
&lt;a class="heading-anchor" href="#the-real-measure" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Success, for me, is straightforward now: &lt;strong>waking up knowing that what I do makes the people around me, and myself, happier&lt;/strong>.&lt;/p>
&lt;p>It took me a while to get here. This definition might not feel simple to everyone, and that’s okay. But for me, it clarified everything.&lt;/p>
&lt;p>No complex formula. No checklist of achievements.&lt;/p>
&lt;blockquote>
&lt;p>Success is about those small moments when you help a colleague solve a tricky problem, when you share something that makes someone smile, or when you finish the day feeling like you actually added some good to the world.&lt;/p>
&lt;/blockquote>
&lt;p>This applies whether you’re leading a team or just showing up as yourself. As I wrote about &lt;a href="/blog/great-leadership">great leadership&lt;/a>, real leadership starts with your own life and behavior. It’s fundamentally about making the people around you better, not just achieving targets.&lt;/p>
&lt;h2 id="why-happiness-matters">Why happiness matters
&lt;a class="heading-anchor" href="#why-happiness-matters" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>I used to think that focusing on happiness was somehow trivial. Like it wasn’t “serious” enough as a goal. But I’ve learned that making people happy, genuinely happy, is one of the hardest and most rewarding things you can do.&lt;/p>
&lt;h3 id="what-does-this-mean-in-practice">What does this mean in practice?
&lt;a class="heading-anchor" href="#what-does-this-mean-in-practice" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Being present when someone needs you&lt;/li>
&lt;li>Creating things that solve real problems&lt;/li>
&lt;li>Choosing kindness over being right&lt;/li>
&lt;li>Finding joy in what you do, even on tough days&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>When you focus on making others happier, you usually end up happier yourself. It’s not zero-sum. It compounds.&lt;/p>
&lt;/blockquote>
&lt;p>This connects deeply with &lt;a href="/blog/understanding-people">understanding people&lt;/a> and how they think. When you truly understand that everyone processes the world differently, you become better at creating genuine happiness, not just what you think should make them happy.&lt;/p>
&lt;h2 id="the-daily-practice">The daily practice
&lt;a class="heading-anchor" href="#the-daily-practice" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="how-does-this-look-in-daily-life">How does this look in daily life?
&lt;a class="heading-anchor" href="#how-does-this-look-in-daily-life" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>For me, it’s about checking in with myself regularly: “Did what I do today make things better?” Not perfect. Not revolutionary. Just better.&lt;/p>
&lt;p>Sometimes that’s writing code that helps a team work more smoothly. Sometimes it’s taking time to really listen to someone. Sometimes it’s just being patient when everything feels chaotic.&lt;/p>
&lt;p>It’s not always easy. Some days you miss the mark. But having this simple definition of success makes decisions clearer. When you’re wondering whether to take on a project, accept an opportunity, or say no to something, you can ask yourself: “Will this make me and the people around me happier?”&lt;/p>
&lt;h3 id="consistency-over-perfectionism">Consistency over perfectionism
&lt;a class="heading-anchor" href="#consistency-over-perfectionism" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Here’s something I’ve learned the hard way: &lt;strong>success is built through consistency, not perfection&lt;/strong>.&lt;/p>
&lt;p>Perfectionism will paralyze you. It whispers that nothing is good enough, that you should wait until conditions are ideal, that one mistake invalidates everything. It’s a trap.&lt;/p>
&lt;p>What actually works? Showing up. Day after day. Building small habits that compound over time.&lt;/p>
&lt;p>As James Clear explains in &lt;a href="/readings/atomic-habits/">Atomic Habits&lt;/a>, real change comes from the compound effect of hundreds of small decisions. You don’t need to be perfect. You need to be consistent.&lt;/p>
&lt;blockquote>
&lt;p>Don’t try to make a habit perfect, just repeat it.&lt;/p>
&lt;/blockquote>
&lt;p>This means:&lt;/p>
&lt;ul>
&lt;li>Writing a few lines of code every day beats waiting for the perfect architecture&lt;/li>
&lt;li>Having a short, genuine conversation beats waiting for the perfect moment&lt;/li>
&lt;li>Making small improvements consistently beats waiting for the big breakthrough&lt;/li>
&lt;/ul>
&lt;p>The goal isn’t to never fail. It’s to build habits that align with making yourself and others happier, and to keep showing up even when you stumble.&lt;/p>
&lt;blockquote>
&lt;p>This is where &lt;a href="/blog/the-process-itself-is-the-goal">the process itself becomes the goal&lt;/a>. It’s not about reaching some final destination of “being successful”, it’s about building daily habits and practices that align with what actually matters to you.&lt;/p>
&lt;/blockquote>
&lt;h2 id="success-is-personal">Success is personal
&lt;a class="heading-anchor" href="#success-is-personal" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Your definition of success will probably be different from mine, and that’s not just okay, it’s necessary.&lt;/p>
&lt;p>“&lt;a href="/blog/have-you-always-been-like-this">Have I always been like this?&lt;/a>” The answer is no. I certainly wasn’t. Our understanding of what matters evolves as we grow. That’s part of the journey.&lt;/p>
&lt;p>If you’re feeling stuck or unsure about what you’re working toward, try this: &lt;strong>figure out what truly makes you and the people you care about happier&lt;/strong>. Not what you think should make you happy. Not what looks impressive from the outside.&lt;/p>
&lt;p>Just what actually works for you.&lt;/p>
&lt;p>And be ready to &lt;a href="/blog/embrace-the-change">embrace the change&lt;/a> when your definition shifts, &lt;strong>because it will&lt;/strong>. What success means to you today might look different tomorrow. That’s not failure. That’s growth.&lt;/p>
&lt;hr />
&lt;blockquote>
&lt;p>At the end of the day, if you wake up knowing that what you do brings more happiness into the world, including your own, you’re probably doing something right.&lt;/p>
&lt;/blockquote>
&lt;p>That feels like success to me.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-11-15/footer.webp" alt="what success means to me" />&lt;/p>
&lt;hr />
&lt;p>&lt;strong>Thanks&lt;/strong> to my friend Toni, for &lt;a rel="external" href="https://x.com/Chemaclass/status/1989652323925377462">bringing up&lt;/a> this question and inspiring this reflection.&lt;/p></content></entry><entry xml:lang="en"><title>Ship, Show, Ask</title><subtitle>Match the review to the risk, not the ritual</subtitle><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="code-review" scheme="https://chemaclass.com/tags/code-review/" label="Code Review"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2025-04-12T00:00:00+00:00</published><updated>2025-04-12T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/ship-show-ask/"/><id>https://chemaclass.com/blog/ship-show-ask/</id><summary type="html">Not every change needs the same review. Ship, Show, Ask matches the process to the risk, without losing quality or collaboration.</summary><content type="html">&lt;p>In fast-moving teams, one of the biggest tensions we face is this: How do we keep shipping without compromising quality or collaboration?&lt;/p>
&lt;p>The traditional approach to &lt;a href="/blog/pull-request-vs-pair-prog/">pull requests&lt;/a> often slows things down. We wait hours, or days, for approvals, even for trivial changes. But the alternative, merging directly, can feel reckless or invisible to the rest of the team.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>That’s where the Ship-Show-Ask strategy comes in. Originally described by &lt;a rel="external" href="https://martinfowler.com/articles/ship-show-ask.html">Rouan Wilsenach&lt;/a>, this model offers a more flexible and thoughtful way to handle code changes. It’s not just a branching strategy, it’s a shift in how teams collaborate, trust, and take ownership.&lt;/p>
&lt;h2 id="what-is-ship-show-ask">What is Ship, Show, Ask?
&lt;a class="heading-anchor" href="#what-is-ship-show-ask" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>It’s a model that classifies changes based on how much review they require:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Ship&lt;/strong>: Merge directly to main (without a PR)&lt;/li>
&lt;li>&lt;strong>Show&lt;/strong>: Open a pull request, but merge it immediately&lt;/li>
&lt;li>&lt;strong>Ask&lt;/strong>: Open a pull request and wait for review&lt;/li>
&lt;/ul>
&lt;p>The key idea is to use Ask as the default for most work, fall back to Show when the context makes it safe, and avoid Ship (or reserve it for extremely trivial cases, if used at all).&lt;/p>
&lt;h2 id="why-i-prefer-to-ask-and-show">Why I prefer to Ask and Show
&lt;a class="heading-anchor" href="#why-i-prefer-to-ask-and-show" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Treat every change, even the small ones, as something worth sharing. I always create a branch and open a PR. It provides visibility, builds a shared history, and creates a space for optional or asynchronous feedback. It’s &lt;a href="/blog/working-with-the-garage-door-open/">working with the garage door open&lt;/a>, applied to code.&lt;/p>
&lt;p>But not all PRs need to follow the same review process.&lt;/p>
&lt;h3 id="i-default-to-ask">I default to Ask
&lt;a class="heading-anchor" href="#i-default-to-ask" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>I prefer to wait for a peer review when:&lt;/p>
&lt;ul>
&lt;li>The change involves risky or complex logic&lt;/li>
&lt;li>It could impact other developers or teams&lt;/li>
&lt;li>It introduces architectural or structural decisions that haven’t been agreed on yet&lt;/li>
&lt;li>It benefits from shared input or a second pair of eyes&lt;/li>
&lt;/ul>
&lt;p>That said, &lt;strong>Ask doesn’t mean over-engineering the process&lt;/strong>. Often, one thoughtful reviewer is enough, especially if they’re familiar with the domain. If the change touches a specific area, I’ll ask for feedback from the person who owns (or best understands) that part of the code. It doesn’t need to involve everyone.&lt;/p>
&lt;blockquote>
&lt;p>In small teams, requiring two approvals on every PR can quickly become a bottleneck and slow down the delivery of value. The goal is alignment and quality, not ceremony for its own sake.&lt;/p>
&lt;/blockquote>
&lt;h3 id="i-use-show-for-safe-low-impact-changes">I use Show for safe, low-impact changes
&lt;a class="heading-anchor" href="#i-use-show-for-safe-low-impact-changes" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>I might merge immediately when:&lt;/p>
&lt;ul>
&lt;li>Practicing &lt;a href="/blog/effective-pair-programming/">pair programming&lt;/a> (the review already happened live)&lt;/li>
&lt;li>Fixing typos or broken links&lt;/li>
&lt;li>Updating documentation or changelogs&lt;/li>
&lt;li>&lt;a href="/blog/the-art-of-refactoring/">Refactoring&lt;/a> within a module I own&lt;/li>
&lt;li>Adding tests for existing behavior&lt;/li>
&lt;li>Making non-functional tweaks (formatting, logs, comments)&lt;/li>
&lt;li>Applying UI or style adjustments with no logic change&lt;/li>
&lt;/ul>
&lt;p>The key principle: &lt;strong>Show is optional, never mandatory&lt;/strong>. I choose Show only if the change is low-risk and fits within team expectations. When I use Show, I own the outcome. The responsibility is mine.&lt;/p>
&lt;h2 id="why-this-approach-works-for-me">Why this approach works for me
&lt;a class="heading-anchor" href="#why-this-approach-works-for-me" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>This model helps me:&lt;/p>
&lt;ul>
&lt;li>Ship faster without compromising quality&lt;/li>
&lt;li>Work with greater autonomy and ownership&lt;/li>
&lt;li>Avoid bottlenecks, especially in small or async teams&lt;/li>
&lt;li>Foster a mindset of trust, accountability, and thoughtful decision-making&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>It shifts the goal from getting approval to sharing intent and owning the outcome.&lt;/p>
&lt;/blockquote>
&lt;h2 id="what-makes-a-good-show">What makes a good “Show”?
&lt;a class="heading-anchor" href="#what-makes-a-good-show" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>A Show PR might be the right choice when:&lt;/p>
&lt;ul>
&lt;li>The change is trivial and within my area of responsibility&lt;/li>
&lt;li>No one is available to review, and waiting would block progress&lt;/li>
&lt;li>The PR includes clear context and reasoning&lt;/li>
&lt;li>I’m open to post-merge feedback&lt;/li>
&lt;li>I’m ready to follow up with adjustments if needed&lt;/li>
&lt;/ul>
&lt;h2 id="tips-for-making-it-work">Tips for making it work
&lt;a class="heading-anchor" href="#tips-for-making-it-work" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Some practical advice from experience:&lt;/p>
&lt;ul>
&lt;li>Clarify team expectations for when to use Show vs Ask&lt;/li>
&lt;li>Always provide context in your PR, even if merging immediately&lt;/li>
&lt;li>Write tests for any new logic or behavior&lt;/li>
&lt;li>Welcome post-merge feedback, review doesn’t stop at merge&lt;/li>
&lt;li>Reflect regularly as a team and adjust the approach as needed&lt;/li>
&lt;/ul>
&lt;hr />
&lt;p>Ship, Show, Ask is more than branching hygiene. It builds a culture of clarity, accountability, and trust, where developers move fast while staying thoughtful.&lt;/p>
&lt;p>If you’re tired of slow PR queues and over-engineered approvals, try it on your next change. Want to dive deeper? Read &lt;a rel="external" href="https://martinfowler.com/articles/ship-show-ask.html">Rouan Wilsenach’s original post&lt;/a>.&lt;/p>
&lt;blockquote>
&lt;p>Match the review to the risk. Own what you merge.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2025-04-12/footer.webp" alt="blog-footer" />&lt;/p></content></entry><entry xml:lang="en"><title>Digital Minimalism</title><subtitle>Choosing a Focused Life in a Noisy World</subtitle><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2025-02-16T00:00:00+00:00</published><updated>2025-02-16T00:00:00+00:00</updated><author><name>
Cal Newport</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/digital-minimalism/"/><id>https://chemaclass.com/readings/digital-minimalism/</id><summary type="html">Cal Newport's philosophy is not about rejecting technology but using it with intention, to reclaim focus and reduce anxiety.</summary><content type="html">&lt;p>In an era dominated by constant connectivity, the concept of digital minimalism emerges as a refreshing antidote. Coined by Cal Newport, this &lt;a href="/readings/meditations/">philosophy&lt;/a> isn’t about rejecting technology but rather about using it with greater intention and care. By implementing digital minimalism, individuals can reclaim focus, reduce anxiety, and cultivate deeper, more meaningful relationships.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="the-core-principles-of-digital-minimalism">The Core Principles of Digital Minimalism
&lt;a class="heading-anchor" href="#the-core-principles-of-digital-minimalism" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Newport’s approach to digital minimalism is built on three fundamental ideas:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Clutter is Costly&lt;/strong>: Unnecessary digital distractions fragment our attention and drain our mental energy. By decluttering our digital lives, we regain control over our focus and time.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Optimization is Essential&lt;/strong>: Rather than mindlessly accepting every new app or platform, digital minimalists carefully curate their technology use to align with their values and goals.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Intentionality is Key&lt;/strong>: Digital minimalists don’t just cut back on screen time; they deliberately choose how and when to engage with technology to maximize its benefits while minimizing its drawbacks.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="the-30-day-digital-declutter">The 30-Day Digital Declutter
&lt;a class="heading-anchor" href="#the-30-day-digital-declutter" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>One of Newport’s most actionable strategies is the 30-day digital declutter. The idea is simple:&lt;/p>
&lt;ul>
&lt;li>Take a &lt;strong>30-day break&lt;/strong> from all non-essential digital tools.&lt;/li>
&lt;li>During this period, &lt;strong>explore alternative offline activities&lt;/strong> that bring fulfillment.&lt;/li>
&lt;li>After 30 days, &lt;strong>reintroduce only&lt;/strong> the digital tools that &lt;strong>add value to your life&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;p>This method serves as a reset, allowing individuals to assess which technologies truly enhance their lives rather than simply consuming their time.&lt;/p>
&lt;h2 id="the-benefits-of-digital-minimalism">The Benefits of Digital Minimalism
&lt;a class="heading-anchor" href="#the-benefits-of-digital-minimalism" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Those who embrace digital minimalism often report:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Improved Focus&lt;/strong>: With fewer distractions, deep work and meaningful projects become easier to accomplish.&lt;/li>
&lt;li>&lt;strong>Reduced Anxiety&lt;/strong>: Less exposure to social media and endless notifications results in a calmer, more present mindset.&lt;/li>
&lt;li>&lt;strong>Richer Relationships&lt;/strong>: By prioritizing face-to-face interactions, digital minimalists cultivate stronger and more meaningful personal connections.&lt;/li>
&lt;li>&lt;strong>Increased Productivity&lt;/strong>: Fewer digital distractions translate into higher efficiency and greater creative output.&lt;/li>
&lt;/ul>
&lt;h2 id="practical-steps-to-get-started">Practical Steps to Get Started
&lt;a class="heading-anchor" href="#practical-steps-to-get-started" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>If you’re ready to experiment with digital minimalism, here are some simple steps to begin:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Audit Your Digital Life&lt;/strong>: Identify which apps, platforms, and devices are consuming the most time without offering meaningful benefits.&lt;/li>
&lt;li>&lt;strong>Set Screen Time Limits&lt;/strong>: Use built-in tools on your phone or computer to cap the amount of time spent on certain apps.&lt;/li>
&lt;li>&lt;strong>Establish Tech-Free Zones&lt;/strong>: Designate areas like the bedroom or dining table as screen-free spaces.&lt;/li>
&lt;li>&lt;strong>Prioritize Analog Activities&lt;/strong>: Replace digital distractions with books, hobbies, and in-person interactions.&lt;/li>
&lt;li>&lt;strong>Schedule “Offline” Hours&lt;/strong>: Set intentional times during the day when you completely disconnect from digital devices.&lt;/li>
&lt;/ul>
&lt;h2 id="final-thoughts">Final Thoughts
&lt;a class="heading-anchor" href="#final-thoughts" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Digital minimalism &lt;strong>is not about rejecting technology&lt;/strong> altogether. &lt;strong>It’s about using it in a way that enhances&lt;/strong> rather than diminishes &lt;strong>our quality of life&lt;/strong>. By taking a more mindful approach to our digital &lt;a href="/tags/habits/">habits&lt;/a>, we can reclaim our time, improve our well-being, and refocus on what truly matters.&lt;/p>
&lt;hr />
&lt;h2 id="video-summary">Video Summary
&lt;a class="heading-anchor" href="#video-summary" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/sJdZ7kmA2QQ"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h3 id="cal-newport-interviewed-by-lex-fridman">Cal Newport interviewed by Lex Fridman
&lt;a class="heading-anchor" href="#cal-newport-interviewed-by-lex-fridman" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/y3Umo_jd5AA"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>What Is Waterfall?</title><subtitle>What makes Waterfall a poor fit for modern software development?</subtitle><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2024-08-01T00:00:00+00:00</published><updated>2024-08-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/what-is-waterfall/"/><id>https://chemaclass.com/blog/what-is-waterfall/</id><summary type="html">Waterfall moves through fixed stages and gives no feedback until each one ends. Why that clashes with how software really evolves.</summary><content type="html">&lt;p>Waterfall is like following a straight path where you move from one step to the next in a defined order, like water flowing down a waterfall through different stages.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>The problem is that each step can take a lot of time and resources to complete. Plus, you don’t get feedback until the entire stage is finished, which can lead to a lot of wasted time. This is especially tricky in software development, where things are always changing and evolving.&lt;/p>
&lt;p>It usually follows a straightforward sequence like this:&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-08-01/waterfall.webp" alt="Waterfall img from Comic Agile" />&lt;/p>
&lt;h2 id="the-reality-of-waterfall">The reality of Waterfall
&lt;a class="heading-anchor" href="#the-reality-of-waterfall" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Waterfall can be like communism in theory, it seems perfect on paper but doesn’t work in the real world.&lt;/p>
&lt;ul>
&lt;li>Clients often don’t know exactly what they want.&lt;/li>
&lt;li>Requirements are constantly changing.&lt;/li>
&lt;li>Businesses need to quickly adapt to market shifts and client needs.&lt;/li>
&lt;li>Software needs to be flexible to keep up with these changes.&lt;/li>
&lt;/ul>
&lt;p>So, in a constantly changing world, Waterfall can really hurt a business. It tends to frustrate developers and teams, and it can also annoy clients and the businesses paying for the software. This usually leads to delays and extra costs.&lt;/p>
&lt;h2 id="why-companies-still-use-waterfall">Why companies still use Waterfall
&lt;a class="heading-anchor" href="#why-companies-still-use-waterfall" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Even with its problems, a lot of companies still use Waterfall because it seems straightforward and logical. This makes them reluctant to take the time to learn Agile. Plus, getting management to agree to switch to Agile can be a tough sell, especially since it requires an investment in time and learning.&lt;/p>
&lt;p>The big issue is when higher-ups dictate exactly how teams should work, leading to micromanagement. This messes up the flexibility that Agile brings. From what I’ve seen, this is a common problem.&lt;/p>
&lt;blockquote>
&lt;p>Looking back, switching to Agile could have fixed a lot of issues.&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;p>&lt;img src="/images/blog/2024-08-01/footer.webp" alt="agile vs waterfall" />&lt;/p>
&lt;h2 id="why-agile-was-created">Why Agile was created
&lt;a class="heading-anchor" href="#why-agile-was-created" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Agile was created to overcome the limits of the Waterfall method. It focuses on constant interaction with clients and teams.&lt;/p>
&lt;p>Agile builds autonomous and responsible teams that handle tasks from start to finish, reducing wasted time and resources. It emphasizes flexibility, collaboration, and customer feedback.&lt;/p>
&lt;p>Unlike Waterfall, Agile uses iterative development, breaking projects into small, manageable sprints or iterations that last 1-4 weeks. Each cycle includes planning, development, testing, and review, aiming to deliver value quickly and gather feedback to improve.&lt;/p>
&lt;h3 id="key-aspects-of-agile">Key aspects of Agile
&lt;a class="heading-anchor" href="#key-aspects-of-agile" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Iterative Development&lt;/strong>: Work in small chunks and adjust as you go.&lt;/li>
&lt;li>&lt;strong>Customer Collaboration&lt;/strong>: Keep talking with clients to make sure they’re happy.&lt;/li>
&lt;li>&lt;strong>Cross-Functional Teams&lt;/strong>: Teams with different skills working together.&lt;/li>
&lt;li>&lt;strong>Adaptive Planning&lt;/strong>: Stay flexible and tweak plans based on feedback.&lt;/li>
&lt;li>&lt;strong>Continuous Improvement&lt;/strong>: Always look for ways to get better.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>Read the original &lt;a rel="external" href="https://agilemanifesto.org/">Agile Manifesto&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h3 id="where-can-you-start">Where can you start?
&lt;a class="heading-anchor" href="#where-can-you-start" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>As a developer, you can boost your agility by diving into &lt;a href="/blog/effective-pair-programming/">pair programming&lt;/a> and &lt;a href="/blog/test-driven-development/">TDD&lt;/a>.&lt;/p>
&lt;ul>
&lt;li>With pair programming, two developers work side by side, which means you get instant feedback and shared problem-solving, leading to better code.&lt;/li>
&lt;li>TDD, on the other hand, involves writing tests before the code, which help specifying what you want to do, focusing on baby steps.&lt;/li>
&lt;/ul>
&lt;p>Together, these practices make your development process more flexible, collaborative, and high-quality, fitting right in with Agile’s focus on quick adjustments and continuous improvement. See more practices &lt;a href="/readings/extreme-programming-explained/#practices">here&lt;/a>.&lt;/p>
&lt;blockquote>
&lt;p>The key is collaboration, baby steps, and quick feedback on everything you work on.&lt;/p>
&lt;/blockquote>
&lt;h2 id="my-experience-with-agile">My experience with Agile
&lt;a class="heading-anchor" href="#my-experience-with-agile" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>I’ve &lt;a href="/talks/">talked&lt;/a> about Agile at various tech events and explored it in depth because I’m passionate about how it can supercharge software teams. When done right, Agile can completely change how teams work, making them faster, more efficient, and better at delivering what clients and businesses really need.&lt;/p>
&lt;ul>
&lt;li>2022-06-26 | &lt;a rel="external" href="https://phpconference.com/mixed/update-your-team-to-be-more-extreme/">International PHP Conference&lt;/a> [Berlin, Germany] (EN)&lt;/li>
&lt;li>2022-09-16 | &lt;a rel="external" href="https://web.archive.org/web/20231231183058/https://codetalks.de/">Code Talks&lt;/a> [Hamburg, Germany] (EN)&lt;/li>
&lt;li>2022-10-26 | &lt;a rel="external" href="https://phpconference.com/mixed/update-your-team-to-be-more-extreme/">International PHP Conference&lt;/a> [Munich, Germany] (EN)&lt;/li>
&lt;li>2022-12-21 | IES Ginés Pérez Chirinos [Murcia, Spain] (ES)&lt;/li>
&lt;li>2023-01-19 | &lt;a rel="external" href="https://devm.io/update-your-team-to-be-more-extreme/">devm.io&lt;/a> [Remote] (EN)&lt;/li>
&lt;li>2023-07-28 | &lt;a rel="external" href="https://www.wearedevelopers.com/world-congress">WeAreDeveloper World Congress&lt;/a> [Berlin, Germany] (EN)&lt;/li>
&lt;/ul>
&lt;h3 id="wearedevelopers-world-congress-in-berlin">WeAreDevelopers World Congress in Berlin
&lt;a class="heading-anchor" href="#wearedevelopers-world-congress-in-berlin" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/dqtAyl-SvaY"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>Deployments on Fridays</title><subtitle>Why "should we not" deploy to production on Fridays?</subtitle><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="xp" scheme="https://chemaclass.com/tags/xp/" label="Xp"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2024-02-25T00:00:00+00:00</published><updated>2024-02-25T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/deployments-on-fridays/"/><id>https://chemaclass.com/blog/deployments-on-fridays/</id><summary type="html">The panic around deploying on Fridays. Does banning a whole day of delivering value to your customers actually make sense?</summary><content type="html">&lt;p>I have heard multiple times, from various people, the idea of panic towards deploying on Fridays. How good is that idea of banning the day before weekend from delivering new value to our clients or customers?&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>The main argument in favor of NOT deploying on Friday is based on the idea that we “should be paranoid” with our software and that it could fail when we touch it. So, we “should assume” the worst whenever we deploy a new release version of our system.&lt;/p>
&lt;p>However, the critical factor here is Why? Why should we not deploy on Fridays? Is it OK to be afraid of our own software system, that we live in a constant panic of breaking it the day after we have done a deployment? How much impact should our releases have? How can we make sure the deployment won’t break the live system?&lt;/p>
&lt;p>Your Continuous Integration/Delivery pipelines, end-to-end and other types of tests in place, automated scaling policies, a previous staging sandbox to perform even manual tests if necessary, etc., will determine the security and confidence for any of your releases. However, the quality of these topics is a deal-breaker to have enough confidence on how, when and why would it make sense to release to production.&lt;/p>
&lt;p>The goal is build a system where deployments to production should be as often, smooth and easy as possible; any time, any day. Being afraid of your system should not be the aim. On the contrary, it should be something to work towards to fix it.&lt;/p>
&lt;p>The team dynamics are also an essential factor here. If we establish fear of deployments on Fridays, and fear of our system, that will end up in lack of accountability by default. This reminds me of &lt;a href="/readings/the-five-dysfunctions-of-a-team/">The Five Dysfunctions of a Team&lt;/a>.&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-02-25/middle.webp" alt="deploying on fridays" />&lt;/p>
&lt;p>If you deploy small and frequent changes as soon as they can guarantee 100% quality value success, why delay such an incremental improvement to your system?&lt;/p>
&lt;p>Coming back to “Why should we not deploy on Fridays?” The only reason I can think of is being afraid that we have to work on Saturday on the broken thing we delivered on Friday. However, I wonder if any option was available, so we could have identified such a broken thing during the working Friday itself.&lt;/p>
&lt;p>Monitoring your live system is crucial to guarantee the health after each deployment. This is essential to ensure everything is working fine and smoothly. To build a resilience system, this should trigger alarms to notify someone responsible for addressing the issue, disable or revert the latest “broken” feature… there are many techniques to create awareness and act on them.&lt;/p>
&lt;p>In case of doubt, you could use feature flags to disable the feature you will deploy. Still, you prefer not to enable it during the weekend while keeping the option of adding value and deploying anytime always open.&lt;/p>
&lt;p>I believe &lt;strong>frequent&lt;/strong> and &lt;strong>small releases&lt;/strong> to production &lt;strong>are key&lt;/strong>; any time, any date, as far as it makes sense, and there is a clear path to bringing value soon to the customer to get &lt;a href="/blog/ship-show-ask/">feedback&lt;/a> ASAP.&lt;/p>
&lt;blockquote>
&lt;p>Deliver quality value in small increments, as frequently as possible.&lt;/p>
&lt;/blockquote>
&lt;p>Being able to deploy on Fridays (if needed or wanted) impacts the team’s confidence. Similarly, forbidding deployments on Fridays impacts the team’s self-esteem as well.&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-02-25/footer.webp" alt="frequent small releases" />&lt;/p></content></entry><entry xml:lang="en"><title>The Lean Startup</title><subtitle>How Today's Entrepreneurs Use Continuous Innovation to Create Radically Successful</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><published>2024-01-26T00:00:00+00:00</published><updated>2024-01-26T00:00:00+00:00</updated><author><name>
Eric Ries</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/the-lean-startup/"/><id>https://chemaclass.com/readings/the-lean-startup/</id><summary type="html">Most startups fail, and many of those failures are preventable. The approach that changed how companies build and launch.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Most startups fail. But many of those failures are preventable. The Lean Startup is a new approach being adopted across the globe, changing the way companies are built and new &lt;a href="/readings/continuous-discovery-habits/">products&lt;/a> are launched.&lt;/p>
&lt;p>Eric Ries defines a startup as an organization dedicated to creating something new under conditions of extreme &lt;a href="/readings/sprint/">uncertainty&lt;/a>. This is just as true for one person in a garage or a group of seasoned professionals in a Fortune 500 boardroom. What they have in common is a mission to penetrate that fog of uncertainty to discover a successful path to a sustainable business.&lt;/p>
&lt;h2 id="key-takeaways">Key Takeaways
&lt;a class="heading-anchor" href="#key-takeaways" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;ul>
&lt;li>Test frequently and learn quickly&lt;/li>
&lt;li>Observe and measure real customer behaviour&lt;/li>
&lt;li>Focus exclusively on capturing actionable Metrics&lt;/li>
&lt;li>Be comfortable pivoting based on key learnings&lt;/li>
&lt;li>Embrace new accounting methods&lt;/li>
&lt;li>Learn what is not working and apply changes immediately: stay lean&lt;/li>
&lt;/ul>
&lt;h3 id="summary">Summary
&lt;a class="heading-anchor" href="#summary" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/RSaIOCHbuYw"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/fEvKo90qBns"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>Invincible</title><subtitle>Achieve More, Suffer Less</subtitle><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2023-12-09T00:00:00+00:00</published><updated>2023-12-09T00:00:00+00:00</updated><author><name>
Marcos Vazquez</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/invincible/"/><id>https://chemaclass.com/readings/invincible/</id><summary type="html">Marcos Vazquez combines stoic philosophy with modern psychology to train your mind for clarity, determination, and discipline in the face of adversity.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>The quality of your life depends on the quality of your mind. Unfortunately, we spend little time improving our thoughts, and it is rarely taught at school. As a result, we go through life without really understanding how to use our mind.&lt;/p>
&lt;p>We have in our head the most sophisticated object in the world, but we barely know how it works. Most people are unable to direct their mental strength toward the goals they truly desire. They get distracted and frustrated. They can’t resist temptation or persevere in the face of adversity. In the end, they quit.&lt;/p>
&lt;p>Luckily, our mind can be trained, and this book will show you how. It combines &lt;strong>stoic &lt;a href="/readings/meditations/">philosophy&lt;/a>&lt;/strong> with &lt;strong>modern psychology&lt;/strong>, and provides the tools to help you visualize with clarity, act with determination and resist with discipline.&lt;/p>
&lt;blockquote>
&lt;p>“We suffer not from the events in our lives, but from our judgement about them.” Epictetus.&lt;/p>
&lt;/blockquote>
&lt;p>Any external change requires an internal change first. If you want to transform your body, you must start from within. A weak mind will never create a strong body.&lt;/p>
&lt;p>This book will help you use your mind to improve your body, but it actually goes much further. It is not a simple guide to optimize your daily &lt;a href="/readings/atomic-habits/">habits&lt;/a>, but rather it aims to guide your own philosophy of life. The tools you will develop will help you with anything you want to achieve. Life is always simpler with clarity, determination and discipline.&lt;/p>
&lt;h4 id="the-philosophy-of-stoicism">The philosophy of Stoicism
&lt;a class="heading-anchor" href="#the-philosophy-of-stoicism" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/R9OCA6UFE-0"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>Never Ending Loop</title><subtitle>Writing to help myself sleep</subtitle><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2023-07-05T00:00:00+00:00</published><updated>2023-07-05T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/never-ending-loop/"/><id>https://chemaclass.com/blog/never-ending-loop/</id><summary type="html">It is hard to get to bed with a blank mind when you are already on the next reading, talk or post. On the never ending loop.</summary><content type="html">&lt;p>It is hard sometimes to get to bed with the mind blank because, more often than not, I think about my next reading, learning, talk, or what I will write this or next month.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>It is funny to remind that eight years ago, I stayed up for hours until all kinds of thoughts got out on paper, so I used to write one or more of them every week. Sometimes innocent thoughts came to my brain and didn’t let me sleep properly. Sometimes deep and full of worry that reflected how I struggled with certain situations that I was living in or remembering from my past youth.&lt;/p>
&lt;p>I kept writing for three years; I wrote a lot, another format than I usually do today; a deep and personal &lt;a rel="external" href="https://chemaclass.com/books/">book&lt;/a> about my thoughts and feelings with the primary &lt;a href="/readings/start-with-why/">motivation&lt;/a> of reading them later and doing some retrospectives to help me understand myself better. Nowadays, I like to mix my passion around &lt;a href="/blog/different-beliefs-about-software-quality/">software quality&lt;/a> and people puzzles to achieve true excellence in my profession, always aiming for an honest and healthy egoism of helping others that could help me later. The better the people around me are, the better they will help others and me.&lt;/p>
&lt;p>Back then, I used to write about my current and past feelings, always with a touch of illusion wanting to express myself differently for my future self. I remember clearly, in the beginning, I wanted the main readers to be my siblings, my family, to know how I was doing so far away from all of them, after migrating to another country, far away from my family. However, as the months passed by, the main reader changed to be no one but myself.&lt;/p>
&lt;p>I spent hours on each thought, page, chapter… Drafting the initial idea and then reading it out loud once, twice, again, and again the day afterward. Helping this way to discover that part of myself that tried to reflect what was going on inside.&lt;/p>
&lt;p>I can see some similarities nowadays. However, I no longer see the need to write about those deep old past thoughts because they healed. Instead, I can reflect and see how they did and how.&lt;/p>
&lt;p>Writing is one of my favorite ways to express myself, especially when I cannot sleep. It reminds me of those years, and I think greatly about the incredible evolution since then.&lt;/p>
&lt;p>&lt;img src="/images/blog/2023-07-05/footer.webp" alt="blog-footer" />&lt;/p>
&lt;blockquote>
&lt;p>Original photos from my trip to Tuscany, Italy, last month.&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="en"><title>Learned Helplessness</title><subtitle>An acceptance of powerlessness</subtitle><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2023-06-08T00:00:00+00:00</published><updated>2023-06-08T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/learned-helplessness/"/><id>https://chemaclass.com/blog/learned-helplessness/</id><summary type="html">Learned helplessness sets in when someone accepts their powerlessness and stops trying to escape. What it is, and how it breaks.</summary><content type="html">&lt;p>Learned helplessness is the behavior exhibited by a subject after enduring repeated aversive stimuli beyond their control.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>It was initially thought to be caused by the subject’s acceptance of their powerlessness by discontinuing attempts to escape or avoid the aversive stimulus.&lt;/p>
&lt;h2 id="experiments">Experiments
&lt;a class="heading-anchor" href="#experiments" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="a-classroom-with-different-assessments">A classroom with different assessments
&lt;a class="heading-anchor" href="#a-classroom-with-different-assessments" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/gFmFOmprTt0"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;blockquote>
&lt;p>Charisse Nixon, Ph.D Developmental Psychologist at Penn State Erie, The Behrend College and Director of Research and Evaluation for The Ophelia Project discusses the phenomenon of learned helplessness.&lt;/p>
&lt;/blockquote>
&lt;h3 id="original-docking-shocks-and-harnesses">Original: Docking shocks and harnesses
&lt;a class="heading-anchor" href="#original-docking-shocks-and-harnesses" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>In 1967, the American psychologist Martin Seligman at the University of Pennsylvania researched docking shocks and harnesses.&lt;/p>
&lt;p>In &lt;strong>Part 1&lt;/strong> of this study, three groups of dogs were placed in harnesses. Group 1 dogs were put in a harness for some time and released later. Groups 2 and 3 consisted of “yoked pairs.” Dogs in Group 2 were given electric shocks randomly, which the dog could end by pressing a lever. Each dog in Group 3 was paired with a Group 2 dog; whenever a Group 2 dog got a shock, its paired dog in Group 3 got a shock of the same intensity and duration, but its lever did not stop the shock. To a dog in Group 3, it seemed that the shock ended randomly because their paired dog in Group 2 was causing it to stop. Thus, for Group 3 dogs, the shock was “inescapable.”&lt;/p>
&lt;p>In &lt;strong>Part 2&lt;/strong> of the experiment, the same three groups of dogs were tested in a shuttle-box apparatus (a chamber containing two rectangular compartments divided by a barrier a few inches high). The dogs could escape shocks on one side of the box by jumping over a low partition to the other. The dogs in Groups 1 and 2 quickly learned this task and escaped the shock. Most of the Group 3 dogs, which had previously “learned” that nothing they did affected the shocks, lay down passively and whined when shocked.&lt;/p>
&lt;hr />
&lt;p>Even though this experiment was demonstrated with different types of animals, it also applies to people. This is visible in children when they integrate early failure to ask for help, frustration, giving up, poor &lt;a href="/readings/start-with-why/">motivation&lt;/a>, and procrastination. And these points carry on as people age.&lt;/p>
&lt;blockquote>
&lt;p>Because, if you “cannot do anything”, why would you even try it?&lt;/p>
&lt;/blockquote>
&lt;p>All this leads to anxiety and depression, and people think nothing can be done about their current situations and feelings.&lt;/p>
&lt;h2 id="learned-optimism">Learned optimism
&lt;a class="heading-anchor" href="#learned-optimism" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>The antidote to learned helplessness is &lt;strong>learned optimism&lt;/strong>. These people are higher achievers, have better overall health, and have lower levels of depression.&lt;/p>
&lt;h3 id="how-do-you-practice-it">How do you practice it?
&lt;a class="heading-anchor" href="#how-do-you-practice-it" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Permanence&lt;/strong>: bad events or failures are not permanent. So, you can recover faster than people stuck in these situations. However, good things or events happen for a good reason that you’ve worked on.&lt;/li>
&lt;li>&lt;strong>Pervasiveness&lt;/strong>: do not generalize failure. Failing in one area in your life should not affect other areas.&lt;/li>
&lt;li>&lt;strong>Personalization&lt;/strong>: bad events are external to blame, outside yourself, as you did all you could have done.&lt;/li>
&lt;/ul>
&lt;p>Isolate the problem and don’t extrapolate it to other areas. Stop generalizing failure.&lt;/p>
&lt;hr />
&lt;h3 id="english">English
&lt;a class="heading-anchor" href="#english" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/Z8n1oUhp-EM"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h3 id="espanol">Español
&lt;a class="heading-anchor" href="#espanol" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/E99XmEIPmf8"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>Effective Remote Work</title><subtitle>For Yourself, Your Team, and Your Company</subtitle><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><published>2023-04-17T00:00:00+00:00</published><updated>2023-04-17T00:00:00+00:00</updated><author><name>
James Stanier</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/effective-remote-work/"/><id>https://chemaclass.com/readings/effective-remote-work/</id><summary type="html">An effective remote work environment is about treating everyone as remote, with everyone in mind having the same level, equality, and information.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>An effective &lt;a href="/readings/peopleware/">remote work environment&lt;/a> is about treating everyone as remote, with everyone in mind having the same level, &lt;a href="/readings/team-topologies/">equality&lt;/a>, and information.&lt;/p>
&lt;hr />
&lt;h2 id="part-1-getting-oriented-for-remote-work">Part 1 - Getting oriented for remote work
&lt;a class="heading-anchor" href="#part-1-getting-oriented-for-remote-work" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>It covers the foundation for a possible remote work environment. It seems a bit common sense nowadays, especially after the covid hit, where we had no choice but to work remotely for more than a year. But I think it’s still good to see this foundational knowledge written to polish assumptions in the following chapters of the book.&lt;/p>
&lt;h3 id="chapters">Chapters
&lt;a class="heading-anchor" href="#chapters" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>A remote future&lt;/strong>: A brief history of the future. Lockdown. Remote is here to stay. Time to get set up.&lt;/li>
&lt;li>&lt;strong>Getting set up&lt;/strong>: The office: what we want and what we don’t. The basics, briefly. In the real world. Installing mental scaffolding. The golden rule.&lt;/li>
&lt;/ul>
&lt;h2 id="part-2-building-effective-remote-teams">Part 2 - Building effective remote teams
&lt;a class="heading-anchor" href="#part-2-building-effective-remote-teams" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Most likely, we all had the experience of casual remote work (before remote work was even a trend) when we felt that we were apart from the team dynamics when we were doing remote work for some reason. This is precisely why “treat everyone as remote” is so important - when at least one person works remotely.&lt;/p>
&lt;p>There are different ways to communicate depending on the urgency, intention, and how long and easy that message should be accessible. It’s about sync/async communication with our peers.&lt;/p>
&lt;p>Highly related to the previous paragraph, the quality of our messages should be considered when aiming for effective communication. We need to consider the right tools. A phone call is different from a chat message or an email. Use the right tools for the right messages within the proper context.&lt;/p>
&lt;h3 id="chapters-1">Chapters
&lt;a class="heading-anchor" href="#chapters-1" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Treat everyone as remote&lt;/strong>: Out of sight, out of mind. A principle for cultural change. Taking practical action. Let’s build a model!&lt;/li>
&lt;li>&lt;strong>The spectrum of synchronousness&lt;/strong>: Synchronousness. Permanence. Restoring your humanity. Onward to Hyrule.&lt;/li>
&lt;li>&lt;strong>The same but different&lt;/strong>: A normal day in the office. Through the magic mirror. Conquering the dark world. Let’s discover some artifacts.&lt;/li>
&lt;li>&lt;strong>Artifacts for a better future&lt;/strong>: Comparing artifacts. Written artifacts. Codebase and recorded artifacts. Getting on board with onboarding.&lt;/li>
&lt;li>&lt;strong>Onboarding and orientation&lt;/strong>: The contribution curve. The onboarding equation. And here’s the trick. Considering communication.&lt;/li>
&lt;li>&lt;strong>Effective communication techniques&lt;/strong>: Why humans communicate. Principles for better remote communication. Techniques to improve interactions. The right tools and when to use them. Turning inwards.&lt;/li>
&lt;li>&lt;strong>Managing yourself&lt;/strong>: An organizational bedrock. On being unobserved. Riding peaks and troughs. From yourself to teams.&lt;/li>
&lt;li>&lt;strong>Managing teams&lt;/strong>: The output equation revisited. Shrinking the scale factor. Supercharging the scale factor. Time to take it up a level.&lt;/li>
&lt;/ul>
&lt;h2 id="part-3-creating-a-world-class-remote-culture">Part 3 - Creating a world-class remote culture
&lt;a class="heading-anchor" href="#part-3-creating-a-world-class-remote-culture" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Even though a fully remote company might not be possible for some reasons out of our control, if the company claims to be remote-friendly, there are some aspects that we can consider:&lt;/p>
&lt;ol>
&lt;li>Do you treat everyone as remote?&lt;/li>
&lt;li>Do you provide a remote work-space setup?&lt;/li>
&lt;li>Do you spend money equally on in-office and remote staff?&lt;/li>
&lt;li>Do you optimize for asynchronous communication?&lt;/li>
&lt;li>Do you create artifacts from synchronous interactions?&lt;/li>
&lt;li>Do you measure staff by their impact?&lt;/li>
&lt;li>Do you allow staff to choose flexible hours?&lt;/li>
&lt;li>Are the members of the executive team remote workers?&lt;/li>
&lt;li>Do you use the best collaborative tools that money can buy?&lt;/li>
&lt;li>Do you hire staff anywhere in the world?&lt;/li>
&lt;li>Do you support families as well as employees?&lt;/li>
&lt;li>Do you give back to an employee’s local community?&lt;/li>
&lt;/ol>
&lt;blockquote>
&lt;p>This is a “Joel Test version for a remote working environment”. The Joel Test originated in the year 2000, during the dot-com bubble; a test to rate the quality of teams with “yes/no” questions. If a team can answer each question wit a yes, they’re likely a productive team. &lt;a rel="external" href="https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/">Read more about the original Joel Test&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h3 id="chapters-2">Chapters
&lt;a class="heading-anchor" href="#chapters-2" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>The remote working test&lt;/strong>: The joel test. Twelve questions about remote working. Making changes in your company. Something to guide us.&lt;/li>
&lt;li>&lt;strong>Creating a handbook&lt;/strong>: The GitLab handbook. Creating a handbook for your team. A handbook for the company. Fully making the shift.&lt;/li>
&lt;li>&lt;strong>Becoming fully remote&lt;/strong>: The spectrum of remoteness. The challenge of retrofitting fully remote culture. The triangle of transition. Learning from trailblazers. Now the difficult stuff.&lt;/li>
&lt;li>&lt;strong>The hard parts&lt;/strong>: Walking the curves. The physical and mental impact of working remotely. Supporting other remotely.&lt;/li>
&lt;li>&lt;strong>The path to equality is remote&lt;/strong>: Diversity and inclusion. Remote: The great leveler. This is just the beginning.&lt;/li>
&lt;/ul>
&lt;hr />
&lt;h2 id="book-summary">Book summary
&lt;a class="heading-anchor" href="#book-summary" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/6BFIg6Opd1c"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>Accelerate</title><subtitle>Building and Scaling High Performing Technology Organizations</subtitle><category term="devops" scheme="https://chemaclass.com/tags/devops/" label="Devops"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2023-03-19T00:00:00+00:00</published><updated>2023-03-19T00:00:00+00:00</updated><author><name>
Nicole Forsgren</name></author><author><name>
Jez Humble</name></author><author><name>
Gene Kim</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/accelerate/"/><id>https://chemaclass.com/readings/accelerate/</id><summary type="html">The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Accelerate explores how software development teams using &lt;strong>Lean Software&lt;/strong> and &lt;strong>DevOps&lt;/strong> can measure their performance and the performance of software engineering teams impacts the overall performance of an organization.&lt;/p>
&lt;blockquote>
&lt;p>Note: DevOps is about integrating and automating software development (Dev) and IT operations (Ops), focusing on improving (and shortening) the systems development life cycle.&lt;/p>
&lt;/blockquote>
&lt;h2 id="key-capabilities">Key Capabilities
&lt;a class="heading-anchor" href="#key-capabilities" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="continuous-delivery">Continuous Delivery
&lt;a class="heading-anchor" href="#continuous-delivery" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Use Version Control for all Production Artifacts&lt;/li>
&lt;li>Automate Your Deployment Process&lt;/li>
&lt;li>Implement Continuous Integration&lt;/li>
&lt;li>Use Trunk-Based Development Methods&lt;/li>
&lt;li>Implement Test Automation&lt;/li>
&lt;li>Continuous Delivery (CD)&lt;/li>
&lt;/ul>
&lt;h3 id="architecture">Architecture
&lt;a class="heading-anchor" href="#architecture" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Use a Loosely Coupled Architecture&lt;/li>
&lt;/ul>
&lt;h3 id="product-and-process">Product and Process
&lt;a class="heading-anchor" href="#product-and-process" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Gather and Implement Customer Feedback&lt;/li>
&lt;li>Make the Flow of Work Visible through the Value Stream&lt;/li>
&lt;li>Work in Small Batches&lt;/li>
&lt;li>Foster and Enable Team Experimentation&lt;/li>
&lt;/ul>
&lt;h3 id="lean-management-and-monitoring">Lean Management and Monitoring
&lt;a class="heading-anchor" href="#lean-management-and-monitoring" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Have a Lightweight Change Approval Processes&lt;/li>
&lt;li>Monitor across Application and Infrastructure to Inform Business Decisions&lt;/li>
&lt;li>Check System Health Proactively&lt;/li>
&lt;li>Improve Processes and Manage Work with WIP (Work-In-Process) Limits&lt;/li>
&lt;li>Visualize Work to Monitor Quality and Communicate throughout the Team&lt;/li>
&lt;/ul>
&lt;h3 id="cultural">Cultural
&lt;a class="heading-anchor" href="#cultural" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Support a Generative Culture&lt;/li>
&lt;li>Encourage and Support Learning&lt;/li>
&lt;li>Support and Facilitate Collaboration among Teams&lt;/li>
&lt;li>Provide Resources and Tools that Make Work Meaningful&lt;/li>
&lt;li>Support or Embody Transformational &lt;a href="/blog/the-beauty-of-leadership/">Leadership&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="four-key-metrics">Four Key Metrics
&lt;a class="heading-anchor" href="#four-key-metrics" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Change Lead Time&lt;/strong>
&lt;ul>
&lt;li>Time to implement, test, and deliver code for a feature&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Deployment Frequency&lt;/strong>
&lt;ul>
&lt;li>Number of deployments in a given duration of time&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Change Failure Rate&lt;/strong>
&lt;ul>
&lt;li>Percentage of failed changes over all changes (regardless of success)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Mean Time to Recovery&lt;/strong>
&lt;ul>
&lt;li>Time it takes to restore service after production failure&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/_d9cws_T9qk"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>Have You Always Been Like This?</title><subtitle>How to find a balance of growth and happiness</subtitle><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2023-03-16T00:00:00+00:00</published><updated>2023-03-16T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/have-you-always-been-like-this/"/><id>https://chemaclass.com/blog/have-you-always-been-like-this/</id><summary type="html">Always reading, writing and speaking? The short answer is no. How I ended up here, and what changed along the way.</summary><content type="html">&lt;p>I’ve got this question recently, a couple of times, and this is a great topic to share.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;blockquote>
&lt;p>“Have you always been like this? Constantly reading books, writing blog posts, public speaker in conferences and meet-ups, learning in your private time, etc…?”&lt;/p>
&lt;/blockquote>
&lt;p>The short answer is: no, and let me tell you how I ended up in this situation.&lt;/p>
&lt;hr />
&lt;h2 id="i-used-to-be-introvert">I used to be introvert
&lt;a class="heading-anchor" href="#i-used-to-be-introvert" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>I used to be an introvert, but with work and effort, I managed to master some public speaking skills.&lt;/p>
&lt;blockquote>
&lt;p>Sharing knowledge is hard because first, you need to have it.&lt;/p>
&lt;/blockquote>
&lt;p>I used to dislike reading; I always preferred other sources of getting information and learning new things. Of all of them, reading was the most boring one.&lt;/p>
&lt;blockquote>
&lt;p>Reading is hard, because it needs your entire attention.&lt;/p>
&lt;/blockquote>
&lt;p>However, I have always enjoyed writing since I was a kid. For personal circumstances, writing was a way to express and reflect on me, doing regular retrospectives about the ideas in my head.&lt;/p>
&lt;h3 id="writing-to-the-rescue">Writing to the rescue
&lt;a class="heading-anchor" href="#writing-to-the-rescue" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;blockquote>
&lt;p>Combining “sharing knowledge” and “reading” from and to myself.&lt;/p>
&lt;/blockquote>
&lt;p>Writing was (and still is) a way to sort out my thoughts, especially during hard times; writing was a way to escape from the world. It helped me to understand myself better the day after. And it worked.&lt;/p>
&lt;p>Knowing your limitations can help you understand your reality and fight against it. Life is hard enough to accept whatever “is there,” even if you are dissatisfied with it, especially if you have a reason for that.&lt;/p>
&lt;p>I learned that I don’t want to waste my time in a life I will regret when I die. For that reason, I started seeking opportunities to grow at everything I do all the time.&lt;/p>
&lt;h3 id="will-i-always-be-like-this">Will I always be like this?
&lt;a class="heading-anchor" href="#will-i-always-be-like-this" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;blockquote>
&lt;p>“Are you all the time 100% learning and being productive?”&lt;/p>
&lt;/blockquote>
&lt;p>You cannot be 100% productive all the time. That’s impossible because of our human nature. Life is about constant “ups and downs,” which is also part of its beauty. It’s your responsibility to understand yourself; I mean, truly understand your emotions and your persona.&lt;/p>
&lt;p>These are questions that can help you keep the focus while building yourself. When asking these types of questions, try looking from a rational and external point of view. Leave out emotions and personal feelings.&lt;/p>
&lt;ul>
&lt;li>Who are “you”?&lt;/li>
&lt;li>What differentiate “you” from other people?&lt;/li>
&lt;li>What differentiate “today’s you” from “you a year ago”?&lt;/li>
&lt;li>What about your “you” in 1 year?&lt;/li>
&lt;/ul>
&lt;hr />
&lt;p>Within your context and possibilities, you are what you choose to be. And that’s what differentiates you from your past and your future. The actions you do, the way you communicate and interact with others, the decisions you choose, etc…, differentiate you. That’s what differentiates you from yourself at another point in time.&lt;/p>
&lt;p>This is why I enjoy reading (or listening to a book) per month. This is why I enjoy learning anytime, all the time. This is why I like to share what I know with others. This is who I choose to be.&lt;/p>
&lt;p>A few years ago, I wrote about &lt;a href="/blog/the-process-itself-is-the-goal/">the process itself as the goal&lt;/a>, which says basically: “&lt;em>Repetition is the key. Make it easier to do what you want to do. Make it harder to do what you want to stop doing. Enjoy the process: that’s the goal.&lt;/em>”&lt;/p>
&lt;p>&lt;img src="/images/blog/2023-03-16/middle.webp" alt="blog-middle" />&lt;/p>
&lt;h2 id="how-much-time-do-i-have">How much time do I have?
&lt;a class="heading-anchor" href="#how-much-time-do-i-have" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>I like to prove myself wrong and challenge the status quo. I even decided to investigate, for example, how I could be one &lt;a rel="external" href="https://chemaclass.com/talks/">speaker&lt;/a> in an international conference last year. The hardest step is always the first; once you’re there, it’s more fun than you initially thought. I might write a dedicated post about this “public speaking” topic. For now, you can check some tips I wrote about &lt;a href="/blog/improve-your-tech-talk/">improving your public speaking talks&lt;/a>.&lt;/p>
&lt;p>Regarding reading, I need around 4 to 6 hours (on average) to finish a book. A typical working day can be divided into 3 slots of 8h; 8 sleep, 8 work, 8 leisure (or other obligations). I don’t work on the weekend, so those days are 16h each of leisure/obligations. So, assuming I work 5 days per week, this means &lt;em>5 days x 8 hours (working days) + 2 days x 16 hours (weekend) = 72 hours&lt;/em> of leisure/obligations time within a week!&lt;/p>
&lt;h3 id="time-is-not-the-problem">Time is not the problem
&lt;a class="heading-anchor" href="#time-is-not-the-problem" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Within a month, I have &lt;strong>72 hours x 4 weeks = 288 hours&lt;/strong> of leisure/obligations time to spare with my girlfriend, talking to my family, playing music, partying or chilling with friends, going to the gym, walking in a park, traveling to other cities…, but also going to the supermarket, doing the dishes, preparing the evening meals, clean the apartment, commuting to work…, all of this requires time as well.&lt;/p>
&lt;p>The problem isn’t time but the priorities I define. Within a month, I can really do a lot of things. The issue I usually encounter is not having a clear goal about what I want to reach in the middle-long goal for myself.&lt;/p>
&lt;p>There might be others, but &lt;a href="/readings/the-power-of-habits/">The power of habits&lt;/a> and &lt;a href="/readings/atomic-habits/">Atomic habits&lt;/a> were the books I read so far about habits that impacted me the most, and I think they might help you if you are struggling with habits that you would like to change anyhow. It all starts by understanding yourself within your context.&lt;/p>
&lt;p>I don’t expect things to change from one day to another. I enjoy experimenting, combining habits, and trying different approaches to improve and get the best out of them over time. Losing fear of failure and seeking constant and continuous improvement is a life-changing mentality.&lt;/p>
&lt;p>What keeps me moving is &lt;u>the time I have left&lt;/u> and the idea of thinking, “&lt;strong>what would I like to have changed?&lt;/strong>” And in such a case, “&lt;strong>Why didn’t I?&lt;/strong>”&lt;/p>
&lt;p>&lt;img src="/images/blog/2023-03-16/footer.webp" alt="blog-footer" />&lt;/p></content></entry><entry xml:lang="en"><title>Adapt or die</title><subtitle>How to Create Innovation, Solve People Puzzles, and Win in Business</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2023-02-26T00:00:00+00:00</published><updated>2023-02-26T00:00:00+00:00</updated><author><name>
Thomas H. Douglas</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/adapt-or-die/"/><id>https://chemaclass.com/readings/adapt-or-die/</id><summary type="html">Told through the story of People First IT, this book lays out The Algorithm of Success for changing every part of an organization.</summary><content type="html">&lt;p>Told through the story of one bold company (People First IT), Adapt or Die takes readers through the unparalleled business system known as The Algorithm of Success that has the potential to inspire, ignite, and affect change for all aspects of an organization.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Each chapter reveals more of the winning formula that all small and midsize businesses absolutely must have to succeed. Through real examples, research, and practical tools, Adapt or Die unpacks exactly how to create innovation, solve people puzzles, and win in business.&lt;/p>
&lt;blockquote>
&lt;p>“&lt;a href="/blog/the-beauty-of-leadership/">Leadership&lt;/a> is about helping people adapt and leading through change so the business and its people can thrive.”&lt;/p>
&lt;/blockquote>
&lt;h2 id="why-businesses-fail">Why businesses fail?
&lt;a class="heading-anchor" href="#why-businesses-fail" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Businesses fail because they…&lt;/p>
&lt;ul>
&lt;li>are unable or unwilling to have courageous conversations&lt;/li>
&lt;li>focus on money too much or too soon instead of on people&lt;/li>
&lt;li>can provide the value themselves but can’t make it scale&lt;/li>
&lt;li>fail to focus on people as their primary responsibility&lt;/li>
&lt;li>focus on people, but don’t have the necessary skills to make a difference&lt;/li>
&lt;li>listen to respond instead of listening to hear&lt;/li>
&lt;li>think that because their idea is unique and specific, so are their issues&lt;/li>
&lt;li>live in the business and fail to spend time on the business&lt;/li>
&lt;li>expect thing to happen without truly leading through change&lt;/li>
&lt;li>fail to fall in love with the truth and fight the truth instead&lt;/li>
&lt;/ul>
&lt;h2 id="how-to-help-growing-your-teamwork">How to help growing your teamwork
&lt;a class="heading-anchor" href="#how-to-help-growing-your-teamwork" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;blockquote>
&lt;p>“As a business scales, the primary focus of the owner and the leadership must shift from focusing on customers to focusing on employees.”&lt;/p>
&lt;/blockquote>
&lt;p>By having courageous conversions about the full spectrum of skills required to go to the next level, focusing on improving the personal and professional career experience for that person and the people around them.&lt;/p>
&lt;p>These are the main points that everyone could develop:&lt;/p>
&lt;ul>
&lt;li>Good communications&lt;/li>
&lt;li>Focus &amp;amp; achieve goals &amp;amp; results&lt;/li>
&lt;li>Everyone contributes&lt;/li>
&lt;li>Offer each other support&lt;/li>
&lt;li>Good leadership&lt;/li>
&lt;li>Clear and good organization&lt;/li>
&lt;li>Constructive &lt;a href="/readings/the-five-dysfunctions-of-a-team/">conflict&lt;/a> drives innovation&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>“People is not usually the root problem. The taxonomy is 3Ps: product, process, or people. And “people” is the final step because leaders need to look at product and process first. In other words, “people first” when it comes to values, but “people last” when it comes to blame.“&lt;/p>
&lt;/blockquote>
&lt;h2 id="the-algorithm-of-success">The Algorithm of Success
&lt;a class="heading-anchor" href="#the-algorithm-of-success" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>As you can see in the diagram, all of this comes under leadership. If leadership is about helping others adapt to change, then it must be core to our organizations.&lt;/p>
&lt;p>&lt;img src="/images/readings/2023-02-26/aos-leadership.webp" alt="The Algorithm of Success drawn as a temple, leadership resting on seven pillars: product, strategy, the growth engine, model, people, operations and process" />&lt;/p>
&lt;h3 id="product">Product
&lt;a class="heading-anchor" href="#product" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Promises&lt;/li>
&lt;li>Solve a problem or need&lt;/li>
&lt;li>Cash release triggers&lt;/li>
&lt;li>The way we create value&lt;/li>
&lt;li>Pain or Pleasure&lt;/li>
&lt;li>Innovation&lt;/li>
&lt;li>Connections: Logical, emotional and competitive&lt;/li>
&lt;/ul>
&lt;h3 id="strategy">Strategy
&lt;a class="heading-anchor" href="#strategy" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Target customer profile (Who)&lt;/li>
&lt;li>Value Creation Strategy (VCS)&lt;/li>
&lt;li>Core Values&lt;/li>
&lt;li>Shared vision&lt;/li>
&lt;li>Value loop&lt;/li>
&lt;li>Key processes&lt;/li>
&lt;/ul>
&lt;h3 id="the-growth-engine">The Growth Engine
&lt;a class="heading-anchor" href="#the-growth-engine" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Unique selling proposition&lt;/li>
&lt;li>Targeted marketing&lt;/li>
&lt;li>Sales channels&lt;/li>
&lt;li>Sales steps&lt;/li>
&lt;li>Measuring the Growth Engine&lt;/li>
&lt;li>Funnel &amp;amp; opportunity management&lt;/li>
&lt;li>Return on Sales&lt;/li>
&lt;/ul>
&lt;h3 id="the-financial-model">The Financial Model
&lt;a class="heading-anchor" href="#the-financial-model" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Revenue management&lt;/li>
&lt;li>Cost of goods sold (COGS)&lt;/li>
&lt;li>Sales and marketing costs&lt;/li>
&lt;li>General administration&lt;/li>
&lt;li>EBITDA, ITDA, NOI&lt;/li>
&lt;li>Categorization&lt;/li>
&lt;li>Reporting&lt;/li>
&lt;/ul>
&lt;h3 id="people">People
&lt;a class="heading-anchor" href="#people" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Alignment&lt;/li>
&lt;li>People elevators&lt;/li>
&lt;li>Problem solving&lt;/li>
&lt;li>People banks&lt;/li>
&lt;li>Leadership code of conduct&lt;/li>
&lt;li>Career plans&lt;/li>
&lt;li>One-on-one’s&lt;/li>
&lt;li>Income managements&lt;/li>
&lt;/ul>
&lt;h3 id="operations">Operations
&lt;a class="heading-anchor" href="#operations" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Identify the core operations&lt;/li>
&lt;li>Responsibilities&lt;/li>
&lt;li>Cadence management&lt;/li>
&lt;li>Meetings&lt;/li>
&lt;li>GSD (Get Shit Done)&lt;/li>
&lt;/ul>
&lt;h3 id="process">Process
&lt;a class="heading-anchor" href="#process" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Promises Kept&lt;/li>
&lt;li>Downstream / Upstream&lt;/li>
&lt;li>Accountability&lt;/li>
&lt;li>Repeatable&lt;/li>
&lt;li>Efficiencies&lt;/li>
&lt;/ul>
&lt;hr />
&lt;p>You can find the book in &lt;a rel="external" href="https://www.adaptordie.com/the-book/">https://www.adaptordie.com/the-book/&lt;/a>.&lt;/p></content></entry><entry xml:lang="en"><title>Ignoring Scrum to Get More Agile?</title><subtitle>Killing agility with excessive meetings</subtitle><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="scrum" scheme="https://chemaclass.com/tags/scrum/" label="Scrum"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2022-12-06T00:00:00+00:00</published><updated>2022-12-06T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/ignoring-scrum-to-get-more-agile/"/><id>https://chemaclass.com/blog/ignoring-scrum-to-get-more-agile/</id><summary type="html">Boring meetings are killing agile. When the process stops helping the team and starts owning it instead.</summary><content type="html">&lt;p>Talking to a friend about agile, he asked me a fascinating question remarking how badly sometimes Agile and Scrum fit
together, especially regarding meetings. These are my thoughts about this topic.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;blockquote>
&lt;p>“Do you think it would make sense to just use agile and ignore scrum (sprints) completely in a product based
development company. I feel it’s hard to be agile when you have 10 hours of meetings per week.” Filip G.&lt;/p>
&lt;/blockquote>
&lt;p>That is related to the essence core of &lt;a href="/readings/xp-embrace-change/">Extreme Programming&lt;/a>, which is the first value: Effective Communication.&lt;/p>
&lt;blockquote>
&lt;p>“Probably some companies just don’t know how to properly use meetings and just have them out of habit.” Filip G.&lt;/p>
&lt;/blockquote>
&lt;p>I wouldn’t say completely ignore Scrum. Scrum (when done well) is a great “Product Management” Framework. To improve
your understanding of Scrum I recommend reading: &lt;a href="/readings/scrum-the-art-of-doing-twice">Scrum: The Art of Doing Twice the Work in Half the Time&lt;/a>.&lt;/p>
&lt;p>The main issue with scrum nowadays is that management took control over the whole thing, and developers are not really
educated about how to practice Scrum properly (in a real Agile way), and that’s where the problem starts. For this,
I recommend a book that addresses pretty well the common issues that most Scrum teams face in a fun and easy-reading book
&lt;a href="/readings/zombie-scrum-survival-guide/">Zombie Scrum Survival Guide: A Journey to Recovery&lt;/a>.&lt;/p>
&lt;p>It’s not about Agile yes, and Scrum no. They are totally compatible. The issue is to create awareness about how to focus
the team processes from an agile point of view.&lt;/p>
&lt;h2 id="agile-in-a-nutshell">Agile in a nutshell
&lt;a class="heading-anchor" href="#agile-in-a-nutshell" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>I recently wrote a blog post about agile fundamentals, which I recommend you to read to get into the
details: &lt;a href="/blog/working-agile-with-non-agile-teams/">Working agile with non-agile teams&lt;/a>. But, the &lt;strong>tl;dr&lt;/strong>:
&lt;ins>Agile is about quick feedback. It’s about effective communication and reducing waste while aiming for simplicity.&lt;/ins>&lt;/p>
&lt;p>&lt;a rel="external" href="https://agilemanifesto.org/">Agile&lt;/a> is about keeping these values always present:&lt;/p>
&lt;ul>
&lt;li>Individuals and interactions over processes and tools&lt;/li>
&lt;li>Working software over comprehensive documentation&lt;/li>
&lt;li>Customer collaboration over contract negotiation&lt;/li>
&lt;li>Responding to change over following a plan&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>While there is value in the items on the right, we value the items on the left more.&lt;/p>
&lt;/blockquote>
&lt;h2 id="scrum-in-a-nutshell">Scrum in a nutshell
&lt;a class="heading-anchor" href="#scrum-in-a-nutshell" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Scrum is a framework for project management emphasizing software development, although it is used in other fields like
sales, marketing, and more. It’s designed for teams of 5 to 9 people (see &lt;a href="/blog/dunbar-number/">Dunbar number&lt;/a>) who are
totally autonomous and responsible for breaking down their work into small chunks that can be completed in a time-boxed
iteration, called sprints, usually 1, 2, or 4 weeks.&lt;/p>
&lt;p>It’s common to find certain ceremonies/meetings like:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Stand-up&lt;/strong>: 15 min (or less) to keep everyone in the team sync and updated about the work and call out for action when
anyone is blocked or needs special attention or help.&lt;/li>
&lt;li>&lt;strong>Refinement&lt;/strong>: 2h? meeting to make sure the tickets are in a good shape before planning them to be worked on in the next
sprint.&lt;/li>
&lt;li>&lt;strong>Planning&lt;/strong>: 2h? meeting to plan the work to be done in the next sprint.&lt;/li>
&lt;li>&lt;strong>Demo/Review&lt;/strong>: 2h? meeting to show the work done for the whole team, stakeholders and other interested people.&lt;/li>
&lt;li>&lt;strong>Retrospective&lt;/strong>: 2h? meeting intended to enable the team to reflect and improve.&lt;/li>
&lt;/ul>
&lt;p>The critical question is how your team organizes these meetings and, most important of all, how effective these are.
These above are just some of the important meetings you have in any “Scrum Team” nowadays.&lt;/p>
&lt;p>Still, apart from those, you might encounter a lot of additional meetings that pile up, and suddenly your entire working
day is gone, and you feel you didn’t produce the value you expected. Unless your job is being in meetings every time,
like coordinating projects and talking to people all the time, it seems something is wrong.&lt;/p>
&lt;h3 id="boring-meetings">Boring meetings
&lt;a class="heading-anchor" href="#boring-meetings" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Have you ever been in any of those meetings and thought, “&lt;em>This is boring, what a waste of time…&lt;/em>”. Well, I’ve
experienced that more than once. Who’s to blame? That would be the very first question that could come to your mind.
Followed by, “&lt;em>My boss, obviously, because he/she organized that meeting, to which I got invited, therefore I am forced
to attend, and this wasting time is their fault.&lt;/em>”&lt;/p>
&lt;p>This is a tricky question, and I don’t think it is an honest answer. However, there is an easy explanation for this
answer: pushing away responsibilities and blaming others rather than yourself is way easier.&lt;/p>
&lt;p>“&lt;em>I am forced to attend, and this wasting time is their fault&lt;/em>” it could be that that’s actually the actual fact.
You were really forced, and you’re wasting your time, and there is no other way… but is there no way to act on it,
really?&lt;/p>
&lt;p>When something doesn’t work the way I expect (e.g., I don’t like the outcome, or I think something is off), before
blaming and pushing away responsibilities to others, I want to reflect on it and identify the root of the issue. What
could I do to make the situation better?&lt;/p>
&lt;hr />
&lt;h2 id="what-can-you-do-about-it">What can you do about it?
&lt;a class="heading-anchor" href="#what-can-you-do-about-it" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Coming back to this context of “many meetings”, if you see yourself in a meeting again that feels off or boring, try
asking yourself:&lt;/p>
&lt;blockquote>
&lt;p>Am I feeling bored? Why so? Is it possible that I am not participating in the desired outcome of the meeting? And if
so, is my presence here in this meeting really necessary? Could I simply ask for a summary afterward and jump outside
the meeting to do something more productive?&lt;/p>
&lt;p>Contrarily, is it OK to feel bored in this meeting? Or should I participate and engage with my peers to
contribute to the outcome of the meeting?&lt;/p>
&lt;/blockquote>
&lt;p>In these situations, I encounter a pattern such as:&lt;/p>
&lt;ul>
&lt;li>If the meeting is not boring, it is productive and will produce a rich outcome for you and, hopefully, all participants.&lt;/li>
&lt;li>If the meeting is boring, then either A) it is OK to be boring, politely ask to leave, and you will get the summary
afterward, or B) it is not OK to be boring. Your participation is necessary for the outcome of the meeting. Try being
more engaging with your peers, and the meeting won’t be boring.&lt;/li>
&lt;/ul>
&lt;p>In the end, there are a lot of strategies, and it’s up to you to act on them whenever you see something that could be
improved.&lt;/p>
&lt;p>It’s OK to point out the “&lt;em>elephant in the room&lt;/em>” and ask for help to improve any situation you think (or feel) is not
working as it should.&lt;/p>
&lt;p>&lt;img src="/images/blog/2022-12-06/footer.webp" alt="blog-footer" />&lt;/p></content></entry><entry xml:lang="en"><title>Continuous Discovery Habits</title><subtitle>Discover Products that Create Customer Value and Business Value</subtitle><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2022-08-21T00:00:00+00:00</published><updated>2022-08-21T00:00:00+00:00</updated><author><name>
Teresa Torres</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/continuous-discovery-habits/"/><id>https://chemaclass.com/readings/continuous-discovery-habits/</id><summary type="html">Teresa Torres on a decision-making process that keeps product teams in touch with customers and improving what they ship.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>This book explores how product managers and designers can keep making a positive impact on their customers’ lives.
It explores an optimal decision-making process for product teams, so that they can continue to improve their offerings.&lt;/p>
&lt;h4 id="part-1-what-is-continuous-discovery">Part 1: What is continuous discovery?
&lt;a class="heading-anchor" href="#part-1-what-is-continuous-discovery" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;ol>
&lt;li>The What and Why of Continuous Discovery&lt;/li>
&lt;li>A Common Framework for Continuous Discovery&lt;/li>
&lt;/ol>
&lt;h4 id="part-2-the-continuous-discovery-habits">Part 2: The continuous discovery habits
&lt;a class="heading-anchor" href="#part-2-the-continuous-discovery-habits" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;ol start="3">
&lt;li>Focusing on Outcomes Over Outputs&lt;/li>
&lt;li>Visualizing What You Know&lt;/li>
&lt;li>Continuous Interviewing&lt;/li>
&lt;li>Mapping the Opportunity Space&lt;/li>
&lt;li>Prioritizing Opportunities, Not Solutions&lt;/li>
&lt;li>Supercharged Ideation&lt;/li>
&lt;li>Identifying Hidden Assumptions&lt;/li>
&lt;li>&lt;a href="/blog/the-art-of-testing/">Testing&lt;/a> Assumptions, Not Ideas&lt;/li>
&lt;li>Measuring Impact&lt;/li>
&lt;li>Managing the Cycles&lt;/li>
&lt;li>Show Your Work&lt;/li>
&lt;/ol>
&lt;h4 id="part-3-developing-your-continuous-discovery-habits">Part 3: Developing your continuous discovery habits
&lt;a class="heading-anchor" href="#part-3-developing-your-continuous-discovery-habits" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;ol start="14">
&lt;li>Start Small, and Iterate&lt;/li>
&lt;li>What’s Next?&lt;/li>
&lt;/ol>
&lt;blockquote>
&lt;p>Focusing on outcomes over outputs will help you create the right products for your customers.&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;h3 id="the-what-why-of-continuous-discovery">The What &amp;amp; Why of Continuous Discovery
&lt;a class="heading-anchor" href="#the-what-why-of-continuous-discovery" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/yNCcQODWYh0"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>The Great CEO Within</title><subtitle>The Tactical Guide to Company Building</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="mentoring" scheme="https://chemaclass.com/tags/mentoring/" label="Mentoring"/><published>2022-08-01T00:00:00+00:00</published><updated>2022-08-01T00:00:00+00:00</updated><author><name>
Matt Mochary</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/the-great-ceo-within/"/><id>https://chemaclass.com/readings/the-great-ceo-within/</id><summary type="html">How to scale from startup to company with a system of accountability, real problem solving and transparent feedback.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Matt Mochary coaches the CEOs of many of the fastest-scaling technology companies in Silicon Valley.
He shares his highly effective &lt;a href="/blog/the-beauty-of-leadership/">leadership&lt;/a> and business-operating tools with any CEO or manager in the world.&lt;/p>
&lt;p>Learn how to efficiently scale your business from startup to corporation by implementing a system of accountability,
effective problem-solving, and transparent feedback.&lt;/p>
&lt;blockquote>
&lt;p>Reading, talking to other experts in a particular area, practicing, and teaching are the best ways to learn and
improve yourself.&lt;/p>
&lt;/blockquote>
&lt;h2 id="3-key-takeaways">3 Key takeaways
&lt;a class="heading-anchor" href="#3-key-takeaways" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;ul>
&lt;li>You need to learn how to manage yourself before you can manage your business.&lt;/li>
&lt;li>Don’t ignore &lt;a href="/readings/the-five-dysfunctions-of-a-team/">conflict&lt;/a>. Be transparent, give and take feedback often, and be an active listener.&lt;/li>
&lt;li>Be obsessed with learning about your customer. Do so by asking better questions.&lt;/li>
&lt;/ul>
&lt;hr />
&lt;h2 id="summary">Summary
&lt;a class="heading-anchor" href="#summary" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="the-team">The team
&lt;a class="heading-anchor" href="#the-team" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Do not create a 50/50 partnership, because despite it sounds ideal, it actually leads to real pain if there is no easy way to break a deadlock.&lt;/li>
&lt;li>Find a partner who has complementary skills to yours. Give a large percentage of the company; it worth it.&lt;/li>
&lt;li>Founding teams should never grow beyong six until there is a true product-market fit (PMF).&lt;/li>
&lt;li>Metrics that PMF are important. For example revenue, renewal rates, …&lt;/li>
&lt;/ul>
&lt;h3 id="getting-things-done">Getting things done
&lt;a class="heading-anchor" href="#getting-things-done" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Read “Getting Things Done: The art of stress-free productivity”, by David Allen.&lt;/li>
&lt;/ul>
&lt;h3 id="inbox-zero">Inbox zero
&lt;a class="heading-anchor" href="#inbox-zero" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Keep your inbox clean as a single triage room at a hospital.
&lt;ul>
&lt;li>It is important to distinguish the urgent cases from the ones that aren’t.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="top-goal">Top goal
&lt;a class="heading-anchor" href="#top-goal" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Schedule two hours each day to work on your top goal only.&lt;/li>
&lt;li>The earlier in the day you schedule this top goal, the better.&lt;/li>
&lt;/ul>
&lt;h3 id="on-time-and-present">On-time and present
&lt;a class="heading-anchor" href="#on-time-and-present" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Don’t waste other people’s time.&lt;/li>
&lt;li>If you know you’re going to be late, let the other people know as soon as possible.&lt;/li>
&lt;li>Be present and focus on what’s being discussed.&lt;/li>
&lt;/ul>
&lt;h3 id="when-you-say-it-twice-write-it-down">When you say it twice write it down
&lt;a class="heading-anchor" href="#when-you-say-it-twice-write-it-down" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Write down all processes. In doubt, write everything.&lt;/li>
&lt;/ul>
&lt;h3 id="gratitude">Gratitude
&lt;a class="heading-anchor" href="#gratitude" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Focus on the positives.&lt;/li>
&lt;li>We perform our best when we are having fun and feeling good.&lt;/li>
&lt;li>Be appreciative. Tell people when they’ve done something good.&lt;/li>
&lt;/ul>
&lt;h3 id="energy-audit">Energy audit
&lt;a class="heading-anchor" href="#energy-audit" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Audit your time and figure out how much of it is spend on activities that energize you and what activities drain you.
&lt;ul>
&lt;li>Delegate or outsouce the things that drain you as much as possible.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="health">Health
&lt;a class="heading-anchor" href="#health" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Your mental and physical health is the most important resource we all have.
&lt;ul>
&lt;li>Take care of yourself and the people around you.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="decision-making">Decision-making
&lt;a class="heading-anchor" href="#decision-making" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Require that anyone who wants to discuss an issue write it up, along with the desired solution, ahead of time.&lt;/li>
&lt;li>This method, thought time-consuming, yields extraordinarily thoughtful decisions in a very shrt amount of time.&lt;/li>
&lt;/ul>
&lt;h3 id="getting-buy-in">Getting buy-in
&lt;a class="heading-anchor" href="#getting-buy-in" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>When people feel they are part of the decision and their input matters.&lt;/li>
&lt;li>When people are given more influence, they feel more invested.&lt;/li>
&lt;/ul>
&lt;h3 id="issues-and-proposed-solution">Issues and proposed solution
&lt;a class="heading-anchor" href="#issues-and-proposed-solution" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Require that anyone who presents an issue at a team meeting do so in writing.
&lt;ul>
&lt;li>It should include both a detailed description of the issue and their proposed solution. They cannot say “I don’t know.” They must at least present a guess.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>All issues should be presented at the weekly team meeting.&lt;/li>
&lt;li>Allow 5 min to discuss each proposed solution.
&lt;ul>
&lt;li>If consensus is reached in that time - great.&lt;/li>
&lt;li>Otherwise, don’t spend more time debating, and use RAPID framework instead.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="loudest-voice-in-the-roomo">Loudest voice in the roomo
&lt;a class="heading-anchor" href="#loudest-voice-in-the-roomo" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Be aware of who is in the room when you have a group discussion.&lt;/li>
&lt;li>Avoid influencing other people’s ideas by wriring down their vote or thoughts before you share your perspective.&lt;/li>
&lt;li>Let juniors ask and speak first.&lt;/li>
&lt;/ul>
&lt;h3 id="sloppy-agreements">Sloppy agreements
&lt;a class="heading-anchor" href="#sloppy-agreements" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Sloppy agreements are when people don’t show up on time, or don’t complete the goals they declare.&lt;/li>
&lt;li>The antidote is “impeccable agreements”:
&lt;ul>
&lt;li>precisely defined&lt;/li>
&lt;li>fully agreed to by all relevant people&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>There must be consequences of breaking agreements.&lt;/li>
&lt;li>If you can’t meet the agreement, then you have an obligation to let other members of the agreement circle know asap.&lt;/li>
&lt;/ul>
&lt;h3 id="transparency">Transparency
&lt;a class="heading-anchor" href="#transparency" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Don’t hide negative information.&lt;/li>
&lt;li>Our imaginations are much more powerful than reality.&lt;/li>
&lt;li>Share all relevant information with your team, both negative and positive.
&lt;ul>
&lt;li>Let them adapt.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="conflict-resolution">Conflict resolution
&lt;a class="heading-anchor" href="#conflict-resolution" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Interpersonal conflict is almost due to people:
&lt;ul>
&lt;li>Not fully sharing their thoughts and feelings&lt;/li>
&lt;li>Not feeling heard&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Prove to people that you have heard them by summarizing what you just said back to you until they say “that’s right!”.&lt;/li>
&lt;/ul>
&lt;h3 id="issue-identification">Issue identification
&lt;a class="heading-anchor" href="#issue-identification" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Ask people to pretend they’re the CEO and answer:
&lt;ul>
&lt;li>“What are the 3 most important issues for me to solve in the next 90 days?”&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Ask people to write down their thoughts about the company when they feel their joy, excitement, sadness, anger and fear.&lt;/li>
&lt;/ul>
&lt;h3 id="conscious-leadership">Conscious leadership
&lt;a class="heading-anchor" href="#conscious-leadership" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Be more interested in learning than been right.&lt;/li>
&lt;/ul>
&lt;h3 id="customer-obsession">Customer obsession
&lt;a class="heading-anchor" href="#customer-obsession" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Focus on the outcome, not the output.&lt;/li>
&lt;li>You are solving a customer problem, not just making a product.&lt;/li>
&lt;/ul>
&lt;h3 id="culture">Culture
&lt;a class="heading-anchor" href="#culture" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>You don’t choose your values. You have them.&lt;/li>
&lt;li>Use your values as a guide to who you hire and when you fire.&lt;/li>
&lt;li>Don’t forget to celebrate. Make an effort to publicly acknowledge achievements.&lt;/li>
&lt;li>Don’t measure hours. Measure output.&lt;/li>
&lt;li>You prevent office politics by never allowing lobbying to be successful.&lt;/li>
&lt;/ul>
&lt;h3 id="company-folder-system-and-wiki">Company folder system and wiki
&lt;a class="heading-anchor" href="#company-folder-system-and-wiki" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Have a company wiki and make it mandatory that all new hires read it.&lt;/li>
&lt;li>Whenever you find yourself doing something twice, write down exactly what it is that you did.
&lt;ul>
&lt;li>Everyone on the team should contribute.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="goal-tracking">Goal tracking
&lt;a class="heading-anchor" href="#goal-tracking" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Never assign someone an action without them agreeing to it verbally or in writing.&lt;/li>
&lt;/ul>
&lt;h3 id="areas-of-responsibility">Areas of responsibility
&lt;a class="heading-anchor" href="#areas-of-responsibility" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>When more than one person shares a responsibility, it often does not get done well, or at all.&lt;/li>
&lt;li>One person is assigned to each function in the company.&lt;/li>
&lt;/ul>
&lt;h3 id="no-single-point-of-failure">No single point of failure
&lt;a class="heading-anchor" href="#no-single-point-of-failure" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Write down all processes.&lt;/li>
&lt;li>Cross-train a second person for each role.&lt;/li>
&lt;/ul>
&lt;h3 id="key-performance-indicators-kpi">Key Performance Indicators (KPI)
&lt;a class="heading-anchor" href="#key-performance-indicators-kpi" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Known your 5-6 most significant KPIs and track them religiously. Make them visible to the entire team.&lt;/li>
&lt;/ul>
&lt;h3 id="collaboration">Collaboration
&lt;a class="heading-anchor" href="#collaboration" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Set vision and goals for the company, each dept, and each individual.&lt;/li>
&lt;li>Communicate that vision and those goals to every team member.&lt;/li>
&lt;li>Tracking and reporting progress towards those goals on a regular timetable (usually weekly).&lt;/li>
&lt;li>Feedback on what’s going right and what needs to be adapted.&lt;/li>
&lt;/ul>
&lt;h3 id="objectives-and-key-results-okr">Objectives and Key Results (OKR)
&lt;a class="heading-anchor" href="#objectives-and-key-results-okr" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Target 3 objectives with 3 key results for each.&lt;/li>
&lt;li>For the company, department, team, individual.
&lt;ul>
&lt;li>Cascade them down so they are in alignment.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>The objective = “where do we want to go?”. No necessarily measurable.&lt;/li>
&lt;li>Key results = “how do we know that we’re getting there?”. It should be measurable.&lt;/li>
&lt;li>Gather your leadership team and have everyone come to the meeting with their ideas for what the OKRs should be for the quarter.
&lt;ul>
&lt;li>Let individuals come up with their own OKRs. They will be more invested.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="feedback">Feedback
&lt;a class="heading-anchor" href="#feedback" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Never give negative feedback using a one-way communication method
&lt;ul>
&lt;li>Like email, text, or voicemail.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h4 id="the-problem-with-no-giving-feedback">The problem with no giving feedback
&lt;a class="heading-anchor" href="#the-problem-with-no-giving-feedback" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;ul>
&lt;li>You won’t notice your company’s problems.&lt;/li>
&lt;li>Communication will break down.&lt;/li>
&lt;li>Your best talent will leave you.&lt;/li>
&lt;/ul>
&lt;h4 id="4-a-s-of-seeking-feedback">4 A’s of seeking feedback
&lt;a class="heading-anchor" href="#4-a-s-of-seeking-feedback" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;ol>
&lt;li>Ask for it.&lt;/li>
&lt;li>Acknowledge it - repeat what they said. Make them feel heard and understood.&lt;/li>
&lt;li>Appreciate it.&lt;/li>
&lt;li>Act on it.&lt;/li>
&lt;/ol>
&lt;h4 id="how-to-give-negative-feedback">How to give negative feedback
&lt;a class="heading-anchor" href="#how-to-give-negative-feedback" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;ol>
&lt;li>Ask for permission.&lt;/li>
&lt;li>State the behaviour (fact).&lt;/li>
&lt;li>State how the behaviour makes you feel (feelings).&lt;/li>
&lt;li>State your thoughts, opinions, and judgments around the situation (story).&lt;/li>
&lt;li>Make a request - a change you’d lie to see in the future.&lt;/li>
&lt;li>Ask if they accept the feedback.&lt;/li>
&lt;/ol>
&lt;h3 id="fundraising">Fundraising
&lt;a class="heading-anchor" href="#fundraising" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Pick a partner, not a enterprise.&lt;/li>
&lt;li>When you need to speak to an investor, ask 3-5 people in your network who know that person to send an email of recommendation to them.&lt;/li>
&lt;li>Stack the referrals close together (in the same week) so that you get noticed.&lt;/li>
&lt;li>Talk about your company once you know that the investor likes and trust you.&lt;/li>
&lt;li>Sell yourself, not the company.&lt;/li>
&lt;/ul>
&lt;h3 id="recruiting">Recruiting
&lt;a class="heading-anchor" href="#recruiting" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Spend as little time as possible with the candidates that you don’t hire, and as much time as possible with the candidates that you want to hire.&lt;/li>
&lt;li>As the &lt;a href="/readings/effective-software-em/">hiring&lt;/a> manager, write out a 90 roadmap for the position you need to fill.&lt;/li>
&lt;/ul>
&lt;h3 id="on-boarding">On-boarding
&lt;a class="heading-anchor" href="#on-boarding" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Give onboarding even more attention, time and energy than you give to recruiting.&lt;/li>
&lt;li>Assign each new team member a buddy with whom they’ll check in each day for 15 minutes for the first 2 weeks.&lt;/li>
&lt;/ul>
&lt;h3 id="firing">Firing
&lt;a class="heading-anchor" href="#firing" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Whe you make the announcement, praise the person’s contributions to the company, and take ownership yourself for the fact that you weren’t able to match their skills to the company’s needs.&lt;/li>
&lt;li>Do not blame or criticise the person. Instead, take responsibility for the situation.&lt;/li>
&lt;/ul>
&lt;h3 id="effective-sales">Effective sales
&lt;a class="heading-anchor" href="#effective-sales" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Build trust.&lt;/li>
&lt;li>Sell results, not features.&lt;/li>
&lt;li>Identify customers’ pains.&lt;/li>
&lt;/ul>
&lt;h3 id="build-trust">Build trust
&lt;a class="heading-anchor" href="#build-trust" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Ask customers about them.
&lt;ul>
&lt;li>Listen actively and reflect back what they say.&lt;/li>
&lt;li>At the second meeting show that you remember what they said at the first.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Be explicit about not talking about your company.&lt;/li>
&lt;li>Ask for a limited amount of time.&lt;/li>
&lt;li>Invite them to a purely social event.&lt;/li>
&lt;/ul>
&lt;h3 id="customer-development">Customer development
&lt;a class="heading-anchor" href="#customer-development" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Asking the right questions will help you identify customer’s specific challenges.&lt;/li>
&lt;li>You need to understand their pain before presenting your solution.
&lt;ol>
&lt;li>What are their goals?&lt;/li>
&lt;li>What are the challenges preventing them from reaching those goals?&lt;/li>
&lt;li>What are their ideal solutions to overcoming those obstacles?&lt;/li>
&lt;/ol>
&lt;/li>
&lt;/ul>
&lt;h3 id="sell-results-not-features">Sell results, not features
&lt;a class="heading-anchor" href="#sell-results-not-features" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Most people don’t care about your product functionality or features. They care about their business results.&lt;/li>
&lt;li>Focus on the why.&lt;/li>
&lt;li>Focus on painting the vision of a world where customer’s desires are fulfilled with the help of your product.&lt;/li>
&lt;/ul>
&lt;h3 id="building-a-sales-team-pipeline">Building a sales team &amp;amp; pipeline
&lt;a class="heading-anchor" href="#building-a-sales-team-pipeline" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Don’t hire sales people right away.&lt;/li>
&lt;li>In most cases, sales people will never be able to sell better than the founders, and they won’t be able to sell the product if you are not able to.&lt;/li>
&lt;li>Only hire a sales team if:
&lt;ul>
&lt;li>You have found an initial version of product-market fit (this means that a significant proportion of your paying customers are renewing their contracts).&lt;/li>
&lt;li>You have figure out what you are selling and who you are selling to.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="the-structure-of-a-sales-team">The structure of a sales team
&lt;a class="heading-anchor" href="#the-structure-of-a-sales-team" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Generating leads and closing deals are distinct functions that must be split.&lt;/li>
&lt;li>Senior salespeople are expensive, so their time is best spent focusing on the most high-value activity: closing deals.&lt;/li>
&lt;li>Ideal sales team structure:
&lt;ul>
&lt;li>Qualifiers - sales development reps: focus on generating leads.&lt;/li>
&lt;li>Closers - account executives: focus on closing leads.&lt;/li>
&lt;li>Farmers - customer success: focus on tending existing customers.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="lead-generation">Lead generation
&lt;a class="heading-anchor" href="#lead-generation" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Predictable leads is the first step to achieve predictable revenue.&lt;/li>
&lt;/ul>
&lt;h3 id="marketing">Marketing
&lt;a class="heading-anchor" href="#marketing" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Start by concentrating all of your efforts on the low-hanging fruit - the small customer segment that has a particular problem that your product solves 10x better than the competition.&lt;/li>
&lt;li>Move on to the next customer segment only after you have the resources to do so.&lt;/li>
&lt;/ul>
&lt;h3 id="product-market-fit-pmf">Product market fit (PMF)
&lt;a class="heading-anchor" href="#product-market-fit-pmf" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Designing a significantly better solution to your target customers’ problem than existing in the marketplace.&lt;/li>
&lt;li>How do you know when you have achieved PMF?
&lt;ul>
&lt;li>Ask your customers. They will tell you by renewing their subscriptions, buying more product(s), etc.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>B2B, PMF = long term contracts&lt;/li>
&lt;li>B2C, PMF = second purchase, renewing subscription, sharing in social media.&lt;/li>
&lt;/ul>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/tBimI7QNjBA"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;p>Matt Mochary shares insights on developing his coaching method, understanding &amp;amp; overcoming primal fear, addressing
imposter syndrome &amp;amp; more.&lt;/p></content></entry><entry xml:lang="en"><title>The Project Management Triangle</title><subtitle>The Iron Triangle</subtitle><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2022-07-25T00:00:00+00:00</published><updated>2022-07-25T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/the-project-management-triangle/"/><id>https://chemaclass.com/blog/the-project-management-triangle/</id><summary type="html">A triangle of time, quality and cost. it's an indicator that these three parameters are interconnected. You can fix one or two of them, but not three.</summary><content type="html">&lt;p>A triangle of time, quality and cost. It’s an indicator that these three parameters are interconnected.
You can fix one or two of them, but not three.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h3 id="the-triple-constraint">The triple constraint
&lt;a class="heading-anchor" href="#the-triple-constraint" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Cheap and fast: the quality will suffer.&lt;/li>
&lt;li>Cheap and good: it will take more time.&lt;/li>
&lt;li>Fast and good: it will push the price up.&lt;/li>
&lt;/ul>
&lt;h2 id="waterfall-vs-agile">Waterfall vs Agile
&lt;a class="heading-anchor" href="#waterfall-vs-agile" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>In software methodologies, you can adapt this idea by changing &lt;strong>quality&lt;/strong> to &lt;strong>scope&lt;/strong>:&lt;/p>
&lt;p>&lt;img src="/images/blog/2022-07-25/middle.webp" alt="triangle with scope replacing quality" />&lt;/p>
&lt;h3 id="waterfall">Waterfall
&lt;a class="heading-anchor" href="#waterfall" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>In &lt;a href="/blog/what-is-waterfall/">waterfall&lt;/a> projects, the scope is fixed, while the time and money will be more variable. Depending if it’s more
important finishing on time or on budget.&lt;/p>
&lt;h3 id="agile">Agile
&lt;a class="heading-anchor" href="#agile" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>On the other hand, in an &lt;a href="/blog/what-kills-agility/">agile&lt;/a> environment we usually work on a few weeks’ iterations, so this is the fix part: the
time, in order to deliver value as soon as possible, and so get &lt;a href="/blog/ship-show-ask/">feedback&lt;/a> and recalibrate again and again.&lt;/p>
&lt;p>The costs in a software team are also fixed by the people that belong to it.&lt;/p>
&lt;blockquote>
&lt;p>Time is fixed, cost is fixed, so by the rule of the iron triangle, the scope must be variable.&lt;/p>
&lt;/blockquote>
&lt;p>An agile team cannot predict the scope of their work in one-year project, however, they don’t need to. Their &lt;strong>focus
should be on deliver constantly value as much as possible&lt;/strong>, or at least at the end of every iteration, reflecting their
learnings and recalibrating their priorities again and again.&lt;/p>
&lt;p>As you can see, one funny fact is that the waterfall and agile share an inverted triangle with their fixed and variables
parameters. Really interesting indeed.&lt;/p>
&lt;p>&lt;img src="/images/blog/2022-07-25/footer.webp" alt="inverted triangles for waterfall and agile" />&lt;/p>
&lt;h2 id="reference">Reference
&lt;a class="heading-anchor" href="#reference" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/MKEyF2dmGaM"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>Bikeshedding</title><subtitle>Also known as the Law of triviality</subtitle><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2022-05-27T00:00:00+00:00</published><updated>2022-05-27T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/bikeshedding/"/><id>https://chemaclass.com/blog/bikeshedding/</id><summary type="html">Bikeshedding explains why teams waste time on trivial decisions while ignoring complex, important ones. Learn to recognize and avoid it.</summary><content type="html">&lt;p>The term was coined as a metaphor to illuminate Parkinson’s Law of triviality. People within an organization typically give disproportionate weight to trivial issues.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="bikeshed-ing">Bikeshed +-ing
&lt;a class="heading-anchor" href="#bikeshed-ing" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>The concept was first presented as a corollary of his broader “&lt;a rel="external" href="https://en.wikipedia.org/wiki/Parkinson%27s_law">Parkinson’s law&lt;/a>”
spoof of management. “Bikeshedding” is a dramatized form of the “&lt;a rel="external" href="https://en.wikipedia.org/wiki/Law_of_triviality">Law of triviality&lt;/a>”.&lt;/p>
&lt;p>&lt;a rel="external" href="https://en.wikipedia.org/wiki/C._Northcote_Parkinson">C. Northcote Parkinson&lt;/a> observed that a committee whose job is to &lt;strong>approve plans for a nuclear power plant&lt;/strong> may spend the majority
of its time on relatively unimportant but easy-to-grasp issues, such as what materials to use for the staff bikeshed
while neglecting the design of the power plant itself, which is &lt;strong>far more important&lt;/strong> but also far more difficult to
criticize constructively. As he put it:&lt;/p>
&lt;blockquote>
&lt;p>“The time spent on any item of the agenda will be in inverse proportion to the sum of money involved.”&lt;/p>
&lt;/blockquote>
&lt;h3 id="people-within-an-organization-typically-give-disproportionate-weight-to-trivial-issues">People within an organization typically give &lt;strong>disproportionate weight to trivial issues&lt;/strong>
&lt;a class="heading-anchor" href="#people-within-an-organization-typically-give-disproportionate-weight-to-trivial-issues" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>This has been true in all companies where I’ve been working. From time to time, when you have important mixed with
not-so-important topics together (or even not important at all!), it’s pretty common to see yourself “bikeshedding”
with your peers about the trivial topics instead of confronting the important things that will bring real value soon to
the end customer/consumer.&lt;/p>
&lt;p>This is more common than we think, and it can happen to everyone.&lt;/p>
&lt;h3 id="what-can-we-do-about-it">What can we do about it?
&lt;a class="heading-anchor" href="#what-can-we-do-about-it" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Create awareness about this problem with your team. Honest communication and &lt;a href="/readings/the-five-dysfunctions-of-a-team/">trust&lt;/a> are crucial for the solution.&lt;/p>
&lt;p>Break down steps:&lt;/p>
&lt;ul>
&lt;li>You need to be aware of this problem.&lt;/li>
&lt;li>You see value in changing this team behavior.&lt;/li>
&lt;li>You are able to point to the problem when you see it occurring.&lt;/li>
&lt;li>You expect the same from your team members.&lt;/li>
&lt;/ul>
&lt;h3 id="references">References
&lt;a class="heading-anchor" href="#references" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/D4hUq_aNXaA"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>Leadership is Language</title><subtitle>The hidden power of what you say, and what you don't</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2021-10-22T00:00:00+00:00</published><updated>2021-10-22T00:00:00+00:00</updated><author><name>
L. David Marquet</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/leadership-is-language/"/><id>https://chemaclass.com/readings/leadership-is-language/</id><summary type="html">Marquet dives into the sinking of the El Faro and surfaces with new ideas on how the language we use defines our leadership.</summary><content type="html">&lt;p>A radical playbook to empower your people and put your team on a path to continuous improvement.&lt;/p>
&lt;p>In this book, the former submarine commander Captain &lt;a rel="external" href="https://davidmarquet.com/">L. David Marquet&lt;/a> dives deep into one of the most investigated
marine disasters, the sinking of the El Faro, and surfaces with new ideas on &lt;a href="/blog/the-beauty-of-leadership/">leadership&lt;/a> and language.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;hr />
&lt;p>You might imagine that an effective leader is someone who makes quick, intelligent decisions, gives inspiring speeches,
and issues clear orders to their team, so they can execute a plan to achieve your organization’s goals. Unfortunately,
that’s an outdated model of leadership that just doesn’t work anymore.&lt;/p>
&lt;blockquote>
&lt;p>Your words matter more than you think.&lt;/p>
&lt;/blockquote>
&lt;p>David gives six plays that all leaders should use to improve how their teams operate. He says a big problem with leaders
today is that they are trapped in an industrial-age playbook. In the industrial age leaders gave commands and employees
followed, and that was it. But that way of leading is no longer effective, it is outdated.&lt;/p>
&lt;h3 id="the-six-plays">The six plays
&lt;a class="heading-anchor" href="#the-six-plays" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Control the clock, don’t obey the clock: pre-plan decision points and give your people the tools they need to hit
pause on a plan of action if they notice something wrong.&lt;/li>
&lt;li>Collaborate, don’t coerce: as the leader, you should be the last one to offer your opinion.&lt;/li>
&lt;li>Commit, don’t comply: rather than expect your team to comply with specific directions, explain your overall goals, and
get their commitment to achieving it one piece at a time.&lt;/li>
&lt;li>Complete, not continue: if every day feels like a repetition of the last, you’re doing something wrong.&lt;/li>
&lt;li>Improve, don’t prove: ask your people to improve on plans and processes, rather than prove that they can meet fixed
goals or deadlines.&lt;/li>
&lt;li>Connect, don’t conform: flatten hierarchies in your organization and connect with your people to encourage them to
contribute to decision-making&lt;/li>
&lt;/ul>
&lt;hr />
&lt;h2 id="video-summary">Video Summary
&lt;a class="heading-anchor" href="#video-summary" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/CQfao96j1fo"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>Red Work vs Blue Work</title><subtitle>Managing the two kinds of work</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><published>2021-10-21T00:00:00+00:00</published><updated>2021-10-21T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/red-work-blue-work/"/><id>https://chemaclass.com/blog/red-work-blue-work/</id><summary type="html">Blue Work and Red Work, the two modes David Marquet describes in Leadership is Language. Different mindsets, and different languages.</summary><content type="html">&lt;p>“Blue Work” and “Red Work” are concepts that &lt;a rel="external" href="https://davidmarquet.com/">David Marquet&lt;/a>
describes in his book &lt;a href="/readings/leadership-is-language/">Leadership is Language&lt;/a>. Both require different mindsets and
have different languages.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;blockquote>
&lt;p>“Doing” in our traditional &lt;a href="/blog/the-beauty-of-leadership/">leadership&lt;/a> style will not take us to where we need to be in the future.&lt;/p>
&lt;/blockquote>
&lt;h2 id="what-is-red-work">What is “Red Work”?
&lt;a class="heading-anchor" href="#what-is-red-work" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Red Work is about &lt;strong>doing and reducing variability&lt;/strong>. Red Work focuses on a proving mindset and a performance mindset.&lt;/p>
&lt;p>In Red Work, you seek to complete a task without a lot of need for deciding what or how. Red Work is being in control
and taking control. Such as:&lt;/p>
&lt;ul>
&lt;li>Process work and avoid errors.&lt;/li>
&lt;li>Having predictability and controllability.&lt;/li>
&lt;/ul>
&lt;p>We need a mechanism to stop Red Work and ask: &lt;strong>are we doing the right thing?&lt;/strong>&lt;/p>
&lt;h2 id="what-is-blue-work">What is “Blue Work”?
&lt;a class="heading-anchor" href="#what-is-blue-work" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Blue Work is about &lt;strong>deciding, thinking, planning&lt;/strong>. Blue Work focuses on improving with an embarrassing mindset.&lt;/p>
&lt;blockquote>
&lt;p>The correct place to do Blue Work is at the beginning and at the end of a decision point.&lt;/p>
&lt;/blockquote>
&lt;p>Blue Work is crucial for a good starting point, allowing us to decide the best way to do something with the information
that we have right now.&lt;/p>
&lt;p>It’s also important to establish short iterations between the different actions or activities that we want to complete,
so we can have some “Blue Work time” and reflect again. Blue Work is perfect to do retrospectives and see what could be
improved.&lt;/p>
&lt;p>It’s the time to stop and “control the clock”, collaborate and make a commitment for the next iteration. Blue Work is
also about:&lt;/p>
&lt;ul>
&lt;li>Thinking work.&lt;/li>
&lt;li>Decision-making.&lt;/li>
&lt;li>Looking to achieve excellence.&lt;/li>
&lt;li>Getting more people to do independent thinking answers.&lt;/li>
&lt;li>Embracing variability and looking for different inputs.&lt;/li>
&lt;/ul>
&lt;p>Blue Work in isolation is useless. The job of Blue Work is to make Red Work better. Endless Blue Work, planning without
outcome doesn’t bring any real benefits.&lt;/p>
&lt;hr />
&lt;blockquote>
&lt;p>Nowadays, especially in our modern software industry, there is no room for the old school of “Red-Workers” and
“Blue-Workers”, but “Red Work” and “Blue Work”, and everyone should be involved in both.&lt;/p>
&lt;/blockquote>
&lt;p>It is, therefore, everyone’s responsibility to be aware of these different types of work and find a good balance between
them. Leaders involve everyone in both Red Work and Blue Work.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/OEX1EVc-zjk"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr />
&lt;h3 id="references">References
&lt;a class="heading-anchor" href="#references" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="/readings/leadership-is-language/">Leadership is Language&lt;/a> Book&lt;/li>
&lt;li>&lt;a rel="external" href="https://www.infoq.com/podcasts/david-marquet/">https://www.infoq.com/podcasts/david-marquet/&lt;/a>&lt;/li>
&lt;/ul></content></entry><entry xml:lang="en"><title>Peopleware</title><subtitle>Productive Projects and Teams</subtitle><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><published>2021-05-28T00:00:00+00:00</published><updated>2021-05-28T00:00:00+00:00</updated><author><name>
Tom DeMarco</name></author><author><name>
Timothy Lister</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/peopleware/"/><id>https://chemaclass.com/readings/peopleware/</id><summary type="html">Software development is about people: when, how and where they work best together. Not about languages, tools or fast machines.</summary><content type="html">&lt;p>Software development is about people: when, how and where they can best work together. Not about programming languages
or tools. Not about fast computers, networks or internet access.&lt;/p>
&lt;p>Soft skills are truly important in IT, more than people tend to think.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Developing software is about people that communicate with their
customers and stakeholders, are supported by their managers and collaborate in teams.&lt;/p>
&lt;h3 id="some-of-my-favourite-quotes-from-this-book">Some of my favourite quotes from this book
&lt;a class="heading-anchor" href="#some-of-my-favourite-quotes-from-this-book" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>
&lt;p>Staying late or arriving early is a damaging indictment of the office environment.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Someone who can help a project to take solid form and progress is worth two people who just do work.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>People should be asking and wondering why things are getting done the way they are being done.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>There must be always a trade between quality and quantity.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Organisations tend to expand and create a “busy day”, creating a lot of meetings rather than &lt;a href="/readings/the-five-dysfunctions-of-a-team/">trust&lt;/a> their employees to self-organize.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>The human elements are usually the bottleneck of a project.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>People won’t work harder if you put them under pressure. They might work more for some time, but they will also get overburden and leave.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Managers’ real role is to make it possible for people to work, rather than forcing them to.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Anything you need to quantify can be measured in any way that it’s superior to not measuring at all.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>The ultimate management sin is wasting people’s time.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Change won’t even get started unless people feel safe.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Change only has a chance of succeeding if failure (at least a little of failure) is also okay.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Experience gets turned into learning when an organization alters itself to take account of what experience has shown.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>Professionals want to develop themselves, and want to be happy at work. This book provides ideas in what managers and
developers can do to address these and other similar topics. If you are concerned with people, and looking for ways to
improve how you collaboratively develop and deliver software, then this book is for you.&lt;/p>
&lt;hr />
&lt;blockquote>
&lt;ol start="21">
&lt;li>The Whole Is Greater Than the Sum of the Parts&lt;/li>
&lt;/ol>
&lt;p>We tend to use the word team fairly loosely in the business world, calling any group of people assigned to work
together a “team.” But many of these groups just don’t seem like teams. They don’t have a common definition
of success or any identifiable team spirit. Something is missing. What is missing is a phenomenon we call jell.&lt;/p>
&lt;p>Concept of the Jelled Team&lt;/p>
&lt;p>A jelled team is a group of people so strongly knit that the whole is greater than the sum of the parts.
The production of such a team is greater than that of the same people working in unjelled form. Just as important,
the enjoyment that people derive from their work is greater than what you’d expect given the nature of the work itself.&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;p>I found also a nice serie that shares some thoughts over each chapter of this book.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/dBQMorJBueE"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>Open-Source Software</title><subtitle>The power of contributing to OSS</subtitle><category term="open-source" scheme="https://chemaclass.com/tags/open-source/" label="Open Source"/><category term="git" scheme="https://chemaclass.com/tags/git/" label="Git"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2021-05-03T00:00:00+00:00</published><updated>2021-05-03T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/open-source-software/"/><id>https://chemaclass.com/blog/open-source-software/</id><summary type="html">A practical guide to open-source software: its benefits, how to start contributing, and why sharing code accelerates your career growth.</summary><content type="html">&lt;p>Every project you ship stands on open-source software. Your framework, your test runner, your compiler, the small library you never think about.&lt;/p>
&lt;p>You use it every day. The real question is whether you ever give back.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Giving back is not charity. It is one of the fastest ways to grow as a developer.&lt;/p>
&lt;h2 id="what-is-oss">What is OSS?
&lt;a class="heading-anchor" href="#what-is-oss" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Open-source is not the same as free software. Free software is one kind of open-source, but open-source does not have to be free to use. Two examples draw the line. &lt;a rel="external" href="https://github.com/sebastianbergmann/phpunit/blob/master/LICENSE">PHPUnit&lt;/a> is open-source and free. &lt;a rel="external" href="https://github.com/spryker/spryker-core/blob/master/LICENSE">Spryker&lt;/a> is open-source and paid. Both publish their code for anyone to read.&lt;/p>
&lt;blockquote>
&lt;p>OSS is software that is public, open to the world.&lt;/p>
&lt;/blockquote>
&lt;h2 id="benefits">Benefits
&lt;a class="heading-anchor" href="#benefits" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Two groups win from open-source: the companies that publish it, and the people who contribute.&lt;/p>
&lt;h3 id="for-companies">For companies
&lt;a class="heading-anchor" href="#for-companies" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Open access drives adoption. The easier the code is to get, the faster people build on it. Training and tutorials pull in newcomers and grow the ecosystem. The code tends to sit on the cutting edge, because software that stands still goes obsolete. A public project gathers a community around it, and public channels make that community easy to join.&lt;/p>
&lt;p>And because anyone can read the source, anyone can check its quality. That is trust you cannot fake.&lt;/p>
&lt;h3 id="for-individual-contributors">For individual contributors
&lt;a class="heading-anchor" href="#for-individual-contributors" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>You pick what you work on. You practice real skills without the pressure of a production outage. You get to play with the newest features of your language, or try a language you have never touched.&lt;/p>
&lt;p>You also sharpen the soft skills that carry a career: writing clearly, explaining a change, holding your ground when people disagree.&lt;/p>
&lt;blockquote>
&lt;p>The code teaches the hard skills. The disagreements teach the rest.&lt;/p>
&lt;/blockquote>
&lt;h2 id="contributing-to-oss">Contributing to OSS
&lt;a class="heading-anchor" href="#contributing-to-oss" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="getting-started-with-github">Getting started with GitHub
&lt;a class="heading-anchor" href="#getting-started-with-github" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Starting is easy, and you have two doors. Open your own project, or contribute to one that already exists. A pet project fits the first door perfectly.&lt;/p>
&lt;h3 id="pet-projects">Pet projects
&lt;a class="heading-anchor" href="#pet-projects" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>A pet project is a playground to build real software and train real skills. Put it on your public GitHub profile and you get every benefit of contributing to OSS, plus one more: you answer to nobody. You set the roadmap. You decide what to build and how. You are your own boss.&lt;/p>
&lt;blockquote>
&lt;p>The project is there for you. You are responsible to play, explore, and push past your limits.&lt;/p>
&lt;/blockquote>
&lt;h3 id="my-pet-projects">My pet projects
&lt;a class="heading-anchor" href="#my-pet-projects" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>&lt;strong>Active:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/agnostic-ai">agnostic-ai&lt;/a>: write AI agents, skills, rules, and hooks once, use them in every AI CLI.&lt;/li>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/bashdep">bashdep&lt;/a>: a simple dependency manager for Bash.&lt;/li>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/phel-snake">phel-snake&lt;/a>: the snake game in your terminal, written in Phel.&lt;/li>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/EdifactParser">edifact-parser&lt;/a>: a parser for a UN/EDIFACT file format in PHP.&lt;/li>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/unspent">unspent&lt;/a>: a PHP library for UTXO-like bookkeeping with unspent entries.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Inactive:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/create-pr">create-pr&lt;/a>: a Bash script to open a pull request from your branch and context.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Abandoned:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/stock-ticker">stock-ticker&lt;/a>: get a notification with the news from your favorite Tickers.&lt;/li>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/JiraStatusNotifier">jira-status-notifier&lt;/a>: Notify when the JIRA tickets don’t move along.&lt;/li>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/php-best-practices">php-best-practices&lt;/a>: what I considered best practices for web-dev (archived).&lt;/li>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/php-scaffolding">php-scaffolding&lt;/a>: a basic PHP scaffolding with Docker (archived).&lt;/li>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/knob-mvc">knob-mvc&lt;/a>: a framework to create WordPress templates (2015/2017).&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>… and many more on &lt;a rel="external" href="https://github.com/Chemaclass">github.com/Chemaclass&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;h3 id="my-oss-organization-contributions">My OSS organization contributions
&lt;a class="heading-anchor" href="#my-oss-organization-contributions" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>&lt;strong>Active:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://github.com/phel-lang/phel-lang">phel-lang&lt;/a>: Phel is a functional programming language that compiles to PHP.
It is a dialect of Lisp inspired by Clojure and Janet. I already wrote a post about
this: &lt;a href="/blog/phel-first-release/">Phel: A Lisp that compiles to PHP&lt;/a>&lt;/li>
&lt;li>&lt;a rel="external" href="https://github.com/gacela-project/gacela">gacela-project&lt;/a>: Gacela is a PHP framework that helps you to improve the
design of your application by splitting the logic into different modules.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Abandoned:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://github.com/NuevaMetal/nm_template">nm_template&lt;/a>: The base template for NuevaMetal (2013-2016).&lt;/li>
&lt;/ul>
&lt;h2 id="knowledge-sharing-and-impact">Knowledge Sharing and Impact
&lt;a class="heading-anchor" href="#knowledge-sharing-and-impact" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Code is only half of it. The other half is what you write down and hand to the next person.&lt;/p>
&lt;h3 id="blog-posts">Blog posts
&lt;a class="heading-anchor" href="#blog-posts" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="/blog/pull-request-vs-pair-prog/">Pull Requests vs Pair Programming&lt;/a>&lt;/li>
&lt;li>&lt;a href="/blog/the-process-itself-is-the-goal/">The Process Itself Is the Goal&lt;/a>&lt;/li>
&lt;li>&lt;a href="/blog/the-art-of-refactoring/">The Art of Refactoring: When, How, and Why&lt;/a>&lt;/li>
&lt;li>&lt;a href="/blog/the-art-of-testing/">The Art of Testing: Where Design Meets Quality&lt;/a>&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>… and many more on &lt;a rel="external" href="https://chemaclass.com/blog/">https://chemaclass.com/blog/&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;h3 id="the-beauty-of-oss">The beauty of OSS
&lt;a class="heading-anchor" href="#the-beauty-of-oss" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Contribute in public long enough and you start to see your own growth. The corrections you keep making. The code you wrote last year, already aged. The mistakes, all of them, in the open. And underneath, the slow proof that you are getting better.&lt;/p>
&lt;p>You build a sixth sense for patterns you have hit before, the good ones and the painful ones.&lt;/p>
&lt;p>&lt;strong>Show your skills. Help the people around you.&lt;/strong> That is &lt;a href="/blog/working-with-the-garage-door-open/">working with the garage door open&lt;/a>.&lt;/p>
&lt;blockquote>
&lt;p>Open-source software offers you one of the best opportunities to start building a career of continuous improvement.&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;p>This is a (Spanish) talk that I did remotely on April 2021,
for &lt;a rel="external" href="https://www.meetup.com/phpmad/events/277733306/">PHPMad Madrid Community&lt;/a>. I present all these ideas
together with a live demo of how to contribute to a real OSS.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/GE5wR_SC_P4"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr /></content></entry><entry xml:lang="en"><title>Zombie Scrum Survival Guide</title><subtitle>A Journey to Recovery</subtitle><category term="scrum" scheme="https://chemaclass.com/tags/scrum/" label="Scrum"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2021-03-01T00:00:00+00:00</published><updated>2021-03-01T00:00:00+00:00</updated><author><name>
Christiaan Verwijs</name></author><author><name>
Johannes Schartau</name></author><author><name>
Barry Overeem</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/zombie-scrum-survival-guide/"/><id>https://chemaclass.com/readings/zombie-scrum-survival-guide/</id><summary type="html">Zombie Scrum Survival Guide reveals why Scrum runs aground and shows how to supercharge your Scrum outcomes, while having a lot more fun along the way.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>I really enjoy the ideas and experiments presented in the book. It points out a lot of “big elephants in many rooms” for
a lot of teams claiming to do &lt;a href="/blog/ignoring-scrum-to-get-more-agile/">Scrum&lt;/a> or &lt;a href="/blog/what-kills-agility/">Agile&lt;/a> in a really questionable way, aka: Zombie Scrum.&lt;/p>
&lt;h3 id="summary">Summary
&lt;a class="heading-anchor" href="#summary" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Zombie Scrum Survival Guide reveals why Scrum runs aground and shows how to supercharge your Scrum outcomes, while
having a lot more fun along the way. Humorous, visual, and extremely relatable, it offers practical approaches,
exercises, and tools for escaping Zombie Scrum. Even if you’re surrounded by skeptics, this book will be the antidote to
help you build more of what users need, ship faster, improve more continuously, interact more successfully in any team,
and feel a lot better about what you’re doing. Suddenly, one day soon, you’ll remember: that’s why we adopted Scrum in
the first place!&lt;/p>
&lt;ul>
&lt;li>Learn how Zombie Scrum infects you, why it spreads, and how to inoculate yourself.&lt;/li>
&lt;li>Get closer to your stakeholders, and wake up to their understanding of value.&lt;/li>
&lt;li>Discover why Zombie teams can’t learn, and what to do about it.&lt;/li>
&lt;li>Clear away the specific obstacles to real continuous improvement.&lt;/li>
&lt;li>Make self-managed teams real so people can behave like humans, not Zombies.&lt;/li>
&lt;/ul>
&lt;hr />
&lt;p>This is a nice webinar, when they offer a fresh perspective on Zombie Scrum, share key insights from the book, and
discuss their latest findings on the relentless ongoing research.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/ylGfrsXXQMs"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>Who moved my cheese?</title><subtitle>An Amazing Way to Deal With Change In Your Work and In Your Life</subtitle><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2021-01-16T00:00:00+00:00</published><updated>2021-01-16T00:00:00+00:00</updated><author><name>
Spencer Johnson</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/who-moved-my-cheese/"/><id>https://chemaclass.com/readings/who-moved-my-cheese/</id><summary type="html">This book presents a tale inside the main story that consists of 4 characters: two mice, Sniff and Scurry, and two little persons, Hem and Haw.</summary><content type="html">&lt;p>This book presents a tale inside the main story that consists of 4 characters: two mice, &lt;strong>Sniff&lt;/strong> and &lt;strong>Scurry&lt;/strong>, and two little persons, &lt;strong>Hem&lt;/strong> and &lt;strong>Haw&lt;/strong>.&lt;/p>
&lt;p>The tale is a beautiful metaphor of the different attitudes that people adopt as part of their identity in life when they have to confront any change.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h3 id="my-favorite-lessons-of-the-book">My favorite lessons of the book
&lt;a class="heading-anchor" href="#my-favorite-lessons-of-the-book" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ol>
&lt;li>Change happens.
They keep moving the cheese.&lt;/li>
&lt;li>Anticipate change.
Get ready for the cheese to move.&lt;/li>
&lt;li>Monitor change.
Smell the cheese often so you know when it’s getting old.&lt;/li>
&lt;li>Adapt to change quickly.
The quicker you let go of old cheese, the sooner you can enjoy new cheese.&lt;/li>
&lt;li>Change.
Move with the cheese.&lt;/li>
&lt;li>Enjoy change.
Enjoy the taste of new cheese&lt;/li>
&lt;li>Be ready to change quickly and enjoy it again.
They keep moving the cheese.&lt;/li>
&lt;/ol>
&lt;blockquote>
&lt;p>“Everyone knows that not all change is good or even necessary. But in a world that is constantly changing, it is to our advantage to learn how to adapt and enjoy something better. It is not what is in the story of “Who moved my cheese?” but how you interpret it and apply it to your own situation that gives it the value.“ - Ken Blanchard.&lt;/p>
&lt;/blockquote>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/OvYCLxqkfvY"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;p>I wrote a blog post about this book: &lt;a href="/blog/embrace-the-change/">Embrace the change&lt;/a>&lt;/p></content></entry><entry xml:lang="en"><title>The Process Itself Is the Goal</title><subtitle>How to focus and have self-discipline</subtitle><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2020-09-08T00:00:00+00:00</published><updated>2020-09-08T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/the-process-itself-is-the-goal/"/><id>https://chemaclass.com/blog/the-process-itself-is-the-goal/</id><summary type="html">No goal should be an achievement on its own, but the process itself that helps us to go in the direction of these goals.</summary><content type="html">&lt;p>No goal should be an achievement on its own, but the process itself that helps us to go in the direction of these goals.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Goals, in business and in life in general, should be conceived as directions, where their real intention is to help us accomplish more in the way we planned or want.&lt;/p>
&lt;blockquote>
&lt;p>If we get rewarded only for results and not for processes, we will become pretty miserable.&lt;/p>
&lt;/blockquote>
&lt;p>Society doesn’t reward the journey, but the results, and that’s exactly part of the problem when you are too focused on how society acts on you. Of course, it’s important to listen to society, but it’s more important to listen to ourselves in order to improve constantly. Continuous improvement doesn’t apply to software only but to everything in life.&lt;/p>
&lt;h2 id="how-do-i-keep-myself-focused">How do I keep myself focused?
&lt;a class="heading-anchor" href="#how-do-i-keep-myself-focused" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>This is a totally subjective topic that might be different from person to person. That said, I think it might be useful to share my thoughts with you, so I’ll do it.&lt;/p>
&lt;h3 id="self-reflection">Self-reflection
&lt;a class="heading-anchor" href="#self-reflection" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>I used to write my thoughts in a “diary” for some years. Back then, in 2015, when I moved to Germany, I didn’t know many people here, and the environment was completely new.
I decided to write my thoughts to myself in order to read them the day after and do some retrospection about it. Finally, after around 3 years, in December 2017, I published a book named &lt;a rel="external" href="http://ojosenunrecuerdo.es/">“Ojos en un recuerdo”&lt;/a>. That book is the compilation of those thoughts. No story behind it. They are as they came. You can see the evolution of the topics and about what and how they were written.&lt;/p>
&lt;p>&lt;img src="/images/blog/2020-09-08/oeur-books.webp" alt="ojos en un recuerdo books" />&lt;/p>
&lt;p>The exercise of self-reflection itself was more important than the book! The goal here wasn’t writing a book at all. The goal was the self-projection to understand what was going on inside myself. Publishing those thoughts in a book was an accident. A beautiful accident, though.
This habit of thinking about my actions and decisions (what do I do and why) helped me to develop who I am nowadays.&lt;/p>
&lt;h3 id="sports">Sports
&lt;a class="heading-anchor" href="#sports" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Exercise helps my mind to disconnect from the tech area. It keeps my body active using some energy in a different environment. But most importantly, it helps to get fully tired before going to bed. I feel myself resting much better if I’ve done some sport during the day: contact sports, fitness studio, or simply running.&lt;/p>
&lt;blockquote>
&lt;p>The specific sport itself is an irrelevant detail as far as you feel comfortable. The act of doing sport is the key here.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2020-09-08/bjj-berlin-2020.webp" alt="jiu-jitsu training in berlin" />&lt;/p>
&lt;h3 id="books">Books
&lt;a class="heading-anchor" href="#books" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>I try to read tech throughout the day and non-tech during the night. For example, some days before going to work or after working time I might read a tech book. And some days before going to sleep I like to read a non-tech one. This way, I feed my brain with knowledge and I also provide it with non-tech space, so it can rest from code and enjoy other “universes” as well.
Some suggestions that helped me to understand how we behave, why we do what we do, and therefore build some habits that I didn’t know how to:&lt;/p>
&lt;ul>
&lt;li>The Power of Habit, by Charles Duhigg.&lt;/li>
&lt;li>Atomic Habits, by James Clear.&lt;/li>
&lt;li>&lt;a href="/blog/ignoring-scrum-to-get-more-agile/">Scrum&lt;/a>: Doing Twice the Work in Half the Time, by Jeff Sutherland.&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="/images/blog/2020-09-08/atomic-habits.webp" alt="atomic habits book" />&lt;/p>
&lt;h2 id="personal-tricks">Personal tricks
&lt;a class="heading-anchor" href="#personal-tricks" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>I wish I would have read much more. Nowadays, with the number of distractions that we have, keeping yourself focused is pretty hard. Some tricks that help me a lot when I want to focus:&lt;/p>
&lt;ul>
&lt;li>I keep my personal phone always in silence and vibration mode.&lt;/li>
&lt;li>I used to spend hours on social media; a lot of time wasted. Not anymore. I reduced the social media noise to the minimum by removing the apps that prevent me from being as productive as I want. Some of them from my phone, others the account itself.&lt;/li>
&lt;li>I used to play video games. Not anymore. Instead, I go to GitHub to work on my pet projects, contribute to an &lt;a href="/blog/open-source-software/">open-source&lt;/a> project, or simply read a book.&lt;/li>
&lt;li>When I go for a run, I enjoy it twice by listening to a 45-min podcast that I want to listen to since the very morning. The reward of listening to the podcast is linked with the act of going out and running. I conscientiously created that habit.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>It’s not about removing your old habits but replacing them with new ones.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2020-09-08/chema-jumping.webp" alt="chema jumping outdoors" />&lt;/p>
&lt;h3 id="how-to-improve-your-habits">How to improve your habits
&lt;a class="heading-anchor" href="#how-to-improve-your-habits" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Habits emerge without our consent. To save energy, the brain creates a habit loop that looks for a trigger to cue a behavior.&lt;/p>
&lt;ul>
&lt;li>Willpower can be learned. It needs exercise, like a muscle.&lt;/li>
&lt;li>Small successes are the building blocks of bigger wins.&lt;/li>
&lt;li>Focus less on goals and more on systems and processes.&lt;/li>
&lt;li>To change habits, change how you identify yourself.&lt;/li>
&lt;li>To build good habits, the environment is more important than being motivated.&lt;/li>
&lt;li>To break a bad habit, reduce exposure to the cues that cause it.&lt;/li>
&lt;li>Bundle an action you want to do with an action you need to do.&lt;/li>
&lt;li>Don’t try to make a habit perfect, just repeat it.&lt;/li>
&lt;li>Reduce friction for good habits and increase friction for bad habits.&lt;/li>
&lt;li>Like in Scrum, removing waste is fundamental to get better.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>Repetition is the key. Make it easier to do what you want to do. Make it harder to do what you want to stop doing. Enjoy the process: that’s the goal.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2020-09-08/chema-next-turm.webp" alt="chema by a tower" />&lt;/p>
&lt;h2 id="interesting-links">Interesting links
&lt;a class="heading-anchor" href="#interesting-links" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://heleo.com/charles-duhigg-13-key-insights-charles-duhiggs-power-habit/2026/">13 key insights from The Power of Habit&lt;/a>&lt;/li>
&lt;li>&lt;a rel="external" href="https://medium.com/@saurinparikh/the-most-interesting-useful-takeaways-from-atomic-habits-9acc20bdc858">The most interesting takeaways from Atomic Habits&lt;/a>&lt;/li>
&lt;li>&lt;a href="/readings/atomic-habits/">Atomic Habits in my readings&lt;/a>&lt;/li>
&lt;/ul></content></entry><entry xml:lang="en"><title>Scrum</title><subtitle>The Art of Doing Twice the Work in Half the Time</subtitle><category term="scrum" scheme="https://chemaclass.com/tags/scrum/" label="Scrum"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2020-06-10T00:00:00+00:00</published><updated>2020-06-10T00:00:00+00:00</updated><author><name>
Jeff Sutherland</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/scrum-the-art-of-doing-twice/"/><id>https://chemaclass.com/readings/scrum-the-art-of-doing-twice/</id><summary type="html">Sutherland on Scrum: how to define what you are trying to achieve, set up the team for it, and track progress to done.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Every organisation, whatever its size, constantly has to come to grips with delivering a product or service on time and
on budget. &lt;a href="/blog/ignoring-scrum-to-get-more-agile/">Scrum&lt;/a> shows you how. It explains how to define precisely what it is that you are seeking to achieve, how to
set up the team to achieve it, and how to monitor progress until the project is successfully completed.&lt;/p></content></entry><entry xml:lang="en"><title>High Output Management</title><subtitle>The art of the entrepreneur can be summed up in a single word: managing</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2020-04-03T00:00:00+00:00</published><updated>2020-04-03T00:00:00+00:00</updated><author><name>
Andrew S. Grove</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/high-output-management/"/><id>https://chemaclass.com/readings/high-output-management/</id><summary type="html">Andy Grove's Intel classic on managerial leverage, meetings, decisions and how to get the most output from a team.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>In this legendary business book and Silicon Valley staple, the former chairman and CEO of Intel shares his perspective
on how to build and run a company. A practical handbook for navigating real-life business scenarios and a powerful
management manifesto with the ability to revolutionize the way we work.&lt;/p>
&lt;h3 id="sections">Sections
&lt;a class="heading-anchor" href="#sections" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Managerial Leverage&lt;/li>
&lt;li>Training&lt;/li>
&lt;li>&lt;a href="/readings/start-with-why/">Motivation&lt;/a>&lt;/li>
&lt;li>Meetings and Decisions&lt;/li>
&lt;li>One-on-One Meetings&lt;/li>
&lt;li>&lt;a href="/blog/tech-lead/">Delegation&lt;/a> and Task-Relevant Maturity&lt;/li>
&lt;li>KPIs&lt;/li>
&lt;li>Performance Reviews&lt;/li>
&lt;li>Interviews&lt;/li>
&lt;li>Promotions and Recycling&lt;/li>
&lt;/ul>
&lt;hr />
&lt;p>A pretty nice overview from the takeaways by Marc Koenig:&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/Yi1PSs_bpQ0"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>How to Improve Your Tech-Talk (or Any Other Presentation)</title><subtitle>Some tips to improve your communication skills</subtitle><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2019-11-18T00:00:00+00:00</published><updated>2019-11-18T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/improve-your-tech-talk/"/><id>https://chemaclass.com/blog/improve-your-tech-talk/</id><summary type="html">We have all sat through a talk that was hard to follow. How to prepare and deliver a tech talk people actually want to hear.</summary><content type="html">&lt;p>We have found ourselves attending a meeting that felt like we were wasting our time with a “monologue” that is either hard to follow or doesn’t seem so interesting as it could.
Let’s fix this.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Therefore, I was thinking about it, and I tried to get some keys to improving their general quality. It applies to all presentations but also tech-talks and other tech presentations in which engineers are usually involved.&lt;/p>
&lt;h2 id="structure-of-the-talk">Structure of the talk
&lt;a class="heading-anchor" href="#structure-of-the-talk" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>To explain how I think a good presentation should look like I will address three main topics that are relevant to structure and design your presentation.&lt;/p>
&lt;ol>
&lt;li>Content of the presentation: what message do you want to convey to whom and how?&lt;/li>
&lt;li>Design and Layout: how you can design an easy-to-follow presentation that supports your talk instead of taking away the &lt;a href="/readings/digital-minimalism/">attention&lt;/a> from what you are actually trying to say.&lt;/li>
&lt;li>Lastly, I think also the audience is responsible for making a tech talk successful, so I will also add a reminder about the role and responsibilities of the listeners.&lt;/li>
&lt;/ol>
&lt;p>&lt;img src="/images/blog/2019-11-18/talking.webp" alt="person talking to an audience" />&lt;/p>
&lt;h3 id="consider-your-audience">Consider your audience
&lt;a class="heading-anchor" href="#consider-your-audience" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>When you prepare your presentation, ask yourself:&lt;/p>
&lt;ul>
&lt;li>Who is attending the talk?&lt;/li>
&lt;li>Which backgrounds do they have?&lt;/li>
&lt;li>Which position do they have?&lt;/li>
&lt;li>Which information is relevant to them?&lt;/li>
&lt;li>Do they have to know all the keywords that you would like to use?&lt;/li>
&lt;/ul>
&lt;h3 id="introduce-the-topic">Introduce the topic
&lt;a class="heading-anchor" href="#introduce-the-topic" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Create some atmosphere. Try to answer these questions:&lt;/p>
&lt;ul>
&lt;li>Why should they listen to you?&lt;/li>
&lt;li>Why should they spend their time in another meeting?&lt;/li>
&lt;li>What will they have learned by the end of the talk?&lt;/li>
&lt;li>What is your main message?&lt;/li>
&lt;/ul>
&lt;p>Every meeting should have an output and an outcome. Keep it in mind.&lt;/p>
&lt;h3 id="create-a-storyline">Create a Storyline
&lt;a class="heading-anchor" href="#create-a-storyline" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>When preparing the main content of your talk, think about a storyline that connects your arguments. This makes it easier for the audience to follow.&lt;/li>
&lt;li>Stick to the messages that are necessary to explain your idea or concept.&lt;/li>
&lt;li>Leave out any unnecessary information that is not relevant to the core of your message.&lt;/li>
&lt;/ul>
&lt;h3 id="build-a-conclusion">Build a conclusion
&lt;a class="heading-anchor" href="#build-a-conclusion" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Summarize the main conclusion(s) in a concise way:&lt;/p>
&lt;ul>
&lt;li>What is the conclusion of this meeting?&lt;/li>
&lt;li>What are the learnings from this meeting?&lt;/li>
&lt;li>What are the open questions or next steps?&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="/images/blog/2019-11-18/books.webp" alt="stack of books" />&lt;/p>
&lt;h2 id="design-and-layout">Design and Layout
&lt;a class="heading-anchor" href="#design-and-layout" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="write-less-talk-more">Write less, talk more
&lt;a class="heading-anchor" href="#write-less-talk-more" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>A tech-talk is about learning new ideas and concepts.&lt;/li>
&lt;li>A presentation should support your talk, not replace or replicate what you have said.&lt;/li>
&lt;li>The more words on the slide, the fewer they will be remembered.&lt;/li>
&lt;li>Use visuals/graphics that support your talk instead of additional text.&lt;/li>
&lt;/ul>
&lt;h3 id="large-fonts">Large fonts
&lt;a class="heading-anchor" href="#large-fonts" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>If you have some code to present, consider:&lt;/p>
&lt;ul>
&lt;li>If it is a picture: use large fonts inside. I recommend using https://carbon.now.sh/ for simple snippets. Or just screenshots from your favorite IDE.&lt;/li>
&lt;li>If you code in live: prepare your editor in advance. Use the Presentation Mode of your IDE.&lt;/li>
&lt;/ul>
&lt;h2 id="role-of-the-audience">Role of the Audience
&lt;a class="heading-anchor" href="#role-of-the-audience" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="responsibilities-of-the-attendee">Responsibilities of the attendee
&lt;a class="heading-anchor" href="#responsibilities-of-the-attendee" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>No unnecessary phone usage, like Twitter, Instagram, Facebook, WhatsApp, Telegram, etc.&lt;/li>
&lt;li>Keep your questions for the questions time, unless the presenter mentions at the very beginning that you can ask at any moment. Usually, it’s better not to interrupt the topic, so we can ask the questions at the end.&lt;/li>
&lt;li>Show interest in the topic. The presenter should have spent some time preparing the slides for you.&lt;/li>
&lt;li>Pair with the presenter the interest of the topic. This is also the responsibility of the presenter. You both should be eager to learn more about the topic.&lt;/li>
&lt;/ul>
&lt;h3 id="inner-questions">Inner questions
&lt;a class="heading-anchor" href="#inner-questions" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Was it worth the time that we all spent in this room?&lt;/li>
&lt;li>Do we regret the attendance of this meeting?&lt;/li>
&lt;/ul>
&lt;p>At the end of the meeting, we should ask these questions in order to improve. Ask other people for their &lt;a href="/blog/ship-show-ask/">feedback&lt;/a>, so we can grow further and together.&lt;/p>
&lt;p>&lt;img src="/images/blog/2019-11-18/footer.webp" alt="audience at a presentation" />&lt;/p></content></entry><entry xml:lang="en"><title>Atomic Habits</title><subtitle>An Easy &amp; Proven Way to Build Good Habits &amp; Break Bad Ones</subtitle><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2019-11-12T00:00:00+00:00</published><updated>2019-11-12T00:00:00+00:00</updated><author><name>
James Clear</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/atomic-habits/"/><id>https://chemaclass.com/readings/atomic-habits/</id><summary type="html">You do not need to think big to change your life. James Clear shows that real change comes from hundreds of small decisions.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>People think that when you want to change your life, you need to think big. James Clear has discovered another way. He
knows that real change comes from the compound effect of hundreds of small decisions. He calls them atomic habits.&lt;/p>
&lt;h3 id="takeaways">Takeaways
&lt;a class="heading-anchor" href="#takeaways" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Focus more on systems and processes and less on goals&lt;/li>
&lt;li>Change how you identify yourself&lt;/li>
&lt;li>The environment is more important than being motivated&lt;/li>
&lt;li>To break a bad habit, reduce exposure to the cues that cause it&lt;/li>
&lt;li>Bundle an action you want to do with an action you need to do&lt;/li>
&lt;li>Instead of saying “I have to,” say “I get to”&lt;/li>
&lt;li>Don’t try to make a habit perfect, just repeat it&lt;/li>
&lt;li>Reduce friction for good habits and increase friction for bad habits&lt;/li>
&lt;li>To make something not seem like a chore, do it for short periods of time&lt;/li>
&lt;li>To achieve long-term goals, make small habits rewarding&lt;/li>
&lt;li>Never miss more than once of a habit&lt;/li>
&lt;/ul>
&lt;p>I wrote a blog post about this topic: &lt;a href="/blog/the-process-itself-is-the-goal/">The process itself is the goal&lt;/a>&lt;/p>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/YT7tQzmGRLA"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>The Power of Habit</title><subtitle>Why We Do What We Do, and How to Change</subtitle><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2017-03-20T00:00:00+00:00</published><updated>2017-03-20T00:00:00+00:00</updated><author><name>
Charles Duhigg</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/the-power-of-habits/"/><id>https://chemaclass.com/readings/the-power-of-habits/</id><summary type="html">Charles Duhigg on the science of habit: how habits form, why they exist, and how to rewire them for good.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>&lt;h2 id="takeaways">Takeaways
&lt;a class="heading-anchor" href="#takeaways" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;ol>
&lt;li>All &lt;a href="/readings/atomic-habits/">habits&lt;/a> operate the same way&lt;/li>
&lt;li>Changing a habit means changing one key aspect…&lt;/li>
&lt;li>…and changing one habit can change a lot of things&lt;/li>
&lt;li>Willpower is a muscle&lt;/li>
&lt;li>Practice, practice, practice&lt;/li>
&lt;/ol>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/Zq2LVa36ukk"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>Sprint</title><subtitle>How to Solve Big Problems and Test New Ideas in Just Five Days</subtitle><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><published>2016-09-01T00:00:00+00:00</published><updated>2016-09-01T00:00:00+00:00</updated><author><name>
Jake Knapp</name></author><author><name>
John Zeratsky</name></author><author><name>
Braden Kowitz</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/sprint/"/><id>https://chemaclass.com/readings/sprint/</id><summary type="html">A five-day formula for going from idea to prototype to decision, saving your team weeks of building the wrong thing.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>“Sprint offers a transformative formula for &lt;a href="/blog/the-art-of-testing/">testing&lt;/a> ideas that works whether you’re at a startup or a large
organization. Within five days, you’ll move from idea to prototype to decision, saving you and your team countless hours
and countless dollars. A must read for entrepreneurs of all stripes.” - Eric Ries, author of &lt;a href="/readings/the-lean-startup/">The Lean Startup&lt;/a>&lt;/p>
&lt;p>From three partners at Google Ventures, a unique five-day process for solving tough problems, proven at more than a
hundred companies.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/AuktI4lBj6M"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>97 Things Every Programmer Should Know</title><subtitle>Collective whisdom from the experts</subtitle><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2016-07-15T00:00:00+00:00</published><updated>2016-07-15T00:00:00+00:00</updated><author><name>
Kevlin Henney</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/97-things-every-programmer-should-know/"/><id>https://chemaclass.com/readings/97-things-every-programmer-should-know/</id><summary type="html">97 short, practical tips from experts on what every programmer should know, whatever language you use.</summary><content type="html">&lt;p>Tap into the wisdom of experts to learn what every programmer should know, no matter what language you use. With the 97
short and extremely useful tips for programmers in this book, you’ll expand your skills by adopting new approaches to
old problems, learning appropriate best practices, and honing your craft through sound advice.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h3 id="my-main-key-takeaways">My main key takeaways
&lt;a class="heading-anchor" href="#my-main-key-takeaways" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>01.- Pay off technical debt as soon as possible.&lt;/p>
&lt;p>02.- Learn and master &lt;strong>functional programming&lt;/strong>.&lt;/p>
&lt;ul>
&lt;li>It makes your code less prone to error and easier to debug.&lt;/li>
&lt;/ul>
&lt;p>03.- Don’t guess what a user would do; get users to do things and watch them.&lt;/p>
&lt;p>04.- &lt;strong>Automate&lt;/strong> coding standards.&lt;/p>
&lt;p>05.- Write &lt;strong>simple&lt;/strong> code, simple descriptive names, simple relationships.&lt;/p>
&lt;p>06.- Before you refactor: consider the existing tests and code.&lt;/p>
&lt;ul>
&lt;li>Work in increments, make sure the tests still pass after every change.&lt;/li>
&lt;/ul>
&lt;p>08.- Always leave code &lt;strong>cleaner&lt;/strong> than you found it, even if you didn’t write it.&lt;/p>
&lt;p>10.- Choose your libraries/frameworks carefully to avoid unnecessary complexity.&lt;/p>
&lt;p>11.- Make your code easy to understand using &lt;strong>domain&lt;/strong> terms.&lt;/p>
&lt;p>13.- The &lt;strong>layout&lt;/strong> of the code is also important.&lt;/p>
&lt;p>14.- Use code &lt;strong>reviews&lt;/strong> focusing on knowledge-sharing among team members.&lt;/p>
&lt;p>15.- Objects &lt;strong>immutable&lt;/strong> whenever relevant. Each variable should have the smallest possible scope. Never include more than four function arguments.&lt;/p>
&lt;p>18.- Take &lt;strong>responsibility&lt;/strong> for your own education and never stop learning.&lt;/p>
&lt;ul>
&lt;li>That can be done with just a bit of time each week and there are many ways to go about it (e.g. podcasts, lessons, books, etc.).&lt;/li>
&lt;/ul>
&lt;p>19.- When designing an API, aim to make it &lt;strong>easy to use&lt;/strong>, not convenient to code.&lt;/p>
&lt;p>20.- Deploy early and &lt;strong>often&lt;/strong>. Do not leave it until the end of the project.&lt;/p>
&lt;p>22.- Improving your skills should be on your daily basis.&lt;/p>
&lt;p>23.- Adapt the technical level of your domain-specific language to your audience.&lt;/p>
&lt;p>24.- &lt;strong>Don’t be afraid&lt;/strong> to break things if that’s what’s necessary to fix things.&lt;/p>
&lt;p>25.- Careful with your test data because that might go public accidentally.&lt;/p>
&lt;p>26.- Handle your errors as they appear, don’t leave it for later.&lt;/p>
&lt;p>27.- Learn &lt;strong>different&lt;/strong> programming languages.&lt;/p>
&lt;ul>
&lt;li>Learn their own “culture” or way of doing things.&lt;/li>
&lt;li>It’ll make you definitely a better programmer.&lt;/li>
&lt;/ul>
&lt;p>28.- Don’t just catch your errors, really handle them.&lt;/p>
&lt;p>29.- Understand at least some complexities of your business, not just programming.&lt;/p>
&lt;p>30.- &lt;strong>DRY&lt;/strong>: Don’t Repeat Yourself.&lt;/p>
&lt;p>32.- Encapsulate behavior, not just state.&lt;/p>
&lt;p>33.- Floating point numbers inevitably can create errors in calculations.&lt;/p>
&lt;p>34.- &lt;strong>Open source&lt;/strong> is a great opportunity to do interesting work and develop programming skills.&lt;/p>
&lt;p>36.- Give proper &lt;strong>context&lt;/strong> when asking for help, because people can’t just guess what’s going on.&lt;/p>
&lt;p>37.- It’s not about the long hours. Learn to &lt;strong>work effectively&lt;/strong>.&lt;/p>
&lt;ul>
&lt;li>Dedicate time to continuous learning and to think about what you’re doing.&lt;/li>
&lt;/ul>
&lt;p>38.- Write proper &lt;strong>bug reports&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Precisely how to reproduce the bug,&lt;/li>
&lt;li>how often it appears,&lt;/li>
&lt;li>what should have happened,&lt;/li>
&lt;li>what actually happened.&lt;/li>
&lt;/ul>
&lt;p>39.- Don’t write unnecessary code.&lt;/p>
&lt;ul>
&lt;li>Only write code that adds value and is needed right now.&lt;/li>
&lt;li>&lt;strong>Remove dead code&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;p>41.- The main cause of delays in application response time is a high number of remote &lt;strong>interprocess&lt;/strong> communications, not the algorithm.&lt;/p>
&lt;ul>
&lt;li>DB connections, for example.&lt;/li>
&lt;/ul>
&lt;p>42.- If a compiler warning shows up in your build, fix it.&lt;/p>
&lt;ul>
&lt;li>Don’t leave it for later. Even if it’s not going to be a problem in production.&lt;/li>
&lt;li>Compiler == any static code analysis for non compiled languages.&lt;/li>
&lt;/ul>
&lt;p>43.- Learning to use &lt;strong>command line&lt;/strong> tools is a valuable educational experience, and you might end up preferring them.&lt;/p>
&lt;p>44.- Learn (at least) two different languages and paradigms well.&lt;/p>
&lt;p>45.- Invest some time to &lt;strong>master&lt;/strong> the IDE you’re using.&lt;/p>
&lt;ul>
&lt;li>It’ll make your life easier and save you time in the long run.&lt;/li>
&lt;/ul>
&lt;p>46.- Know and work with your limitations: budget, resources, time, etc.&lt;/p>
&lt;p>47.- Work in &lt;strong>small tasks&lt;/strong>, don’t be afraid to throw away changes.&lt;/p>
&lt;ul>
&lt;li>You’ll still have the insight you gained from the experience.&lt;/li>
&lt;li>Know what you need to accomplish beforehand.&lt;/li>
&lt;/ul>
&lt;p>48.- Use a relational DB if your application is going to handle a large, persistent, interconnected set of data.&lt;/p>
&lt;p>49.- Learn to &lt;strong>communicate&lt;/strong> well in many “languages”: not just to your machine, but also to business partners, and maybe even pick up a foreign language too.&lt;/p>
&lt;ul>
&lt;li>It’s good for connections and for life.&lt;/li>
&lt;/ul>
&lt;p>54.- Think twice before implementing “temporary solutions”.&lt;/p>
&lt;p>55.- Make &lt;strong>GUI&lt;/strong> easy to use correctly and hard to use incorrectly.&lt;/p>
&lt;ul>
&lt;li>Anticipate errors and find ways to prevent them.&lt;/li>
&lt;li>It’s about the user’s experience, not your own.&lt;/li>
&lt;/ul>
&lt;p>56.- In projects, find ways to make &lt;strong>the invisible visible&lt;/strong>.&lt;/p>
&lt;p>57.- Message passing leads to better &lt;strong>scalability&lt;/strong> in parallel systems.&lt;/p>
&lt;p>58.- Write code that other people can easily &lt;strong>understand&lt;/strong>.&lt;/p>
&lt;p>59.- Using &lt;strong>polymorphism&lt;/strong> in your classes and objects reduces the need for if/else statements, which results in smaller, safer code.&lt;/p>
&lt;p>60.- QA is your friend, not your enemy.&lt;/p>
&lt;p>61.- Version your releases.&lt;/p>
&lt;p>62.- Make sure your source code clearly states what the program is doing.&lt;/p>
&lt;p>63.- Learn about the build process. It’s an important part of development.&lt;/p>
&lt;p>64.- Practice &lt;strong>&lt;a href="/blog/effective-pair-programming/">pair programming&lt;/a>&lt;/strong>.&lt;/p>
&lt;p>65.- Prefer &lt;strong>domain-specific types&lt;/strong> over primitive types.&lt;/p>
&lt;ul>
&lt;li>They make the code more readable and less prone to errors in development.&lt;/li>
&lt;/ul>
&lt;p>67.- A professional takes &lt;strong>personal responsibility&lt;/strong> for their career and their code.&lt;/p>
&lt;p>68.- Use version control.&lt;/p>
&lt;p>69.- Sometimes the best way to solve a problem is to step away from the computer and let the solution magically appear in your mind.&lt;/p>
&lt;p>70.- Reading code is a good way to &lt;strong>learn&lt;/strong>. Other people’s or your old code.&lt;/p>
&lt;p>72.- Reinventing the wheel is a great way to develop your skills.&lt;/p>
&lt;p>75.- If the code you wrote is truly horrifying, don’t try to fix. &lt;strong>Delete it&lt;/strong> and start again.&lt;/p>
&lt;p>76.- Apply the Single Responsibility Principle (&lt;strong>SRP&lt;/strong>).&lt;/p>
&lt;p>77.- If a client or team member requests a product change, don’t dismiss it outright even if you don’t agree. Ask why instead.&lt;/p>
&lt;ul>
&lt;li>That will lead to a more productive conversation and better results.&lt;/li>
&lt;/ul>
&lt;p>78.- If you’re doing the same thing over and over, try to find a way to &lt;strong>automate it&lt;/strong>.&lt;/p>
&lt;p>79.- Take advantage of code analysis tools.&lt;/p>
&lt;p>80.- Write tests based on the &lt;strong>desired functionality&lt;/strong> of your program, not incidental behavior.&lt;/p>
&lt;p>83.- Testing takes time, but it ensures the &lt;strong>quality&lt;/strong> of the end product. Do it.&lt;/p>
&lt;p>85.- There are many benefits to collaborative work and pair programming.&lt;/p>
&lt;p>86.- Sometimes fixing a mistake in the code leads to uncovering a hidden error.&lt;/p>
&lt;p>87.- Write code &lt;strong>with other programmers in mind&lt;/strong>.&lt;/p>
&lt;p>88.- Learn to use Unix tools. Learn how to use the &lt;strong>terminal&lt;/strong>.&lt;/p>
&lt;p>89.- Use the right algorithm and data structure for the job.&lt;/p>
&lt;ul>
&lt;li>To do that, you need to understand them well.&lt;/li>
&lt;/ul>
&lt;p>90.- Have a good logging policy.&lt;/p>
&lt;p>91.- Using the DRY principle helps you identify and repair performance bottlenecks.&lt;/p>
&lt;p>92.- Testers and programmers should &lt;strong>collaborate&lt;/strong>.&lt;/p>
&lt;p>93.- Write code as if you had to support it for the &lt;strong>rest of your life&lt;/strong>.&lt;/p>
&lt;p>94.- Try to write &lt;strong>“small” functions&lt;/strong>.&lt;/p>
&lt;ol start="95">
&lt;li>Good tests act as &lt;strong>documentation&lt;/strong> for the code they’re &lt;a href="/blog/the-art-of-testing/">testing&lt;/a>.&lt;/li>
&lt;/ol>
&lt;ul>
&lt;li>They describe how the code works.&lt;/li>
&lt;/ul>
&lt;ol start="96">
&lt;li>
&lt;p>To be a good programmer, you have to care about the &lt;strong>quality&lt;/strong> of the code.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Really, really &lt;strong>discuss things&lt;/strong> with your customers before assuming you understand what they want.&lt;/p>
&lt;/li>
&lt;/ol></content></entry></feed>