<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Planning on MoskitoHero</title><link>/tags/planning/</link><description>Recent content in Planning on MoskitoHero</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Tue, 30 Jun 2026 09:29:19 +0200</lastBuildDate><atom:link href="/tags/planning/index.xml" rel="self" type="application/rss+xml"/><item><title>How I Use JuJutsu Revisions to Plan My Work Ahead</title><link>/post/2026-06-30-how-i-use-jj-revisions-to-plan-my-work/</link><pubDate>Tue, 30 Jun 2026 09:29:19 +0200</pubDate><guid>/post/2026-06-30-how-i-use-jj-revisions-to-plan-my-work/</guid><description>JuJutsu VCS gives me planning superpowers. Here is how I use its revisions and flexible workflow to plan my work ahead and keep track of my progress.</description><content:encoded><![CDATA[<div class="paragraph">
<p><a href="https://www.jj-vcs.dev/latest/">JuJutsu</a> is a distributed version control system that allows you to manage your codebase and collaborate with others. One
of its features is the ability to create revisions, which are snapshots of your code at a specific point in time. In
this post, I will share how I use JuJutsu revisions to plan my work ahead.</p>
</div>
<div class="paragraph">
<p>When I start working on a new ticket, I usually create a new revision for it, with the ticket number and description,
along with a bookmark, like I described <a href="https://moskitohero.com/post/2026-06-23-nujutsu-custom-jujutsu-commands-in-nushell-with-a-neovim-twist">in my previous post</a>.</p>
</div>
<div class="paragraph">
<p>The next step is to start planning my work ahead. And JuJutsu makes it easier by allowing me to split my ticket into
multiple sub-tasks, each matched to its own revision. That way, I can start working on one sub-task, then the next one,
and so on.</p>
</div>
<div class="paragraph">
<p>This is what it can look like in practice:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="/assets/img/jj-planning-ahead.png" alt="Planning Ahead with JuJutsu Revisions"/>
</div>
</div>
<div class="paragraph">
<p>Keeping that habit is very useful because it forces me to think things through before I start coding. When working with
an agent, it also gives it the context of the piece of work I am doing, and allows it to focus on the right sub-task,
instead of trying to solve the whole ticket at once.</p>
</div>
<div class="paragraph">
<p>What often happens it that when editing a revision, I realize that I have to change something I had not anticipated in
the previous one. In that case, I just go back to it and edit it. If that change is important and requires a lot of work,
I usually create a new revision on top of the previous one, and squash it once I am happy with the result.</p>
</div>
<div class="paragraph">
<p>The icing on the JJ cake is that if those changes lead up to conflicts, <a href="https://www.jj-vcs.dev/latest/conflicts/">they do not block me</a>. I can follow my train of
thought, and resolve the conflicts later, when I have more time / energy to devote to it.</p>
</div>
<div class="paragraph">
<p>Once everything is done, I can squash all the revisions into one, or keep a few of them as logical milestones in my work
if I want to keep track of the progress I made.</p>
</div>
]]></content:encoded></item><item><title>Working For Your Manager’s Success</title><link>/post/2025-03-18-working-for-your-manager-success/</link><pubDate>Tue, 18 Mar 2025 00:00:00 +0000</pubDate><guid>/post/2025-03-18-working-for-your-manager-success/</guid><description>Estimates are inevitable in software development, but committing to deadlines — like a mechanic does — requires honesty with your manager rather than optimism to impress them.</description><content:encoded><![CDATA[<div class="paragraph">
<p>As software developers, we are constantly tasked with estimating the time it will take to complete tasks or deliver a feature. However, estimating the time and effort required for software development is notoriously difficult. The unpredictability of technical challenges, changing requirements, and unforeseen obstacles often means that our best efforts to estimate can still lead to frustration when things don’t go according to plan.
The idea of writing this post came to my mind as I was reading Robert C. Martin’s book <em>The Clean Coder</em>, in which he explains that estimates are inherently imprecise. This is particularly true in the software industry, where problems are often complex and the hurdles we face are, by essence, unpredictable. While we may have a rough idea of how long a task will take, there is no way to foresee all the complications that might arise along the way.
However, what true professionals do, as opposed to merely estimating, is committing to deadlines. According to Robert C. Martin, while we can estimate internally, we must also commit to a specific date or deadline. This level of responsibility requires maturity and accountability. It’s one thing to give an estimate, but it’s another to commit to a date, knowing the challenges that lie ahead. It is this commitment, rather than just an estimate, that we, as software developers, must learn to master.</p>
</div>
<div class="sect2">
<h3 id="the-analogy-of-mechanics"><a class="anchor" href="#the-analogy-of-mechanics"></a>The Analogy of Mechanics</h3>
<div class="paragraph">
<p>As I was thinking about this, the analogy of taking a car to the mechanic came to mind. When you leave your car for repairs, the mechanic will typically provide you with an estimate of when the repair will be completed. If it’s a simple task, such as replacing a part, the mechanic might tell you that it will be ready by the end of the day. For more complicated repairs, they might say it will take a few days.
In my experience, mechanics tend to give themselves a bit of extra time when providing an estimate. They know that things can go wrong, such as parts not arriving on time, unexpected issues cropping up, or complications that could delay the work. This is why they often tell you to come back at the end of the afternoon, even if the task is just a matter of one hour, or add an extra day or two to the estimate for longer operations, ensuring that they are not overly optimistic and leaving room for uncertainty. While this may occasionally lead to a situation where the repair takes a bit longer than expected, as a customer, I am usually understanding, even if it means that I have to make arrangements to reorganize a few things. After all, the mechanic has communicated the potential for delays and has made a realistic commitment.
This transparency and realistic commitment is what I believe the software development industry lacks. In many cases, as developers, we are hesitant to provide commitments that include the necessary margin for error. Why? Are mechanics naturally gifted in this area? What is their secret weapon?</p>
</div>
</div>
<div class="sect2">
<h3 id="trying-to-please-managers"><a class="anchor" href="#trying-to-please-managers"></a>Trying to Please Managers</h3>
<div class="paragraph">
<p>In the software industry, the primary individuals we make commitments to are often our managers. Unlike mechanics, who treat their customers as…​ customers—​meaning they are focused on customer satisfaction—​developers often approach their managers with the goal of pleasing, or impressing them. After all, they’re the ones who get to decide for your bonus…​ So we make a bet. And we keep making it day after day, week after week, crossing fingers and hoping for the best. But as we do this, we may downplay the risks or challenges involved in a project, providing overly optimistic estimates in an attempt to please them. The issue here is that this can lead to broken promises, missed deadlines, and a lack of trust, not to mention the dreaded burn-out. Quite the opposite of the intended effect.
The core issue is that we do not view our managers as “customers” in the traditional sense. In the same way a mechanic is not trying to impress the car owner but instead focuses on delivering a satisfactory repair, we should aim to satisfy our managers, not merely impress them. The truth is, when we try to please or impress our managers, we are really just trying to satisfy ourselves. Satisying your managers may seem less rewarding in the short term, but trust me, it will prove the best option in the long run: by focusing on their satisfaction rather than attempting to please them, we can set more realistic expectations and foster a more honest and transparent working relationship.</p>
</div>
</div>
<div class="sect2">
<h3 id="manager-success"><a class="anchor" href="#manager-success"></a>Manager Success</h3>
<div class="paragraph">
<p>So, how can we improve this dynamic? The answer lies in a simple word: Honesty.
Start a conversation with your manager. In fact, it might be helpful for teams to have a “Manager Success Index” (similar to a customer success index) to gauge what their managers truly want and expect. Having a candid conversation with your manager about their expectations and priorities can help align your commitments with what is realistically achievable.
By focusing on satisfaction over impression, we can build a more honest, transparent, and effective working environment. Most managers (except some old-school, die-hard, heartless / insecure ones — we know them)  will appreciate knowing that their developers are committed to delivering quality work, even if it takes a little extra time. In the end, this approach not only leads to better outcomes but also strengthens the trust and professional relationship between developers and managers.</p>
</div>
</div>
]]></content:encoded></item></channel></rss>