Table Of Content
The metaphor of the budget is surprisingly helpful to engineers.
I somehow made it to my mid-20s before I seriously engaged in budgeting. I’d earn what I could, spend it on what felt best at the time, and hope for the best. I had no financial strategy at all, was afraid to actually check my balance and barely knew where my money came from or went. The result was waste.
Looking back on my professional life, I see clear parallels. I would work on whatever was being shouted about the most, or whatever I found interesting at the time, and there were vast areas of my roles that I neglected. I was being reactive and instinctual, rather than strategic, about where I invested my attention.
I do, however, recall joking with fellow developers about how many “effort sticks” we had, representing our finite attention and energy. We would say things like “I put all my effort sticks into setting up that server and I don’t have enough left to fix this bug”. That metaphor has never left me, partly because there’s truth in it - attention is the “currency” of the software engineer. It’s our primary resource, our raw material.
As such, we must be very careful to “invest” our attention wisely. A metaphor of a budget can therefore be a helpful tool as there are several parallels between engineer attention and a budget:
- Attention is fungible - it can be “spent” in all sorts of ways.
- Attention is finite - we only have so much.
- Attention can be “borrowed” - we can stay up late, or over-caffeinate, but we repay the “loan” later (e.g. being tired, clumsy the next day).
- How we “spend” attention affects those around us - if I am foolish about what I spend my attention on at work, the organisation I work with does not flourish as much as it could.
Creating an Attention Budget
In the same way that I’ve learned to be strategic about my money, as I’ve entered the mid-career phase, I see great value in intentionally “budgeting” my attention.
I see roughly 7 “buckets” where I spend my attention: Your “buckets” may be different!
- Project work - this is working towards our roadmap
- Toil - the day-to-day of fixing issues, keeping infrastructure running and patched, responding to alarms and reviewing logs and metrics, documentation
- Non-functional requirements - working towards improving the product
- Support - responding to user-generated support
- Strategic work - considering the roadmap, team structure, and how engineering can meet business goals
- Tactical work - improving processes, team dynamics, coaching
- Personal and Professional Development (PPD) - training, research
I would then ask two questions of myself and my team:
- “How is my attention currently divided between these buckets?”
- “How SHOULD my attention be divided between these buckets?”.
The delta between  and  should inform changes to my “attention budget”:
No Silver Bullets
There’s a temptation to push this kind of thinking too far and obsessively track everything. Unlike with finances, I cannot track attention “to the penny”. In fact, the more effort I put into tracking my time, the less work I’m doing on anything else! Whilst it’s worth having a broad “budget” for your attention, diminishing returns becomes an issue fairly quickly if you’re trying to time track. Just getting the broad strokes is enough for most - don’t tyrannise yourself!
One size does not fit all; what is best for you will depend upon your organisation profile, your temperament, your skillset, your role, and your interests, as well as the characteristics of your colleagues. Some of us naturally gravitate to reactive support work, for example, whereas others are more inclined to long-term projects. The key in a budget profile is am I spending my attention in a way that benefits the organisation and harmonises with my team, not to arbitrarily fit in a “box”.
That said, let’s look at some budget profiles - 3 that are undesirable, and 3 that are desirable.
Wastrels and Scoundrels
Caricatures of engineers who are not budgeting their attention well.
The shopaholic is not thinking long term, but is flailing around, from item to item, adding technical debt to the project. This engineer may well perceive themselves to be heroic, but really, the irresponsible spender is creating a financial crisis in the making. Tasks are left unfinished as the next new ticket or support call comes in. The natural enemy of Work In Progress (WIP) limits, the shopaholic is undisciplined and completes nothing.
The opposite pathology to the shopaholic, the hoarder is constantly refactoring, adding tests unprompted, but not actually doing any work on items that directly affect a customer. The hoarder is trying to create the perfect all-singing-all-dancing architecture, which can be a worthy goal, but for the hoarder, it’s disconnected from any sense of value to the customer - it’s engineering for the sake of engineering.
The hoarder scoffs at YAGNI (You Ain’t Gonna Need It) but whilst the hoarder tries to build the perfect house, the authorities come round and repossess it - the company goes bust because nothing of actionable value is getting delivered.
The SEPper (Someone Else’s Problem)
SEPpers draws aggressive boundaries around what is and isn’t “their problem”. Project X is tanking? “Someone else’s problem, I’m on Project Y”. The SEPper jealously guards their attention budget, but only uses it for very specific purposes and is inflexible.
Caricatures of engineers who are budgeting their attention successfully.
The Household Member
The prudent household member budgets carefully, investing attention based on what will benefit the “household” - this is an engineer who carefully considers the “shape” of the organisation, the gaps in their skills and the skills of others, and makes an effort to meet the needs of the organisation. The “household member” wants the organisation to succeed as a whole, and the best way that can be achieved is for everybody to use their “attention budget” wisely. In a household, when the one who usually cooks is ill, someone else must step up to the stove, and likewise if the primary support team is swamped, an engineer more temperamentally inclined towards other types of work may step into the gap.
The “household member” engineer periodically reviews attention budgets with the rest of the team. “I’m spending a lot on toil, is that what the business really needs right now? I’ve noticed some tactical problems with our post mortem meetings, how about these ideas...”
The investor will look at the long term requirements of the organisation and invest accordingly. Much like a good version of the hoarder, the investor cares about extensibility, but has a more tempered and balanced approach that considers architecture in the context of the customer experience. The investor will balance a “dollar today” against “five dollars tomorrow” by considering the whole picture - security, team structure, support requests, strategic goals, performance, training and more. The investor will encourage personal development, but will find ways of gaining “interest” on that investment to benefit the organization and its products.
The Waste Finder
Every organization has waste; it’s a function of all human endeavour. The waste finder excels in finding waste that may not be obvious to the rest of the organization. Such waste may not even be outright loss; it may be something more like “we are spending 40% of our time on support, but 80% of those issues are with feature X, so if we can address it strategically, we can reduce our support burden to 20% within a month”.
The waste finder is often a “numbers person”, and will use data to help make arguments. New starters in organisations are often fantastic waste finders, before organisational taint sets in.
Wrapping it up
An attention budget is a tool for looking at how engineers are allocating their primary resource - attention - with the goal of identifying gaps and reducing waste. Used prudently, this metaphor can help us to invest our attention in a way that helps our organisation, our colleagues and ourselves to flourish. It’s not magic, it doesn’t tell the full story, but it’s a useful tool in our toolbox.