<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Projects, Debugging, and Professional Habits on Work You Can Explain</title>
		<link>https://workyoucanexplain.com/series/projects-debugging-and-professional-habits/</link>
		<description>Recent content in Projects, Debugging, and Professional Habits on Work You Can Explain</description>
		<generator>Hugo</generator>
		<language>en-US</language>
		
		
		
			<copyright>Copyright © Work You Can Explain</copyright>
		
		
			<lastBuildDate>Fri, 24 Jul 2026 00:00:00 -0500</lastBuildDate>
		
			<atom:link href="https://workyoucanexplain.com/series/projects-debugging-and-professional-habits/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>A Project Structure That Encourages Good Habits</title>
				<link>https://workyoucanexplain.com/posts/a-project-structure-that-encourages-good-habits/</link>
				<pubDate>Fri, 24 Jul 2026 00:00:00 -0500</pubDate>
				<guid>https://workyoucanexplain.com/posts/a-project-structure-that-encourages-good-habits/</guid>
				<description>&lt;p&gt;A useful project structure makes the next correct action easy to find. Keep&#xA;source, tests, documentation, scripts, and examples in predictable locations.&#xA;Start small, name each directory by responsibility, and add complexity only&#xA;when the project needs it.&lt;/p&gt;&#xA;&lt;p&gt;The goal is not a universal folder tree. It is a project another person can&#xA;inspect, run, test, and explain.&lt;/p&gt;&#xA;&lt;h2 id=&#34;begin-at-one-clear-project-root&#34;&gt;Begin at one clear project root&lt;/h2&gt;&#xA;&lt;p&gt;The project root contains the files that describe the project as a unit:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Define “Done” Before You Start</title>
				<link>https://workyoucanexplain.com/posts/define-done-before-you-start/</link>
				<pubDate>Fri, 24 Jul 2026 00:00:00 -0500</pubDate>
				<guid>https://workyoucanexplain.com/posts/define-done-before-you-start/</guid>
				<description>&lt;p&gt;Define “done” before implementation. A useful definition names the scope,&#xA;expected behavior, tests, documentation, and submission or deployment evidence.&#xA;It turns “work on the project” into claims that can be checked.&lt;/p&gt;&#xA;&lt;h2 id=&#34;separate-outcome-from-activity&#34;&gt;Separate outcome from activity&lt;/h2&gt;&#xA;&lt;p&gt;“Spend three hours coding” is an activity. “Given a valid CSV file, produce a&#xA;summary containing row count and the mean of the score column” is an outcome.&lt;/p&gt;&#xA;&lt;p&gt;Start with:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;The project is done when [reader or user] can [observable outcome] under&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[conditions], and the result is verified by [evidence].&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Do not write criteria after seeing what the current implementation happens to&#xA;do. That turns the checklist into a description, not a target.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Debugging Is a Scientific Process</title>
				<link>https://workyoucanexplain.com/posts/debugging-is-a-scientific-process/</link>
				<pubDate>Fri, 24 Jul 2026 00:00:00 -0500</pubDate>
				<guid>https://workyoucanexplain.com/posts/debugging-is-a-scientific-process/</guid>
				<description>&lt;p&gt;Debugging is controlled inquiry. Reproduce the failure, reduce irrelevant&#xA;variables, form a falsifiable hypothesis, run one informative experiment, and&#xA;verify the fix against both the failure and normal behavior.&lt;/p&gt;&#xA;&lt;p&gt;Random edits produce activity but weak evidence.&lt;/p&gt;&#xA;&lt;h2 id=&#34;reproduce&#34;&gt;Reproduce&lt;/h2&gt;&#xA;&lt;p&gt;Record the starting state:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;exact input;&lt;/li&gt;&#xA;&lt;li&gt;environment and relevant versions;&lt;/li&gt;&#xA;&lt;li&gt;current directory and command;&lt;/li&gt;&#xA;&lt;li&gt;expected behavior;&lt;/li&gt;&#xA;&lt;li&gt;actual behavior; and&lt;/li&gt;&#xA;&lt;li&gt;complete error text.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Run it again. If the failure is intermittent, record frequency and conditions&#xA;rather than calling it reproducible.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Test the Expected, the Boundary, and the Invalid</title>
				<link>https://workyoucanexplain.com/posts/test-the-expected-the-boundary-and-the-invalid/</link>
				<pubDate>Fri, 24 Jul 2026 00:00:00 -0500</pubDate>
				<guid>https://workyoucanexplain.com/posts/test-the-expected-the-boundary-and-the-invalid/</guid>
				<description>&lt;p&gt;A basic meaningful test set covers three categories: expected use, important&#xA;boundaries, and invalid input. This does not prove a program correct, but it&#xA;tests more than one friendly example.&lt;/p&gt;&#xA;&lt;h2 id=&#34;begin-with-a-specification&#34;&gt;Begin with a specification&lt;/h2&gt;&#xA;&lt;p&gt;Suppose a function calculates the mean of a non-empty list of scores from 0&#xA;through 100. It returns a numeric mean and rejects an empty list, nonnumeric&#xA;values, and values outside the range.&lt;/p&gt;&#xA;&lt;p&gt;The specification defines the tests. Without it, you may only confirm whatever&#xA;the current code happens to do.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Write a Reproducible Bug Report</title>
				<link>https://workyoucanexplain.com/posts/write-a-reproducible-bug-report/</link>
				<pubDate>Fri, 24 Jul 2026 00:00:00 -0500</pubDate>
				<guid>https://workyoucanexplain.com/posts/write-a-reproducible-bug-report/</guid>
				<description>&lt;p&gt;A useful bug report lets another person reproduce the failure or understand why&#xA;they cannot. Include the environment, exact steps, expected and actual behavior,&#xA;complete errors, and the smallest safe example that still fails.&lt;/p&gt;&#xA;&lt;h2 id=&#34;write-a-specific-title&#34;&gt;Write a specific title&lt;/h2&gt;&#xA;&lt;p&gt;Use observable behavior:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CSV summary rejects a valid header containing spaces&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Avoid “program broken” or a diagnosis you have not established.&lt;/p&gt;&#xA;&lt;h2 id=&#34;record-the-environment&#34;&gt;Record the environment&lt;/h2&gt;&#xA;&lt;p&gt;Include only relevant facts:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;operating system and version;&lt;/li&gt;&#xA;&lt;li&gt;application, runtime, or library versions;&lt;/li&gt;&#xA;&lt;li&gt;installation method;&lt;/li&gt;&#xA;&lt;li&gt;current directory or repository commit;&lt;/li&gt;&#xA;&lt;li&gt;configuration that changes behavior; and&lt;/li&gt;&#xA;&lt;li&gt;hardware only when plausibly relevant.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Use commands or application information screens rather than memory. Redact&#xA;usernames, device names, tokens, internal URLs, and private paths.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Build a Small Portfolio with Depth</title>
				<link>https://workyoucanexplain.com/posts/build-a-small-portfolio-with-depth/</link>
				<pubDate>Fri, 24 Jul 2026 00:00:00 -0500</pubDate>
				<guid>https://workyoucanexplain.com/posts/build-a-small-portfolio-with-depth/</guid>
				<description>&lt;p&gt;A strong student portfolio does not need many projects. Select a few pieces that&#xA;you can explain deeply: the problem, constraints, decisions, implementation,&#xA;tests, failures, evidence, credits, and what you would improve.&lt;/p&gt;&#xA;&lt;p&gt;Do not invent users, metrics, test results, deployment status, or independent&#xA;work. Honest limitations show more judgment than unsupported claims.&lt;/p&gt;&#xA;&lt;h2 id=&#34;select-for-depth&#34;&gt;Select for depth&lt;/h2&gt;&#xA;&lt;p&gt;Choose a project when you can provide most of this evidence:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;a clearly stated problem and audience;&lt;/li&gt;&#xA;&lt;li&gt;requirements and non-goals;&lt;/li&gt;&#xA;&lt;li&gt;meaningful decisions with alternatives;&lt;/li&gt;&#xA;&lt;li&gt;source and reproducible setup;&lt;/li&gt;&#xA;&lt;li&gt;tests tied to expected behavior;&lt;/li&gt;&#xA;&lt;li&gt;one investigated failure or revision;&lt;/li&gt;&#xA;&lt;li&gt;a working demonstration or accurate screenshots;&lt;/li&gt;&#xA;&lt;li&gt;your specific contribution;&lt;/li&gt;&#xA;&lt;li&gt;credits and license information; and&lt;/li&gt;&#xA;&lt;li&gt;reflection based on observed results.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;A small class project can be valuable when the reasoning is visible. Ten cloned&#xA;tutorials with changed colors provide weak evidence.&lt;/p&gt;</description>
			</item>
			<item>
				<title>When Productivity Optimization Becomes Procrastination</title>
				<link>https://workyoucanexplain.com/posts/when-productivity-optimization-becomes-procrastination/</link>
				<pubDate>Fri, 24 Jul 2026 00:00:00 -0500</pubDate>
				<guid>https://workyoucanexplain.com/posts/when-productivity-optimization-becomes-procrastination/</guid>
				<description>&lt;p&gt;Productivity optimization becomes procrastination when maintaining the system&#xA;replaces the work the system is supposed to support.&lt;/p&gt;&#xA;&lt;p&gt;Before redesigning a vault, collecting plugins, or rewriting configuration,&#xA;name a demonstrated problem, define one observable improvement, set a time&#xA;limit, and decide in advance when to stop. If the change does not improve the&#xA;named outcome, revert, defer, or accept the current setup.&lt;/p&gt;&#xA;&lt;h2 id=&#34;look-for-displacement-not-a-specific-tool&#34;&gt;Look for displacement, not a specific tool&lt;/h2&gt;&#xA;&lt;p&gt;No application, plugin, or configuration is inherently procrastination. The&#xA;question is whether the activity serves a current outcome.&lt;/p&gt;</description>
			</item>
			<item>
				<title>The Semester-End Technical Review</title>
				<link>https://workyoucanexplain.com/posts/the-semester-end-technical-review/</link>
				<pubDate>Fri, 24 Jul 2026 00:00:00 -0500</pubDate>
				<guid>https://workyoucanexplain.com/posts/the-semester-end-technical-review/</guid>
				<description>&lt;p&gt;End the semester with a bounded technical review. Archive course work without&#xA;losing context, restore-test important files, remove unjustified tool&#xA;obligations, update setup documentation, preserve verified repetition, and&#xA;select portfolio evidence carefully.&lt;/p&gt;&#xA;&lt;p&gt;Do not begin by deleting. First identify retention rules, final submissions,&#xA;source material, recovery needs, and private content.&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-inventory-each-course&#34;&gt;1. Inventory each course&lt;/h2&gt;&#xA;&lt;p&gt;For every course, record:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Course:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Term:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Instructor:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Required retention:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Final submitted artifacts:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Editable source:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Data and code:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Feedback:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Environment or tool requirements:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Private or restricted material:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Confirm institutional and course rules. Some work may need to remain private,&#xA;and some licensed materials may not belong in a personal archive.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
