<?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: Nick Rowlands</title>
    <description>The latest articles on DEV Community by Nick Rowlands (@rowlando).</description>
    <link>https://dev.to/rowlando</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%2F78635%2F8be4070a-b33f-4f04-8db7-c98b03c21383.png</url>
      <title>DEV Community: Nick Rowlands</title>
      <link>https://dev.to/rowlando</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rowlando"/>
    <language>en</language>
    <item>
      <title>Why your digital restaurant needs a clean and well-maintained kitchen</title>
      <dc:creator>Nick Rowlands</dc:creator>
      <pubDate>Wed, 07 Apr 2021 12:10:33 +0000</pubDate>
      <link>https://dev.to/rowlando/why-your-digital-restaurant-needs-a-clean-and-well-maintained-kitchen-4oo8</link>
      <guid>https://dev.to/rowlando/why-your-digital-restaurant-needs-a-clean-and-well-maintained-kitchen-4oo8</guid>
      <description>&lt;p&gt;Software maintenance is important, and warrants more analogies. Maintaining a restaurant is an obvious thing to do. With software, maintenance is not as obvious as it is in the physical world.&lt;/p&gt;

&lt;h2&gt;
  
  
  Maintaining a restaurant
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;You: "Can I have the Tiger Prawn Goan Curry, Chips and Mixed Garden Leaf Salad, please?"&lt;/p&gt;

&lt;p&gt;Chef: "Sorry, that will take 4 hours."&lt;/p&gt;

&lt;p&gt;You: "Why?"&lt;/p&gt;

&lt;p&gt;Chef: "I haven't cleaned for a few weeks. I need to wash pots and pans, scrub the surfaces, scrape the grill, restock, throw out the old stuff in the freezer..."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This scenario rarely happens of course. Maintenance activities are a business as usual activity. They are mostly invisible to the customer, except for the clearing and cleaning of tables. The customer's bill doesn't have a line item for maintenance. It's an operational cost to the business.&lt;/p&gt;

&lt;p&gt;When maintenance activities are neglected, risks increase. Customers get food poisoning. Staff get stressed, then leave. Hiring new staff happens in a state of panic. Standards slip. Food inspectors enforce action when things get really bad.&lt;/p&gt;

&lt;p&gt;When risk is so high, operations, and therefore customers, are impacted. The restaurant must close for a deep clean and reorganisation, or permanently close. Some equipment must be thrown away because it's so encrusted with harmful, hard to clean bacteria. And replacement parts don't exist anymore.&lt;/p&gt;

&lt;p&gt;Customers value good food, and a memorable experience. They don't value what happens behind the scenes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Maintaining Software
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Clean as you code
&lt;/h3&gt;

&lt;p&gt;Back to software. Customers value working software. Customers value quick response to their changing needs.&lt;/p&gt;

&lt;p&gt;The expected lifetime of software is important. The longer the lifespan, the more significant maintenance becomes. The value of maintenance is the capability to respond to changes within reasonable time. Maintenance keeps things simple or, at the very least, enables you to manage complexity.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://8thlight.com/blog/micah-martin/2007/01/29/clean-as-you-code.html"&gt;Clean as you code&lt;/a&gt;. Make it part of your daily work.&lt;/p&gt;

&lt;h4&gt;
  
  
  Or neglect cleaning
&lt;/h4&gt;

&lt;p&gt;When you code, without cleaning as you go, risks build up. Software becomes harder to keep working and harder to adapt to change.&lt;/p&gt;

&lt;p&gt;Unmanaged complexity makes it riskier to deliver new business value, address security vulnerabilities, remain compliant with regulation, and keep operating at an acceptable level of performance.&lt;/p&gt;

&lt;p&gt;Expedient repairs are the natural state for software lacking preventative maintenance. They are costly and treat the symptom, by continuing to deliver value in risky ways.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reorganise as you change
&lt;/h3&gt;

&lt;p&gt;Some restaurants aim to keep quality high, so stay small and exclusive. They know what they're good at, their staff and customers value this specialisation.&lt;/p&gt;

&lt;p&gt;Some restaurants want to adapt their business, offering more choice to more customers perhaps. They hire extra staff, perhaps invest in larger premises but most importantly they reorganise around a suitable &lt;a href="https://www.lightspeedhq.com/blog/commercial-kitchen-layout/"&gt;commercial kitchen layout&lt;/a&gt;, factoring in the most important considerations - ergonomics, space, staff communication and safety. The outcome remains the same - good food, with more choice, to more customers.&lt;/p&gt;

&lt;p&gt;Likewise, software that powers a product must reorganise as it scales its features and gains more customers. Reorganise software into small, disposable components. Small components are easier to build, clean and discard. Small is less complex, easier to change and keep working.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://evolutionaryarchitecture.com/precis.html"&gt;Build evolutionary architectures&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  Or don't reorganise
&lt;/h4&gt;

&lt;p&gt;Complexity goes up therefore risk goes up. Software is harder to keep working and harder to change. Ultimately, everyone gets stressed and your customers are impacted negatively.&lt;/p&gt;

&lt;h2&gt;
  
  
  Further info
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://festivalofmaintenance.org.uk/2020/08/13/why-is-maintenance-so-difficult-to-talk-about/"&gt;Why is maintenance so difficult to talk about?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://legacycoderocks.libsyn.com/the-innovation-delusion-with-lee-vinsel-and-andy-russell"&gt;The Innovation Delusion authors talk about maintenance and repairs on Legacy Code Rocks podcast&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.codinghorror.com/the-noble-art-of-maintenance-programming/"&gt;The Noble Art of Maintenance Programming&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>maintenance</category>
      <category>cleancode</category>
    </item>
    <item>
      <title>How to measure and improve line management for developers</title>
      <dc:creator>Nick Rowlands</dc:creator>
      <pubDate>Sat, 16 Mar 2019 20:58:16 +0000</pubDate>
      <link>https://dev.to/rowlando/how-to-measure-and-improve-line-management-for-developers-n4l</link>
      <guid>https://dev.to/rowlando/how-to-measure-and-improve-line-management-for-developers-n4l</guid>
      <description>&lt;p&gt;I was talking to two colleagues the other day about how to structure line management within teams of developers. One of them said they don't like the term line management as, for him, it comes with a bunch of negative connotations. I kind of agree. Maybe I'm thinking of management 1.0. I like the idea of &lt;a href="https://management30.com/learn/"&gt;management 3.0&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There are two operating modes to the line manager role, the coach (the default mode) and the traditional manager role, which deals with admin, conduct issues or disciplinary proceedings. I'm not convinced these roles can or should be carried out by the same person. But I'm new to managing so what do I know?&lt;/p&gt;

&lt;h2&gt;
  
  
  Improving line management across a department
&lt;/h2&gt;

&lt;p&gt;One of my current objectives is to improve line management across the department I work in. In my view, the most important responsibility of a line manager is to look out for the welfare of the person, help them to succeed in their career and work through any issues that arise.&lt;/p&gt;

&lt;p&gt;If I'm to improve line management, I must be able to measure it. What results should a line manager should be measured on? Through discussion with colleagues and reading around the topic, I've come up with these outcomes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Team member feels safe to talk about anything (high trust &amp;amp; good rapport)&lt;/li&gt;
&lt;li&gt;Line manager purposefully creates space to reflect, brainstorm and solve problems&lt;/li&gt;
&lt;li&gt;Team member knows what's expected of them&lt;/li&gt;
&lt;li&gt;Regularly talks about career development&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I want to do a quick anonymous survey with everyone to get a baseline of where line management is currently. I need come up with a few questions. Maybe I can directly turn the above into yes/no questions to get a quick benchmark?&lt;/p&gt;

&lt;p&gt;Once I have a baseline, what are things that we can do as a department to improve line management? Some of the ideas I've come up with are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;set a minimum frequency of one-to-ones (the Civil Service guidance is at least every 6 to 8 weeks. This is too infrequent to build rapport)&lt;/li&gt;
&lt;li&gt;write down actions that come out of 1:1 to help with keep both people accountable&lt;/li&gt;
&lt;li&gt;set objectives with agreed ways to measure success&lt;/li&gt;
&lt;li&gt;every line manager goes on appropriate training (at work I've been on a High Quality Coaching Conversations workshop)&lt;/li&gt;
&lt;li&gt;Regular feedback on performance as line manager from team member being line managed and their own line manager&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We're in the "plan" stage of the plan-do-act-check method. I'm really keen to improve until we get good line management across the board, whatever "good" is.&lt;/p&gt;

&lt;h2&gt;
  
  
  An alternative take on one-to-ones
&lt;/h2&gt;

&lt;p&gt;The colleague I mentioned earlier prefers the term "personal retrospective". This immediately makes sense to me as it makes me think of the retrospective ceremony practiced commonly in agile teams.&lt;/p&gt;

&lt;p&gt;The definition of retrospective is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Looking back on or dealing with past events or situations.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But in one-to-ones we must also look forward. A "futurespective" seems the obvious way to counter this. A common definition of a "futurespective" is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;An exercise helps agile teams to find ways to reach their goals, agree upon their way of working and define a Definition of Done.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Liz Keogh wrote &lt;a href="https://lizkeogh.com/2018/09/12/how-to-run-a-futurespective/"&gt;How to run a Futurespective | Liz Keogh, lunivore&lt;/a&gt; where you "step forward into the future" and "look back at the past negatively" and "look back at the past positively" and "create actions" to work help achieve the positive events that are yet to come.&lt;/p&gt;

&lt;p&gt;This could work.&lt;/p&gt;

</description>
      <category>management</category>
      <category>people</category>
    </item>
  </channel>
</rss>
