<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Craig Nicol (he/him)</title>
    <description>The latest articles on DEV Community by Craig Nicol (he/him) (@craignicol).</description>
    <link>https://dev.to/craignicol</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F64879%2F8b4a4582-ab0b-40d9-a8a3-5a6e220b53d8.jpg</url>
      <title>DEV Community: Craig Nicol (he/him)</title>
      <link>https://dev.to/craignicol</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/craignicol"/>
    <language>en</language>
    <item>
      <title>The Andy Dufresne project</title>
      <dc:creator>Craig Nicol (he/him)</dc:creator>
      <pubDate>Fri, 12 Jun 2026 07:52:31 +0000</pubDate>
      <link>https://dev.to/craignicol/the-andy-dufresne-project-e37</link>
      <guid>https://dev.to/craignicol/the-andy-dufresne-project-e37</guid>
      <description>&lt;p&gt;&lt;em&gt;Have you ever been stuck on an Andy Dufresne project?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You know the one. You’re trapped because of something someone else did, chipping away at legacy structures with just a rock hammer. And you might even have your own Rita Hayworth poster to hide the refactoring of this debt.&lt;/p&gt;

&lt;p&gt;Sometimes that’s agency life. The promise of a rewrite (and your own boat in Mexico) if you can just chip away slowly and then crawl through half a mile of shit. It can be achingly slow progress, trying to get buy-in for your freedom, when the people with the power just want to keep you where you are. You’re trapped because of what someone else did.&lt;/p&gt;

&lt;p&gt;And if you stay in that code too long, you’ll get institutionalised and won’t be able to see a better way to fix this problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  ‌How to keep making progress
&lt;/h2&gt;

&lt;p&gt;Firstly, it’s much easier to survive a project like this if you have &lt;a href="https://craignicol.wordpress.com/2017/04/04/demotivated-by-refactoring/" rel="noopener noreferrer"&gt;the right team beside you&lt;/a&gt;. People who can accept the faults and accept they’re temporary. You need &lt;a href="https://craignicol.wordpress.com/2015/11/20/the-constant-gardener-knowing-your-team/" rel="noopener noreferrer"&gt;a team of gardeners, not innovators&lt;/a&gt;, who can dig deep and understand what’s actually happening, where the rocks and the edge cases are. And who’ll take a break to listen to music or otherwise relax and take stock and look up.&lt;/p&gt;

&lt;p&gt;And you need to understand the progress will be slow, but you can put guard rails in place so that each bit of progress you make has tests and is better than you found it. And sometimes you have to shake the refactorings out as pebbles amongst the other work because management and the clients don’t want to see it.&lt;/p&gt;

&lt;p&gt;Never stop asking for freedom to make bigger changes, but always pair it with trust. &lt;a href="https://craignicol.wordpress.com/2015/08/14/dear-customers-and-users/" rel="noopener noreferrer"&gt;They’ll listen more if you respect their budgets and their time&lt;/a&gt;, and you can explain what’s easier and what’s harder.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Great Escape
&lt;/h2&gt;

&lt;p&gt;If you do get the chance to rewrite, there may well be external factors at play. Use them. Digital transformation, going mobile, getting AI-ready. &lt;a href="https://craignicol.wordpress.com/2015/08/18/dear-manager/" rel="noopener noreferrer"&gt;If you can tap into the strategy and find ways to align what you want with that, it’s going to be much easier to get approval&lt;/a&gt;. Be honest with the proposal, but always keep an eye out for those opportunities.&lt;/p&gt;

&lt;h2&gt;
  
  
  Look after Red
&lt;/h2&gt;

&lt;p&gt;The only way to get the job done and get where you want to go is to take the important people with you. The ones who can get you a better hammer, or a new cover for the next bit of refactoring. Honesty will always get you further, &lt;a href="https://dev.to/craignicol/becoming-a-technical-lead-trust-your-team-dff"&gt;so long as you know who to trust&lt;/a&gt;. &lt;a href="https://dev.to/craignicol/mise-en-place-architecture-14n5"&gt;Make it easy for them&lt;/a&gt;, so they can come with you on the journey.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;See you on the beach.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>development</category>
      <category>leadership</category>
      <category>programming</category>
      <category>codecraft</category>
    </item>
    <item>
      <title>Exes or alumni</title>
      <dc:creator>Craig Nicol (he/him)</dc:creator>
      <pubDate>Tue, 02 Jun 2026 10:45:00 +0000</pubDate>
      <link>https://dev.to/craignicol/exes-or-alumni-307m</link>
      <guid>https://dev.to/craignicol/exes-or-alumni-307m</guid>
      <description>&lt;p&gt;&lt;em&gt;I’ve seen a few posts on LinkedIn recently about both the mass layoffs done in the worst way and also posts about people wanting a second chance after leaving or turning down a job offer. And I doubt many of the former companies are having those latter conversations.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So how do you treat your former employees and employers? What culture are you showing to your clients, your contractors, your colleagues, and your candidates?&lt;/p&gt;

&lt;p&gt;When the relationship ends, do you seek to cut yourself off, like a betrayal, or continue to foster a relationship, even slight, so that collaborations in the future are possible? Are there people and places you’d be happy to return to in the right circumstances, and the ones that got away that you still pine for?&lt;/p&gt;

&lt;p&gt;Thinking back on my career, I definitely have a mix, but very heavily weighted towards finding paths back. Indeed, at least 3 roles, and a few interviews on top, have been due to reconnecting with people I’d previously worked with, and rekindling opportunities.&lt;/p&gt;

&lt;p&gt;I never want to leave a relationship sour, even when there are cultural differences that mean I wouldn’t want to work somewhere again, there are always people and projects that I’ll keep an interest in.&lt;/p&gt;

&lt;p&gt;So, for all those you no longer work with, or never got the chance to work with, are you testing them with bitterness, like the ex you blame for everything that went wrong when you were with them? Or do you feel like an alumnus, a community that grew with a shared goal, and still keeps in touch because your past will always impact your future?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://hbr.org/2022/04/leave-the-door-open-for-employees-to-return-to-your-organization" rel="noopener noreferrer"&gt;Leave the Door Open for Employees to Return to Your Organization&lt;/a&gt;&lt;/p&gt;

</description>
      <category>leadership</category>
      <category>jobs</category>
      <category>recruitment</category>
      <category>teams</category>
    </item>
    <item>
      <title>Cloud thinking : Data in 3rd denormalised form</title>
      <dc:creator>Craig Nicol (he/him)</dc:creator>
      <pubDate>Fri, 29 May 2026 11:52:00 +0000</pubDate>
      <link>https://dev.to/craignicol/cloud-thinking-data-in-3rd-denormalised-form-5759</link>
      <guid>https://dev.to/craignicol/cloud-thinking-data-in-3rd-denormalised-form-5759</guid>
      <description>&lt;p&gt;&lt;em&gt;One schema to rule them all and in the darkness bind them.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That’s the SQL way. One schema, many tables, be efficient with space. Join, don’t duplicate. Third normal form and structured data. More structure.&lt;/p&gt;

&lt;p&gt;But that’s not always the best way to scale. How important is it that everything is identical everywhere? How important is history? When a customer moves house, do you want to know the difference between the address they want their next order delivered to and the address the last order was delivered to?&lt;/p&gt;

&lt;p&gt;When you let go of SQL and joins, and when storage is cheap, does it matter if you have multiple copies, so long as each document has the right copy for itself?&lt;/p&gt;

&lt;p&gt;When you aggregate data, when your change log turns multiple orders into 1 delivery schedule for your driver, does it matter that the driver has their own copy for when they lose signal? Does it matter that there’s a copy of the addresses in the route that will be deleted tomorrow because it serves no more purpose?&lt;/p&gt;

&lt;p&gt;If storage is cheap and joins and transmissions are expensive, wouldn’t you want to cache data and trade storage for speed?&lt;/p&gt;

&lt;p&gt;Shouldn’t you &lt;a href="https://dev.to/craignicol/cosmosdb-and-heterogeneous-data-3jhh"&gt;embrace heterogeneous data&lt;/a&gt;? The address on your payment looks like the address on the order, but it serves a different purpose, it’s embedded in a different context, and it has a different lifecycle.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;It’s &lt;a href="https://dev.to/craignicol/the-frustration-of-confounding-expectations-501p"&gt;sometimes hard to change your mental model&lt;/a&gt;, but it can save you from doing the wrong thing.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>cosmosdb</category>
      <category>data</category>
      <category>development</category>
      <category>cloudcomputing</category>
    </item>
    <item>
      <title>If it hurts, stop doing it: automating the wrong things</title>
      <dc:creator>Craig Nicol (he/him)</dc:creator>
      <pubDate>Tue, 26 May 2026 10:24:00 +0000</pubDate>
      <link>https://dev.to/craignicol/if-it-hurts-stop-doing-it-automating-the-wrong-things-524l</link>
      <guid>https://dev.to/craignicol/if-it-hurts-stop-doing-it-automating-the-wrong-things-524l</guid>
      <description>&lt;p&gt;&lt;em&gt;Automation is too easy.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Copy every email to Slack, copy every Slack message to Todoist, copy every new task to My Notion inbox, and send an hourly Summary of new Notion inbox items to my email.&lt;/p&gt;

&lt;p&gt;And you’ll never look at any of them.&lt;/p&gt;

&lt;p&gt;Having a &lt;a href="https://dev.to/craignicol/productivity-sieve-2bl2"&gt;productivity sieve&lt;/a&gt; is great, but you need to be intentional.&lt;/p&gt;

&lt;p&gt;Every automation should start with Manual intervention, unless the first step is a filter. Star that email, bookmark-emoji that message. Be implicit with your intent. Let the automation copy to the right place and label and find related, but don’t automate the decision, or the firehose.&lt;/p&gt;

&lt;p&gt;Be a Centaur, in charge of the Machine, &lt;a href="https://pluralistic.net/2025/12/05/pop-that-bubble/" rel="noopener noreferrer"&gt;not a reverse Centaur, controlled by it&lt;/a&gt;. Filter at the source, or the sewage will overwhelm you. Don’t let your vibe lead to overwhelm.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;People before process.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>In case of failure</title>
      <dc:creator>Craig Nicol (he/him)</dc:creator>
      <pubDate>Fri, 22 May 2026 10:34:00 +0000</pubDate>
      <link>https://dev.to/craignicol/in-case-of-failure-10jd</link>
      <guid>https://dev.to/craignicol/in-case-of-failure-10jd</guid>
      <description>&lt;p&gt;&lt;em&gt;A catastrophic failure is always a system failure.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It could be the intern, it could be Your Plastic Pal Who’s Fun To Be With, or it could be those login details that you thought were secure on your help desk software. If you lose your production database, it’s not the fault of an individual, a robot or a third party.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/craignicol/how-to-make-mistakes-1k5e"&gt;There should be multiple points of protection between you and your data.&lt;/a&gt; The code should be tested, the logins should be secured, rotated, MFAd and audited, and admin access should be off by default.&lt;/p&gt;

&lt;p&gt;It’s not &lt;a href="https://dev.to/craignicol/processes-upon-processes-the-jira-trap-37l8"&gt;another procedure on a document that no one reads or remembers&lt;/a&gt;; it’s a gateway that no one can forget. It’s not connecting from a developer machine; it’s a pipeline that only runs in a trusted environment after appropriate checks are made, and makes backups before making changes. It’s testing your backups.&lt;/p&gt;

&lt;p&gt;It’s not about not&lt;a href="https://dev.to/craignicol/becoming-a-technical-lead-trust-your-team-dff"&gt;trusting your team&lt;/a&gt;. I trust mine, but sometimes they get tired, and sometimes they get stressed, and I want them to burn whatever cycles they have on&lt;a href="https://craignicol.wordpress.com/2011/05/16/agile-is-dead/" rel="noopener noreferrer"&gt;providing business value, not walking tightropes&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What system failure are you blocking today to &lt;a href="https://dev.to/craignicol/what-are-you-doing-now-that-your-future-self-will-thank-you-for-5b5b"&gt;save you tomorrow&lt;/a&gt;?&lt;/em&gt;&lt;/p&gt;

</description>
      <category>development</category>
      <category>leadership</category>
      <category>codequality</category>
      <category>teams</category>
    </item>
    <item>
      <title>If it hurts, stop doing it: the wrong person in the wrong place</title>
      <dc:creator>Craig Nicol (he/him)</dc:creator>
      <pubDate>Tue, 19 May 2026 10:18:00 +0000</pubDate>
      <link>https://dev.to/craignicol/if-it-hurts-stop-doing-it-the-wrong-person-in-the-wrong-place-30bo</link>
      <guid>https://dev.to/craignicol/if-it-hurts-stop-doing-it-the-wrong-person-in-the-wrong-place-30bo</guid>
      <description>&lt;p&gt;&lt;em&gt;Have you ever taken your goldfish for a walk and tried to play fetch?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;They’re rubbish at it, you know. Complain all the time about the lack of “the environment”, like water is important to them or something. They don’t run. They don’t pick up sticks, even when you try to accommodate them with tiny twigs. Useless. No one should have one as a pet, no drive.&lt;/p&gt;

&lt;p&gt;Dogs though. They walk, they run, they swim. They don’t need “accommodations” like a fish tank. What an ego, to put their name on their safe space. And then to tell &lt;em&gt;me&lt;/em&gt; to stay out because I’m “toxic”, when they’re the ones who put something in there so I can’t breathe.&lt;/p&gt;

&lt;p&gt;Fish! Honestly!&lt;/p&gt;

&lt;p&gt;Know your worth. Know your strengths and your weaknesses, and don’t let someone else tell you you’re useless just because your way doesn’t align with theirs. Or because you have a different skill set.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://craignicol.wordpress.com/2015/08/18/dear-manager/" rel="noopener noreferrer"&gt;Dear managers&lt;/a&gt;. Don’t judge your customer support teams on sales metrics. Don’t let your best people languish in a job that doesn’t suit them because you can’t think outside the box you put them in. They’re hurting. And it’s hitting the team. &lt;a href="https://craignicol.wordpress.com/2015/11/20/the-constant-gardener-knowing-your-team/" rel="noopener noreferrer"&gt;Know your gardeners from your innovators&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Sometimes the best fit for a person is a different company. That’s not a loss unless they’re stuck where they are (and please, let’s make sure there’s support and a safety net for people who have to leave before they find the right fit).&lt;/p&gt;

&lt;p&gt;If it hurts doing what you’re doing every day, figure out what you should be doing. Or where you should be doing it. It’s not about avoiding stressful situations or &lt;a href="https://dev.to/craignicol/get-uncomfortable-498p"&gt;being uncomfortable&lt;/a&gt;, but it is about avoiding burnout and aggression. You know your place, and if this place is your place. If it hurts, stretch it, move it, try something else.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Know thyself&lt;/em&gt;&lt;/p&gt;

</description>
      <category>development</category>
      <category>leadership</category>
      <category>teams</category>
      <category>management</category>
    </item>
    <item>
      <title>responding to change over following a plan</title>
      <dc:creator>Craig Nicol (he/him)</dc:creator>
      <pubDate>Fri, 15 May 2026 11:02:00 +0000</pubDate>
      <link>https://dev.to/craignicol/responding-to-change-over-following-a-plan-5a1g</link>
      <guid>https://dev.to/craignicol/responding-to-change-over-following-a-plan-5a1g</guid>
      <description>&lt;p&gt;&lt;em&gt;Failure to plan is planning to fail.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Things change. &lt;a href="https://craignicol.wordpress.com/2015/05/19/i-dont-trust-change/" rel="noopener noreferrer"&gt;I might not trust change&lt;/a&gt;, but I accept it and allow for it. But there’s always a direction, a star to follow.&lt;/p&gt;

&lt;p&gt;Plans provide a common direction and steps to get there. Agile just means the steps aren’t always the right ones, and the goal may change, but you should always have a goal and next steps.&lt;/p&gt;

&lt;p&gt;Question the plan, agree on a new plan and agree to follow it. It’s worse than not having a plan because if you don’t follow the agreed goal, especially in silence, you are actively hostile to the success of the team.&lt;/p&gt;

&lt;p&gt;Some deadlines don’t change. If you’re in retail, you’d better be ready for Christmas. If you’re a business, you’d better be ready for the end of the tax year.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Keep your plan visible, and &lt;a href="https://craignicol.wordpress.com/2016/04/29/the-plan-is-the-plan-will-change/" rel="noopener noreferrer"&gt;keep your plan flexible&lt;/a&gt;. It will change, but without a plan and a reason for the work, you’ll never know what you should be saying no to.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>development</category>
      <category>agile</category>
      <category>code</category>
      <category>teams</category>
    </item>
    <item>
      <title>Don’t send me Easter emails</title>
      <dc:creator>Craig Nicol (he/him)</dc:creator>
      <pubDate>Tue, 12 May 2026 10:09:00 +0000</pubDate>
      <link>https://dev.to/craignicol/dont-send-me-easter-emails-16io</link>
      <guid>https://dev.to/craignicol/dont-send-me-easter-emails-16io</guid>
      <description>&lt;p&gt;&lt;em&gt;Ever got the “please don’t send me Father’s&lt;/em&gt; Day &lt;em&gt;emails”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I get the sentiment behind emails like this, but it feels like doing it in the moment keeps it raw. Ask just after I sign up if there are any sensitive dates, at the same time as asking me if I celebrate Christian or Muslim holidays. (No, I don’t know any website that does that)&lt;/p&gt;

&lt;p&gt;Consent, at least under the GDPR, should be obtained in advance, freely given, and without prejudice. So why do you need to email me to ask if I want no emails? Ask me up front if there are any important dates, any birthdays, and include a list of common ones from the Christian, Sikh, Jewish, Muslim, Buddhist and other calendars. Include dates related to my country. Thanksgiving Day is different for the USA and Canada. And there are a lot of Independence Days.&lt;/p&gt;

&lt;p&gt;Sure, folks won’t want to fill it in unless they see a benefit, but that’s what consent is. It’s more work up front and ongoing, but in return, you get trust, a much stronger relationship and the person feels more respected. This is a rare phenomenon in consumer data these days.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Consent matters. Informed consent in advance demonstrates commitment.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ux</category>
      <category>privacy</category>
      <category>codequality</category>
    </item>
    <item>
      <title>customer collaboration over contract negotiation;</title>
      <dc:creator>Craig Nicol (he/him)</dc:creator>
      <pubDate>Fri, 08 May 2026 10:57:00 +0000</pubDate>
      <link>https://dev.to/craignicol/customer-collaboration-over-contract-negotiation-ogn</link>
      <guid>https://dev.to/craignicol/customer-collaboration-over-contract-negotiation-ogn</guid>
      <description>&lt;p&gt;&lt;em&gt;No great software was written without collaboration. And the best collaboration is always as close to the end user as possible.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;But contracts are your safety net, especially in consulting. They’re your agreement up front of “this far, but no further”. Money is the engine of trade, but contracts are the heart of capitalism. They define your scope, your compensation and your boundaries. Without them, the loudest voice will always win.&lt;/p&gt;

&lt;p&gt;Contracts protect you, but don’t let them smother you. They’re the foundation and the backstop to the project. They should never be the start of a discussion, but they can be a very useful end to one where customer collaboration becomes scope creep, taking advantage, or communication fails. It protects people from power.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Negotiate your contract carefully, but always start your conversations in the spirit of collaboration.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>development</category>
      <category>agile</category>
      <category>software</category>
      <category>teams</category>
    </item>
    <item>
      <title>working software over comprehensive documentation;</title>
      <dc:creator>Craig Nicol (he/him)</dc:creator>
      <pubDate>Fri, 01 May 2026 10:54:00 +0000</pubDate>
      <link>https://dev.to/craignicol/working-software-over-comprehensive-documentation-4b0f</link>
      <guid>https://dev.to/craignicol/working-software-over-comprehensive-documentation-4b0f</guid>
      <description>&lt;p&gt;&lt;em&gt;Good code documents itself.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;But there’s a lot of context outside the code that informs it. There’s architecture and design decisions about which language to use, about whether it’s micro services, monoliths, containers, clouds, or mobile apps.&lt;/p&gt;

&lt;p&gt;There’s legal frameworks and security certifications.&lt;/p&gt;

&lt;p&gt;Code determines how. Tests determine the what. But documentation tells you why and when. Documentation supports future you or the next team member to understand what the reasoning behind that code was. It gives your present self grace for what you know now and don’t know yet.&lt;/p&gt;

&lt;p&gt;Document the requirements in just enough detail, but document the decisions in depth. Working software, that’s suitably readable, is the best way to describe what it does. But understanding how that code came to be has a value you only understand after you forget how it came to be.&lt;/p&gt;

&lt;p&gt;Document why you built this, but not that. What was the experiment? What was the context? Is it time to experiment again? Is it time to chalk the experiment up to experience and move on?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Be nice to yourself. Comprehensively document decisions.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>development</category>
      <category>code</category>
      <category>software</category>
      <category>agile</category>
    </item>
    <item>
      <title>If it’s hurts, stop doing it : you don’t need to know everything</title>
      <dc:creator>Craig Nicol (he/him)</dc:creator>
      <pubDate>Tue, 28 Apr 2026 10:02:00 +0000</pubDate>
      <link>https://dev.to/craignicol/if-its-hurts-stop-doing-it-you-dont-need-to-know-everything-29o3</link>
      <guid>https://dev.to/craignicol/if-its-hurts-stop-doing-it-you-dont-need-to-know-everything-29o3</guid>
      <description>&lt;p&gt;&lt;em&gt;The best managers are great at delegation.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Micromanagement is exhausting. It’s stressful. And it creates delays and bugs because you become a black hole for ideas and improvements. You end up working longer hours. The job becomes painful.&lt;/p&gt;

&lt;p&gt;So save yourself. Teach your team how you want feedback. Teach them what documentation makes sense. Make sure they highlight problems. And I’ll always make sure I’m available to answer questions in the stand-up, but 7 times out of 10, someone else beats me to it.&lt;/p&gt;

&lt;p&gt;I don’t know everything, and I shouldn’t. A good manager is a catalyst for communication and generates questions to help. They’ll connect the problems with someone who can resolve them, and save some time to learn about the next problem.&lt;/p&gt;

&lt;p&gt;Don’t be a bottleneck. Don’t be a critical path. &lt;a href="https://craignicol.wordpress.com/2015/11/20/the-constant-gardener-knowing-your-team/" rel="noopener noreferrer"&gt;Be a gardener&lt;/a&gt; and help the team grow. If it hurts, you might be strangling the team. Trust them and share the load.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Delegate, but make sure the important knowledge doesn’t go on holiday when your staff do.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>development</category>
      <category>leadership</category>
      <category>agile</category>
      <category>productivity</category>
    </item>
    <item>
      <title>individuals and interactions over processes and tools;</title>
      <dc:creator>Craig Nicol (he/him)</dc:creator>
      <pubDate>Fri, 24 Apr 2026 10:47:00 +0000</pubDate>
      <link>https://dev.to/craignicol/individuals-and-interactions-over-processes-and-tools-pfa</link>
      <guid>https://dev.to/craignicol/individuals-and-interactions-over-processes-and-tools-pfa</guid>
      <description>&lt;p&gt;&lt;em&gt;Good processes and tools support teams. Bad ones destroy them.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Individuals are good, but if you look at the world through a post-meritocracy lens, you understand that individuals aren’t the primary driver of success. Everyone needs to work well and drive the project forward, but everyone also needs to work to move the team forward.&lt;/p&gt;

&lt;p&gt;There are plenty of Theory of Constraints examples where individual progress can be at the expense of team progress, because they use their own code style, or they don’t have time to document or coach, or when there’s a queue for testing, and the rockstar developer is too precious to do QA and unblock the release.&lt;/p&gt;

&lt;p&gt;Good processes help the team work together. They provide guidelines for the team, like a code of conduct, a standard operating procedure or a definition of done. They describe how things are done here so everyone has a shared expectation and a shared goal. That’s how agile teams become more effective.&lt;/p&gt;

&lt;p&gt;Processes serve the people and the interactions, not the other way round, and should be open to extension or modification when they no longer serve them.&lt;/p&gt;

&lt;p&gt;Good processes help individuals fall into the pit of success, whether documented or automated. Static code analysis helps every reader and avoids those subtle mistakes. Conventional commits help whoever is tracking down a production issue at 3am.&lt;/p&gt;

&lt;p&gt;We don’t want heavyweight processes. We want them small, adjustable and easy to follow. But we want processes that support everyone on the team. Make all meetings online in a hybrid team. Have a set of standard criteria and questions for interviewing potential new team members. Reduce the bus factor with documentation processes so team members can have medical treatment, or visit family abroad for an extended break, or support extended adoption leave for new parents.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Don’t let an individual bend the team. Let the team embrace the individuals. And build whatever minimum process keeps those individuals supported.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>code</category>
      <category>development</category>
      <category>agile</category>
      <category>teams</category>
    </item>
  </channel>
</rss>
