<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-8389762629078434869</atom:id><lastBuildDate>Mon, 13 Apr 2026 06:56:07 +0000</lastBuildDate><category>Leadership</category><category>Umbraco</category><category>Processes</category><category>Project Management</category><category>Agile</category><category>Clean Code</category><category>Automation</category><category>Recruitment</category><category>Mental Health</category><category>Architecture</category><category>Scrum</category><category>Code</category><category>Kanban</category><category>Visual Studio</category><category>Deployment</category><category>SQL</category><category>Azure</category><category>Hacks</category><category>Review</category><category>IE7</category><category>ImageGen</category><category>JQuery</category><category>TInyMce</category><category>XSLT</category><category>sIFR</category><title>anthonydotnet</title><description>by anthony dang</description><link>https://anthonydotnet.blogspot.com/</link><managingEditor>noreply@blogger.com (Anthony)</managingEditor><generator>Blogger</generator><openSearch:totalResults>104</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8389762629078434869.post-2072724874854741207</guid><pubDate>Sun, 09 Apr 2023 01:19:00 +0000</pubDate><atom:updated>2023-04-09T06:13:06.927+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Agile</category><category domain="http://www.blogger.com/atom/ns#">Processes</category><category domain="http://www.blogger.com/atom/ns#">Project Management</category><title>How many effective hours are in a typical work day?</title><description>&lt;p&gt;In software development, the number of effective work hours is not the same as the number of hours you are at work. I&#39;m going to be upfront and say it is never as high as you think it is.&lt;/p&gt;&lt;p&gt;This article is meant to give you a feel for what your effective hours might actually be.&lt;/p&gt;&lt;h2&gt;Effective development hours calculation&lt;/h2&gt;&lt;h2&gt;&lt;div style=&quot;font-size: medium; font-weight: 400;&quot;&gt;&lt;div&gt;Let&#39;s start with this formula for calculating effective work hours.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;E = W - (D + C + M)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;E: Effective development hours per day&lt;/div&gt;&lt;div&gt;W: Work hours&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;D: Time for daily non-development duties&lt;/div&gt;&lt;div&gt;C: The time penalty for context switching x the number of non-development duties&lt;/div&gt;&lt;div&gt;M: Time lost for morning inefficiency&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We&#39;ll fill these in as we go...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/h2&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;The 8hr working day&lt;/h2&gt;&lt;p&gt;Let&#39;s assume that you are working for 8hrs, not including your breaks. Developers tend to be encouraged to estimate tasks based on this full day.&amp;nbsp;&lt;/p&gt;&lt;p&gt;If I was fingers-on-keyboard effective 100% of the time during all work hours, then a task that I estimate for 1 day should be my maximum theoretical output of 8hrs. But this is never the case.&lt;/p&gt;&lt;p&gt;E = 8 - (D + C + M)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Let&#39;s deduct time for detractors&lt;/h2&gt;&lt;p&gt;&lt;/p&gt;Here are 5 non-development items (with some average numbers based on my experience).&lt;br /&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Emails (15min)&lt;/li&gt;&lt;li&gt;Standup (15min)&lt;/li&gt;&lt;li&gt;Meetings (30min - may be more or less depending on the day)&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Meetings within a sprint are likely to include:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Scope/requirements/design discussions&lt;/li&gt;&lt;li&gt;Architecture discussions&lt;/li&gt;&lt;li&gt;Backlog grooming&lt;/li&gt;&lt;li&gt;Sprint planning&lt;/li&gt;&lt;li&gt;Sprint review (and possibly a demo)&lt;/li&gt;&lt;li&gt;Sprint retrospective&lt;/li&gt;&lt;li&gt;Misc.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;Helping others (e.g. to debug, code review, aid decision making) &amp;amp; misc duties (15min - may be more or less depending on your role)&lt;/li&gt;&lt;li&gt;Random chatter (15min)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;These 5 non-development items mean that 1.5hrs are deduced from each day on average.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Now your day only has 6.5hrs.&lt;/b&gt;&lt;/p&gt;&lt;p&gt;So you are 100% effective for 6.5hrs right? No!&lt;/p&gt;&lt;p&gt;E = 8 - (1.5 + C + M)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;What about context switching?&lt;/h2&gt;&lt;p&gt;The multiple distractors have a cost.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjaQGAnQZFOsECAuEfdYrkurIk3YNUywhJsEgg-su0HiWHryh9WmGVMeDLaSSvVijm07Z95Nl6VV4XvTAZQ7uZytwrCgcrbu1Im1m8DOeZkBvohbXrog9g81uP2BK3p2R0wGY_pYpQejoDHi3LH3KZLx0Fphp3A9RcQVJl5_1E_ieoeTknSE15usE_P&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;860&quot; data-original-width=&quot;843&quot; height=&quot;399&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjaQGAnQZFOsECAuEfdYrkurIk3YNUywhJsEgg-su0HiWHryh9WmGVMeDLaSSvVijm07Z95Nl6VV4XvTAZQ7uZytwrCgcrbu1Im1m8DOeZkBvohbXrog9g81uP2BK3p2R0wGY_pYpQejoDHi3LH3KZLx0Fphp3A9RcQVJl5_1E_ieoeTknSE15usE_P=w391-h399&quot; width=&quot;391&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;Image from:&amp;nbsp;&lt;a href=&quot;https://pacohq.com/blog/guide/the-high-price-of-context-switching-for-developers/&quot; target=&quot;_blank&quot;&gt;https://pacohq.com/blog/guide/the-high-price-of-context-switching-for-developers/&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Every time you change tasks, it takes time to ramp up to full speed. We call this getting into a flow state. According to &lt;a href=&quot;https://www.verywellmind.com/what-is-flow-2794768&quot; target=&quot;_blank&quot;&gt;Very Well Mind&lt;/a&gt;&amp;nbsp;it can take around 10-15min to ramp up. For some tasks it could take a lot longer!&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;For the sake of this discussion, let&#39;s keep this conservative.&amp;nbsp;Those 5 detractors&amp;nbsp;require 15min each, totalling 1.25hrs. Note that this assumes that you only check your emails once per day, and help someone once per day.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Now your available time is 6.5 hrs - 1.25hrs = 5.25hrs&lt;/b&gt;&lt;/p&gt;&lt;p&gt;E = 8 - (1.5 + 1.25 + M)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;It gets worse!&lt;/h2&gt;&lt;p&gt;In my experience, those 5 items are spread throughout the day, and mornings are particularly inefficient. Here is an example schedule.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;9am - Get to work and settle in&lt;/li&gt;&lt;li&gt;9:15am -9:30am - Check emails&lt;/li&gt;&lt;ul&gt;&lt;li&gt;At this point you already lost 15min of the day&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;10:00am - 10:15am - Standup&lt;/li&gt;&lt;ul&gt;&lt;li&gt;But what happened to the 30min between checking emails and standup?&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div&gt;In this example we effectively lost 45min of the day.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Subtracting 45min of the day...&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Now you have only 4.5hrs of effective development time to do your tasks.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;E = 8 - (1.5 + 1.25 + 0.75) = 4.5hrs&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Final thoughts&lt;/h2&gt;&lt;div&gt;Some of you will be thinking that 4.5hrs of an 8hr day is not reasonable.&amp;nbsp;&lt;/div&gt;&lt;div&gt;You may be yelling: What if you line-up everything back to back?&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sure! I actually recommend this! So let&#39;s assume you can totally remove the morning inefficiency by having a 915am standup. You are still only at 5.25hrs of effective development time per day.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But what if you could reduce meetings too? Yes! You should totally reduce meetings. However, you may find that you still need a few of those meetings per week. So you cannot just say no meetings at all! In my experience, you &quot;might&quot; be able to squeeze 5.5hrs of effective development time on average per day.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;At this point I would also remind you that people are not robots. We have slow days, and we also make mistakes. Software development is not like building a brick wall, and you have to be realistic about your effective hours, not just count the number of hours in the day.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;In my experience I typically say that 5hrs is the number of effective hours per day&lt;/b&gt;. This is realistic based on the numbers above, and also allows for a bit of wiggle room.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I hope this gives you food for thought.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The next time you estimate 1 day for a task, remember that your effective hours per day is not 8hrs. It is likely closer to 5hrs.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description><link>https://anthonydotnet.blogspot.com/2023/04/how-many-effective-hours-are-in-typical.html</link><author>noreply@blogger.com (Anthony)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEjaQGAnQZFOsECAuEfdYrkurIk3YNUywhJsEgg-su0HiWHryh9WmGVMeDLaSSvVijm07Z95Nl6VV4XvTAZQ7uZytwrCgcrbu1Im1m8DOeZkBvohbXrog9g81uP2BK3p2R0wGY_pYpQejoDHi3LH3KZLx0Fphp3A9RcQVJl5_1E_ieoeTknSE15usE_P=s72-w391-h399-c" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8389762629078434869.post-4992755628714010618</guid><pubDate>Fri, 04 Feb 2022 19:16:00 +0000</pubDate><atom:updated>2022-02-06T13:59:39.377+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Architecture</category><category domain="http://www.blogger.com/atom/ns#">Clean Code</category><category domain="http://www.blogger.com/atom/ns#">Code</category><category domain="http://www.blogger.com/atom/ns#">Leadership</category><title>Time constraints and technical debt</title><description>&lt;p&gt;&lt;span color=&quot;var(--color-text)&quot; style=&quot;font-size: inherit; font-weight: var(--artdeco-reset-typography-font-weight-normal);&quot;&gt;Developers often report that time constraints are a causal factor of their incurred technical debt. In fact, this was a finding in an academic study on technical debt factors (&lt;/span&gt;&lt;span style=&quot;text-indent: -32px;&quot;&gt;Rios et al, 2018&lt;/span&gt;&lt;span color=&quot;var(--color-text)&quot; style=&quot;font-size: inherit; font-weight: var(--artdeco-reset-typography-font-weight-normal);&quot;&gt;).&amp;nbsp;&lt;/span&gt;&lt;span color=&quot;var(--color-text)&quot; style=&quot;font-size: inherit; font-weight: var(--artdeco-reset-typography-font-weight-normal);&quot;&gt;This finding did not dig deep into why timeframe was a problem, however, this finding implies that (at least for some scenarios) it is not possible to do things well due to an aggressive timeframe.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-size: inherit; font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--artdeco-reset-typography_getLineHeight); margin: 0px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;span style=&quot;font-size: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;box-sizing: inherit; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-size: inherit; margin: 0px; padding: 0px; text-align: left;&quot;&gt;Strategic Technical Debt vs Incidental Technical Debt&lt;/h2&gt;&lt;p style=&quot;--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-size: inherit; font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--artdeco-reset-typography_getLineHeight); margin: 0px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;span style=&quot;font-size: inherit;&quot;&gt;There is strategically incurred technical debt and incidental/accidental technical debt. A strong tech team may incur technical debt willingly, with a good understanding of its implications, and hopefully a plan to fix it. A weaker team will often incur technical debt by accident. In other words, they may not even know why their approach would cause technical debt until it is too late in the project.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-size: inherit; font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--artdeco-reset-typography_getLineHeight); margin: 0px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;/p&gt;&lt;h2 style=&quot;box-sizing: inherit; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-size: inherit; margin: 0px; padding: 0px; text-align: left;&quot;&gt;Why is time a factor?&lt;/h2&gt;&lt;div&gt;Some teams can produce a well-architected solution within a tight timeframe. Why is that?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Often developers will say they know it&#39;s not very good, however they did not have time to do it well.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p style=&quot;--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-size: inherit; font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--artdeco-reset-typography_getLineHeight); margin: 0px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;However, they really mean something else...&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-size: inherit; font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--artdeco-reset-typography_getLineHeight); margin: 0px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/p&gt;&lt;p style=&quot;--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-size: inherit; font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--artdeco-reset-typography_getLineHeight); margin: 0px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;u&gt;They did not actually know how to do things well&amp;nbsp;in the first place.&lt;/u&gt; Consequently, they did not know&amp;nbsp;how to do things well within the time frame. If they did know how to do things well, then they would have known the consequences of bad code actually slow down the project delivery, not speed it up.&amp;nbsp;&lt;span style=&quot;font-size: inherit;&quot;&gt;Therefore they incurred incidental/accidental technical debt.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-size: inherit; font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--artdeco-reset-typography_getLineHeight); margin: 0px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;br style=&quot;background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: pre-wrap;&quot; /&gt;&lt;/p&gt;&lt;h2 style=&quot;--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-size: inherit; font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--artdeco-reset-typography_getLineHeight); margin: 0px; padding: 0px; text-align: left; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;br /&gt;&lt;/h2&gt;&lt;h2 style=&quot;--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-size: inherit; font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--artdeco-reset-typography_getLineHeight); margin: 0px; padding: 0px; text-align: left; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;How to avoid technical debt?&lt;/h2&gt;&lt;p style=&quot;--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-size: inherit; font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--artdeco-reset-typography_getLineHeight); margin: 0px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;My top 3 tips are:&lt;/p&gt;&lt;p style=&quot;--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-size: inherit; font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--artdeco-reset-typography_getLineHeight); margin: 0px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Ensure all of your developers know about &lt;b&gt;clean code&lt;/b&gt;. Watch &lt;a href=&quot;https://www.youtube.com/watch?v=Wibk0IfjfaI&quot; target=&quot;_blank&quot;&gt;THIS VIDEO&lt;/a&gt;&amp;nbsp;- They&#39;re not allowed to commit any code until they watch and understand this!!!&lt;/li&gt;&lt;li&gt;Practise &lt;b&gt;SOLID&lt;/b&gt; principles - Success requires understanding why and when to use:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Dependency injection&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/ddd-oriented-microservice&quot; target=&quot;_blank&quot;&gt;Domain driven design&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=vKbVrsMnhDc&amp;amp;ab_channel=dotconferences&quot; target=&quot;_blank&quot;&gt;Hexaganal architecture&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Have strong skills in &lt;b&gt;TDD/BDD&lt;/b&gt; - Requires understanding the trade-offs between different automated testing approaches&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Get schooled by watching the first 44min of this &lt;a href=&quot;https://www.youtube.com/watch?v=W4sCB8cKDSQ&quot; target=&quot;_blank&quot;&gt;video&lt;/a&gt;&amp;nbsp;by my friend&amp;nbsp;Lars-Erik Aabech, who teaches about automated testing at Østfold University in Norway&lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-size: inherit; font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--artdeco-reset-typography_getLineHeight); margin: 0px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-size: inherit; font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--artdeco-reset-typography_getLineHeight); margin: 0px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;For more, on what I think all developers should be exposed to, you can check out my Software Engineering Trello board:&lt;/p&gt;&lt;p style=&quot;--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; line-height: var(--artdeco-reset-typography_getLineHeight); margin: 0px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;a href=&quot;https://trello.com/b/XDZqHM6J/software-engineering-on-a-board&quot;&gt;https://trello.com/b/XDZqHM6J/software-engineering-on-a-board&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; line-height: var(--artdeco-reset-typography_getLineHeight); margin: 0px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-size: inherit; font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--artdeco-reset-typography_getLineHeight); margin: 0px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-size: inherit; font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--artdeco-reset-typography_getLineHeight); margin: 0px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 style=&quot;--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-size: inherit; font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--artdeco-reset-typography_getLineHeight); margin: 0px; padding: 0px; text-align: left; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;References&lt;/h2&gt;&lt;p style=&quot;margin-left: 24pt; text-indent: -24pt;&quot;&gt;Rios, N., Spínola, R. O., De Mendonça Neto, M. G., &amp;amp; Seaman, C. (2018). A study of factors that lead development teams to incur technical debt in software projects. &lt;i&gt;Proceedings - 44th Euromicro Conference on Software Engineering and Advanced Applications, SEAA 2018&lt;/i&gt;, 429–436. https://doi.org/10.1109/SEAA.2018.00076&lt;/p&gt;</description><link>https://anthonydotnet.blogspot.com/2022/02/time-constraints-and-technical-debt.html</link><author>noreply@blogger.com (Anthony)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8389762629078434869.post-2628949626251508258</guid><pubDate>Mon, 31 Jan 2022 22:03:00 +0000</pubDate><atom:updated>2022-02-02T19:08:27.413+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Agile</category><category domain="http://www.blogger.com/atom/ns#">Architecture</category><category domain="http://www.blogger.com/atom/ns#">Automation</category><category domain="http://www.blogger.com/atom/ns#">Azure</category><category domain="http://www.blogger.com/atom/ns#">Clean Code</category><category domain="http://www.blogger.com/atom/ns#">Code</category><category domain="http://www.blogger.com/atom/ns#">Deployment</category><category domain="http://www.blogger.com/atom/ns#">Kanban</category><category domain="http://www.blogger.com/atom/ns#">Leadership</category><category domain="http://www.blogger.com/atom/ns#">Processes</category><category domain="http://www.blogger.com/atom/ns#">Project Management</category><category domain="http://www.blogger.com/atom/ns#">Scrum</category><title>Software Engineering On A Board</title><description>&lt;p&gt;I have hired dozens of developers over the years. At some point, I started keeping a list of all the skills and knowledge that I want developers to have.&amp;nbsp;&lt;/p&gt;&lt;p&gt;A year ago I made public this Trello board:&amp;nbsp;&lt;a href=&quot;https://trello.com/b/XDZqHM6J/software-engineering-on-a-board&quot; target=&quot;_blank&quot;&gt;Software Engineering On A Board&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I envisioned this as being a summary of an Applied Software Engineering course.&lt;/p&gt;&lt;p&gt;Developers who work with me will experience most (if not all) of these learnings at some point. Many of these topics will definitely challenge people to think differently, and hopefully wholistically about code,&amp;nbsp; architecture and systems.&lt;/p&gt;&lt;div&gt;This board is definitely open to contributions. So if you want to contribute to making it better, please get in touch!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</description><link>https://anthonydotnet.blogspot.com/2022/01/software-engineering-on-board.html</link><author>noreply@blogger.com (Anthony)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8389762629078434869.post-418471805694107761</guid><pubDate>Fri, 08 Jan 2021 09:05:00 +0000</pubDate><atom:updated>2021-01-08T09:05:47.772+00:00</atom:updated><title>UmbrCoach</title><description>&lt;h2 style=&quot;text-align: left;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://umbr.coach/&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;527&quot; data-original-width=&quot;800&quot; height=&quot;264&quot; src=&quot;https://umbr.coach/media/8d82063a9cd895a/color-logo-no-background.png?upscale=false&amp;amp;width=1200&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/h2&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Introduction&lt;/h2&gt;&lt;div&gt;I started my latest side-project around a year ago. Now after several months of &quot;soft launch&quot;, I am ready to go full public.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Background&lt;/h3&gt;&lt;p&gt;My trajectory as a developer has seen me move through leadership roles in a few companies. During this journey I have come to realise that I really enjoy mentoring and coaching. My proudest moments are when a junior developer suddenly gets it. This gives me great joy.&lt;/p&gt;&lt;p&gt;In the last 12 years I have also been heavily involved in the Umbraco community. This is a great helpful friendly community which has allowed me to contribute in many ways.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;UmbrCoach is born!&lt;/h2&gt;&lt;p&gt;&lt;a href=&quot;https://umbr.coach/&quot; target=&quot;_blank&quot;&gt;UmbrCoach&lt;/a&gt; is an amalgamation of my positive experiences in the Umbraco community, and my experience of being a coach and mentor. It is my hope that UmbrCoach can gather volunteer mentors from around the world, so we can cover all timezones, and help aspiring developers succeed in their chosen path, no matter where they live. Best of all... It is free!&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Help devs find a mentor&lt;/h2&gt;&lt;p&gt;You have read this far, so now I need your help. If you know aspiring developers who would benefit from a mentor, please point them to&amp;nbsp;&lt;a href=&quot;https://umbr.coach/&quot; target=&quot;_blank&quot;&gt;UmbrCoach&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Thanks!&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description><link>https://anthonydotnet.blogspot.com/2021/01/umbrcoach.html</link><author>noreply@blogger.com (Anthony)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8389762629078434869.post-2752352864543178353</guid><pubDate>Tue, 08 Dec 2020 07:30:00 +0000</pubDate><atom:updated>2020-12-08T07:32:20.856+00:00</atom:updated><title>Umbraco Version Cleanup - Ultrascript</title><description>&lt;p&gt;&amp;nbsp;Just thought I&#39;d share my Umbraco cleanup script.&lt;/p&gt;&lt;p&gt;If you&#39;re looking to remove old versions, clean up your recycle bin, and generally speed up your database, this is the script for you. It is a combination of all the scripts I have found out in the wild.&lt;/p&gt;&lt;p&gt;Warning: Back up your DB before you run this. You have been warned!&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre class=&quot;a-b-r-La&quot; style=&quot;background-color: white; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, arial, sans-serif; font-size: 14px; margin-bottom: 0px; margin-top: 0px; overflow-wrap: break-word; user-select: text; white-space: pre-wrap;&quot;&gt;truncate table umbracoLog 

-- truncate elmah table if it exist
IF OBJECT_ID(&#39;ELMAH_Error&#39;) IS NOT NULL
TRUNCATE TABLE ELMAH_Error
&lt;br /&gt;&lt;/pre&gt;&lt;pre class=&quot;a-b-r-La&quot; style=&quot;background-color: white; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, arial, sans-serif; font-size: 14px; margin-bottom: 0px; margin-top: 0px; overflow-wrap: break-word; user-select: text; white-space: pre-wrap;&quot;&gt;-- empty content recycle bin
DELETE FROM cmsPreviewXml WHERE nodeId IN (SELECT id FROM umbracoNode WHERE path LIKE &#39;%-20%&#39; AND id != -20)
DELETE FROM cmsContentVersion WHERE contentId IN (SELECT id FROM umbracoNode WHERE path LIKE &#39;%-20%&#39; AND id != -20)
DELETE FROM cmsDocument WHERE nodeId IN (SELECT id FROM umbracoNode WHERE path LIKE &#39;%-20%&#39; AND id != -20)
DELETE FROM cmsContentXML WHERE nodeId IN (SELECT id FROM umbracoNode WHERE path LIKE &#39;%-20%&#39; AND id != -20)
DELETE FROM cmsContent WHERE nodeId IN (SELECT id FROM umbracoNode WHERE path LIKE &#39;%-20%&#39; AND id != -20)
DELETE FROM cmsPropertyData WHERE contentNodeId IN (SELECT id FROM umbracoNode WHERE path LIKE &#39;%-20%&#39; AND id != -20)
&lt;br /&gt;&lt;/pre&gt;&lt;pre class=&quot;a-b-r-La&quot; style=&quot;background-color: white; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, arial, sans-serif; font-size: 14px; margin-bottom: 0px; margin-top: 0px; overflow-wrap: break-word; user-select: text; white-space: pre-wrap;&quot;&gt;-- delete the XML nodes...
DELETE FROM umbracoDomains WHERE domainRootStructureID IN (SELECT id FROM umbracoNode WHERE path LIKE &#39;%-20%&#39; AND id != -20)
DELETE FROM umbracoUser2NodePermission WHERE nodeId IN (SELECT id FROM umbracoNode WHERE path LIKE &#39;%-20%&#39; AND id != -20)
DELETE FROM umbracoRelation WHERE parentId IN (SELECT id FROM umbracoNode WHERE path LIKE &#39;%-20%&#39; AND id != -20)
DELETE FROM umbracoRelation WHERE childId IN (SELECT id FROM umbracoNode WHERE path LIKE &#39;%-20%&#39; AND id != -20)
DELETE FROM cmsTask WHERE nodeId IN (SELECT id FROM umbracoNode WHERE path LIKE &#39;%-20%&#39; AND id != -20)
DELETE FROM cmsTagRelationship WHERE nodeId IN (SELECT id FROM umbracoNode WHERE path LIKE &#39;%-20%&#39; AND id != -20)
DELETE FROM dbo.umbracoRedirectUrl WHERE contentKey IN (SELECT UniqueId FROM umbracoNode WHERE path LIKE &#39;%-20%&#39; AND id != -20)
DELETE FROM umbracoNode WHERE path LIKE &#39;%-20%&#39; AND id != -20
&lt;br /&gt;&lt;/pre&gt;&lt;pre class=&quot;a-b-r-La&quot; style=&quot;background-color: white; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, arial, sans-serif; font-size: 14px; margin-bottom: 0px; margin-top: 0px; overflow-wrap: break-word; user-select: text; white-space: pre-wrap;&quot;&gt;-- empty media recycle bin 
delete from dbo.cmsContentVersion where contentid in (select Id from dbo.umbracoNode where path like &#39;%-21%&#39; and Id !=-21)
delete from dbo.cmsContentXml where nodeId in (select Id from dbo.umbracoNode where path like &#39;%-21%&#39; and Id !=-21)
delete from dbo.cmsMedia where nodeId in (select Id from dbo.umbracoNode where path like &#39;%-21%&#39; and Id !=-21)
delete from dbo.cmsContent where nodeId in (select Id from dbo.umbracoNode where path like &#39;%-21%&#39; and Id !=-21)
delete from dbo.cmsPropertyData where contentNodeId in (select Id from dbo.umbracoNode where path like &#39;%-21%&#39; and Id !=-21)
&lt;br /&gt;&lt;/pre&gt;&lt;pre class=&quot;a-b-r-La&quot; style=&quot;background-color: white; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, arial, sans-serif; font-size: 14px; margin-bottom: 0px; margin-top: 0px; overflow-wrap: break-word; user-select: text; white-space: pre-wrap;&quot;&gt;-- delete property data versions
DECLARE @createdDate Datetime = getDate()
 
DELETE FROM cmsPropertyData WHERE
    versionId NOT IN (SELECT versionId FROM cmsDocument WHERE updateDate &amp;gt; @createdDate OR published = 1 OR newest = 1) AND
    contentNodeId IN (SELECT DISTINCT nodeID FROM cmsDocument)
DELETE FROM cmsPreviewXml WHERE
    versionId NOT IN (SELECT versionId FROM cmsDocument WHERE updateDate &amp;gt; @createdDate OR published = 1 OR newest = 1) AND
    nodeId IN (SELECT DISTINCT nodeID FROM cmsDocument)
DELETE FROM cmsContentVersion WHERE
    versionId NOT IN (SELECT versionId FROM cmsDocument WHERE updateDate &amp;gt; @createdDate OR published = 1 OR newest = 1) AND
    ContentId  IN (SELECT DISTINCT nodeID FROM cmsDocument)

DELETE FROM cmsDocument WHERE
    versionId NOT IN (SELECT versionId FROM cmsDocument WHERE updateDate &amp;gt; @createdDate OR published = 1 OR newest = 1) AND
    nodeId IN (SELECT DISTINCT nodeID FROM cmsDocument)
  &lt;/pre&gt;&lt;pre class=&quot;a-b-r-La&quot; style=&quot;background-color: white; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, arial, sans-serif; font-size: 14px; margin-bottom: 0px; margin-top: 0px; overflow-wrap: break-word; user-select: text; white-space: pre-wrap;&quot;&gt;-- reindex tables  
DBCC DBREINDEX (cmsPropertyData)
DBCC DBREINDEX (cmsPreviewXml)
DBCC DBREINDEX (cmsContentVersion)
DBCC DBREINDEX (cmsDocument)
DBCC DBREINDEX (cmsContentXml)
DBCC DBREINDEX (umbracoDomains)
DBCC DBREINDEX (umbracoUser2NodePermission)
DBCC DBREINDEX (umbracoNode)
DBCC DBREINDEX (cmsContent)

    
-- shrink database files
DECLARE @logFile nvarchar(200) = (select Name from sys.database_files where Name like &#39;%log&#39;)
select @logFile
DBCC SHRINKFILE(@logFile)

DECLARE @dataFile nvarchar(200) = (select Name from sys.database_files where Name like &#39;data%&#39;)
select @dataFile
DBCC SHRINKFILE(@dataFile)&lt;/pre&gt;&lt;pre class=&quot;a-b-r-La&quot; style=&quot;background-color: white; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, arial, sans-serif; font-size: 14px; margin-bottom: 0px; margin-top: 0px; overflow-wrap: break-word; user-select: text; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre class=&quot;a-b-r-La&quot; style=&quot;background-color: white; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, arial, sans-serif; font-size: 14px; margin-bottom: 0px; margin-top: 0px; overflow-wrap: break-word; user-select: text; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre class=&quot;a-b-r-La&quot; style=&quot;background-color: white; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, arial, sans-serif; font-size: 14px; margin-bottom: 0px; margin-top: 0px; overflow-wrap: break-word; user-select: text; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/pre&gt;</description><link>https://anthonydotnet.blogspot.com/2020/12/umbraco-version-cleanup-ultrascript.html</link><author>noreply@blogger.com (Anthony)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8389762629078434869.post-3601275437574810795</guid><pubDate>Tue, 27 Oct 2020 22:00:00 +0000</pubDate><atom:updated>2020-11-10T09:44:00.537+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Mental Health</category><title>I gave up my mobile phone and I couldnt be happier</title><description>&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBHBTriB2pNwY7hRf6zKtwtoaNLWeHmvlCUGhztRNYlC1Avyulenp63EpQjePNggLzgN2gHwzMUQo1gDU86s1lVyb9OKN2zB5QW5D_c7lBzzgpZ5MM2mAFNNhTubSQBn63epciDIZTi3c/&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;1113&quot; data-original-width=&quot;1439&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBHBTriB2pNwY7hRf6zKtwtoaNLWeHmvlCUGhztRNYlC1Avyulenp63EpQjePNggLzgN2gHwzMUQo1gDU86s1lVyb9OKN2zB5QW5D_c7lBzzgpZ5MM2mAFNNhTubSQBn63epciDIZTi3c/&quot; width=&quot;310&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;In this age of 24/7 digital connectedness, I have decided to disconnect. It has now been almost 2 months since I gave up my mobile phone, and I could not be happier.&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;h2&gt;Background&lt;/h2&gt;&lt;/div&gt;&lt;p&gt;Firstly, let me tell you something... I grew up in the 1980s/1990s and have been into technology since I was a child. I had Commodore 64, an original Nintendo, a Gameboy, and dodgy little Windows 3.1 PC with 1MB of RAM.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Fast-forward to 2020, and I have been experiencing growing anxiety about technology. Various technologies have not been enriching or simplifying my life, but rather complicating, and adding burden. Around 5 years ago I started putting my phone on airplane mode at night because I didn&#39;t want any buzzing or beeping waking me up due to a notification.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;I grew to hate my phone&lt;/h2&gt;&lt;p&gt;My mobile phone was the first thing I interacted with when I woke, and the last thing I used before going to sleep. For quite some time, I felt that this was unhealthy.&lt;/p&gt;&lt;p&gt;Over the last few years I found myself checking my phone out of habit dozens of times per day. Every time I walked by my phone, I would look at it to see if the notification light was blinking. When I turned off almost all notifications, it still pulled me in to check something. For example, I no longer had email notifications, however I would open the app to check for new emails.&amp;nbsp;&lt;/p&gt;&lt;p&gt;The other thing I hated about my phone was that I often used it when I should have just waited until&amp;nbsp; I was home to used my laptop. I even wrote blog articles on it! Do you know how inefficient that was?&lt;/p&gt;&lt;p&gt;Even conversations with people involved using a phone. I would tend to check my phone when hanging out with friends. Google maps, photos, and Googling for information. It seemed that I forgot how to talk to people without using a phone.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;What was the tipping point?&lt;/h2&gt;&lt;div&gt;In September I had a vacation for 10 days. The plan was to stay home, go for walks, go for a drive, and go hiking... as part of this plan I wanted to completely disconnect from technology. I needed to rest my mind. The following is what happened...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When driving, we used GPS directions in Google Maps. When paying for parking I download an app. When hiking I took my phone and power bank, &quot;just in case&quot;. Every time I left the house, I took my phone. Even my attempt to limit my usage was met with scenarios which would prompt me to take out my device.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Did I disconnect? Definitely not. I used my phone almost every day of that vacation. That was the realisation for me that there was no way to &quot;limit&quot; phone usage when the phone was always in my bag/pocket. So I decided to give up my mobile phone.&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;How did I do it?&lt;/h2&gt;&lt;p&gt;To be honest, my first thought was to just throw it away. However I realised that there was too much crap that I had which relies on an app. Such as, Monzo (mobile only bank), Google Authenticator, WhatsApp to name just a few.&amp;nbsp;&lt;/p&gt;&lt;p&gt;A couple months on, and I have managed to push many of my WhatsApp contacts to email. I never really used the Monzo app, so I will either ditch Monzo entirely, or put it on an Android VM. There are various options for Google Authenticator, however I have not needed to use it as I&#39;m always using the same laptop. So I&#39;ll push that decision into the future.&lt;/p&gt;&lt;p&gt;The only other thing was an alarm clock. Luckily, I had an old battery powered Ikea clock laying around.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;What is life like without a phone?&lt;/h2&gt;&lt;p&gt;It&#39;s great. I feel free!&lt;/p&gt;&lt;p&gt;My mobile phone sits in a box on my shelf, power off. When I leave the house, I no longer have a compulsion to check a device, because I don&#39;t carry one. I don&#39;t even need a watch because I can just ask someone the time. It really is quite liberating.&amp;nbsp;&lt;/p&gt;&lt;p&gt;In the evenings I have actually started reading before bed, and I find my sleep to be more restful.&lt;/p&gt;&lt;p&gt;There is odd occasion where&amp;nbsp;I need to be called or SMS&#39;d for banking verification, however, that is rate. There are a few options out there such as Skype phone numbers. I may look into that in the future.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;But what if...?&amp;nbsp;&lt;/h2&gt;&lt;p&gt;I know what you&#39;re thinking...&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;i&gt;What if I am meeting someone and they&#39;re running late?&amp;nbsp;&lt;br /&gt;&lt;/i&gt;I tell them that I don&#39;t carry a phone, so they cannot contact me. In other words... don&#39;t be shit!&lt;/p&gt;&lt;p&gt;&lt;i&gt;What if I&#39;m running late for a meeting?&lt;br /&gt;&lt;/i&gt;I still have email, and my mobile phone is at home in a box. I will just turn it on and make a phone call.&lt;/p&gt;&lt;p&gt;&lt;i&gt;What if I&#39;m out and about, and running late for something?&lt;br /&gt;&lt;/i&gt;Remember back in day when people didn&#39;t have mobile phones? In other words... I won&#39;t pack my life with so much stuff that I end up being late for things.&lt;/p&gt;&lt;p&gt;&lt;i&gt;What about when flights and traveling are ever a thing again?&amp;nbsp;&lt;br /&gt;&lt;/i&gt;To be honest, I will probably take my phone where a flight or a long trip are concerned. However I would treat it like I would a laptop. It would remain turned off, and only be powered up for use as a mini computer to grab documents out of emails.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Final Thoughts&lt;/h2&gt;&lt;p&gt;Being a programmer, I have not disconnected entirely from technology. However, I feel liberated as I am no longer shackled to the mobile phone. Most of the things I used it for are better experienced on a large screen with real keyboard anyway.&lt;/p&gt;&lt;p&gt;Giving up my mobile phone was the best thing I have done in a long time. It was not enriching my life or making it simpler. It was an annoyance. The constant notifications, and habit of checking it were the factors which led me to hate my mobile phone.&amp;nbsp;&lt;/p&gt;&lt;p&gt;There are still a few apps which I need to either close down or move to an Android VM. However, for the most part, I am phone free.&lt;/p&gt;&lt;p&gt;One bit of advice... If you do decide to follow, you will need a real alarm clock.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;</description><link>https://anthonydotnet.blogspot.com/2020/10/i-gave-up-my-mobile-phone-and-i-couldnt.html</link><author>noreply@blogger.com (Anthony)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBHBTriB2pNwY7hRf6zKtwtoaNLWeHmvlCUGhztRNYlC1Avyulenp63EpQjePNggLzgN2gHwzMUQo1gDU86s1lVyb9OKN2zB5QW5D_c7lBzzgpZ5MM2mAFNNhTubSQBn63epciDIZTi3c/s72-c" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8389762629078434869.post-4762372729493615201</guid><pubDate>Thu, 07 May 2020 09:19:00 +0000</pubDate><atom:updated>2020-05-07T10:19:00.179+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Leadership</category><category domain="http://www.blogger.com/atom/ns#">Processes</category><category domain="http://www.blogger.com/atom/ns#">Project Management</category><title>Stop Using Timesheets - Tracking Time Is Not Tracking Productivity</title><description>I previously wrote an article (rant) about timesheets. That article prompted many discussions about further issues.&lt;br /&gt;
&lt;br /&gt;
See it here:&lt;br /&gt;
&lt;a href=&quot;https://anthonydotnet.blogspot.com/2019/09/stop-using-timesheets.html&quot;&gt;https://anthonydotnet.blogspot.com/2019/09/stop-using-timesheets.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
In this article I will debunk the notion of using timesheets to track Productivity.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Productivity Is&lt;/h2&gt;
Productivity can be viewed as the output of value. It is a completed piece of work that provides value to a team/organisation/company/customer/colleague.&lt;br /&gt;
&lt;h3&gt;
Value&lt;/h3&gt;
&lt;div&gt;
A person&#39;s output must be add value. Therefore the output must be complete in some form so that a&amp;nbsp; team/organisation/company/customer/colleague can benefit from the time and effort that was spent creating that output.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I have seen many companies where people start many things, they work hard, they work overtime, and yet they produce little value. An incomplete bridge is of no value.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRn6tRyKnSLzATGE12a08XMn58l1oH79JVK77bSrHnWcjxlOs7kG_ZSHOaPj__ra_bTQ8x-ADUQBHtG0yriFdCKnBY57HjCxloxpju3LHLtTWBUC-SPHkoydQOmfwVuccTzPcmGUgHHiU/s1600/Sydney+Harbour+Bridge+-+039.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;980&quot; data-original-width=&quot;1600&quot; height=&quot;196&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRn6tRyKnSLzATGE12a08XMn58l1oH79JVK77bSrHnWcjxlOs7kG_ZSHOaPj__ra_bTQ8x-ADUQBHtG0yriFdCKnBY57HjCxloxpju3LHLtTWBUC-SPHkoydQOmfwVuccTzPcmGUgHHiU/s320/Sydney+Harbour+Bridge+-+039.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h3&gt;
Quality&lt;/h3&gt;
Productivity has a quality element. If a person produces something of low quality, it may be deemed as having little value. Thus, producing low quality work is not really productive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Time Tracking Is Not Tracking Productivity&lt;/h2&gt;
Timesheets are a record of utilised time. Utilisation is not the same as productivity (output).&lt;br /&gt;
&lt;br /&gt;
The perceived utilisation of a person&#39;s time can be at 100%, however their output may be half-started work items of low quality.&lt;br /&gt;
&lt;br /&gt;
But what about...&lt;br /&gt;
I hear some people saying that they are using timesheets to track the time for completed tasks, as each task has its own code.&lt;br /&gt;
&lt;br /&gt;
Realistically, tracking the time for each task doesn&#39;t give you the information you think it does. But I hear you exclaiming &quot;A manager can use the time tracked on a task to help a developer become more productive!&quot;&lt;br /&gt;
&lt;br /&gt;
As a manager I already know the strengths and weaknesses of my staff. I don&#39;t need a timesheet to do this! Moreover, comparing tasks is not useful as no 2 tasks are the same. There are many different variables that can affect a developer&#39;s productivity at a specific task. For example, designs, requirements, client interactions, quality of acceptance criteria. That&#39;s not even including stress, illness, and family life.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
How To Track Productivity&lt;/h2&gt;
One great way to track productivity is by counting the number of tasks a person does over a period of time. It&#39;s that easy.... In fact it&#39;s Dang Easy!&lt;br /&gt;
&lt;br /&gt;
For example, in a given month, count the number of completed tickets/cards in your project management tool (eg. Trello, Jira, Asana, Kanbanize, Leankit) for a given developer. Then count the number of defects which were raised by QA for that developer in the same time period.&lt;br /&gt;
&lt;br /&gt;
Now you have their output over time, and a quality metric which you can use to compare this developer against their own future productivity scores.&lt;br /&gt;
&lt;br /&gt;
You can even use these numbers to compare different developer&#39;s productivity.&lt;br /&gt;
&lt;br /&gt;
It&#39;s that easy! You don&#39;t need timesheets to do this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Final Thoughts&lt;/h2&gt;
I hope that I have given you food for thought. Tracking a person&#39;s time is not the same as tracking their productivity. Timesheets do not track a person&#39;s output, and they do not track a person&#39;s rate of output.&lt;br /&gt;
&lt;br /&gt;
A good manager does not need timesheets to figure out if their staff are productive, efficient, and delivering value for the organisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>https://anthonydotnet.blogspot.com/2020/05/stop-using-timesheets-tracking-time-is.html</link><author>noreply@blogger.com (Anthony)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRn6tRyKnSLzATGE12a08XMn58l1oH79JVK77bSrHnWcjxlOs7kG_ZSHOaPj__ra_bTQ8x-ADUQBHtG0yriFdCKnBY57HjCxloxpju3LHLtTWBUC-SPHkoydQOmfwVuccTzPcmGUgHHiU/s72-c/Sydney+Harbour+Bridge+-+039.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8389762629078434869.post-2598765087535170098</guid><pubDate>Thu, 30 Apr 2020 09:09:00 +0000</pubDate><atom:updated>2020-04-30T10:09:01.489+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Hacks</category><category domain="http://www.blogger.com/atom/ns#">Processes</category><title>Email Tips For Better Productivity</title><description>&lt;h2&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;As Technical Director at an agency, I am thrusted across all projects that touch digital. I literally get 100&#39;s of emails per day. Before I added email filters, my inbox had at least 30 emails per hour. Most of these emails were just me being CC&#39;d and never really require a response, and many of them are conversational email threads. If you are in a similar situation as me, then you might feel that you are spending more time deleting &amp;amp; sorting emails, than actually reading them.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Here are a a few email tips to help make your day more productive.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
Tip 1 - The CC filter&lt;/h2&gt;
&lt;div&gt;
Create a filter for CC&#39;d emails to be automatically moved to a CC folder. Emails which you are CC&#39;d on are just for your reference. If the email really needed your attention or a response then you would be in the main recipient list.&lt;br /&gt;
&lt;br /&gt;
Adding a CC filter will drastically free up your inbox for emails which are actually directed to you.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
I got this tip from &lt;a href=&quot;https://www.hanselman.com/blog/OneEmailRuleHaveASeparateInboxAndAnInboxCCToReduceEmailStressGuaranteed.aspx&quot; target=&quot;_blank&quot;&gt;Scott Hanselman&lt;/a&gt;, and it works wonders!&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Tip 2 - Labels/Folders&lt;/h2&gt;
Set up labels to help you find things later. Since I am overseeing all the digital clients, I have at least 20 labels so I can search for client specific emails later. This works really well if you are using something like GMail. For those using Outlook, it is a bit more clunky with folders, however this can greatly help keep your inbox less cluttered.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Tip 3 - Abruptly Cut Email Threads Short&lt;/h2&gt;
Have you ever been in a long painful email thread? It&#39;s like a game of ping pong which never ends. If you notice that an email thread has more than 3 back and forth exchanges, then abruptly cut it short.&lt;br /&gt;
&lt;br /&gt;
Your next email should be something like: &quot;It seems that this requires further discussion. Let&#39;s have a quick call to discuss properly&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Tip 4 - Drive Emails To Calls&lt;/h2&gt;
If you need to ask a client (or anyone for that matter) something, then of course you can ask it in the email. However, that same email could also include something like &quot;Let&#39;s have a call to discuss further!&quot;.&lt;br /&gt;
&lt;br /&gt;
You would be amazed how fast your day goes when you are not burdened with back and forth emails which clog up your inbox.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Tip 5 - Use Email for Summaries&lt;/h2&gt;
&lt;div&gt;
Use email as repository, not as a main form of communication. Opt have a conversation over the phone, or by video conference first. Then follow up with an email summary of what was agreed. This will stop those painful never ending back-and-forth email threads.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;
Tip 6 - Move Internal Communication to Slack&lt;/h2&gt;
If your organisation has Slack (or something similar), then this is a great alternative to email. Many emails are conversational, which means that they can be easily moved into a chat channel or direct personal message.&lt;br /&gt;
&lt;br /&gt;
By reducing/eliminating conversational emails, your inbox will be more lean, and it will be easier to find the things that are actually important.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Final Thoughts&lt;/h2&gt;
Email noise can reduce your productivity. When you have lots of emails, it is very hard figure out what is important. By following a few simple steps, you can reduce the noise, and stay productive.&lt;br /&gt;
&lt;br /&gt;
I hope you found this article useful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>https://anthonydotnet.blogspot.com/2020/04/email-tips-for-better-productivity.html</link><author>noreply@blogger.com (Anthony)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8389762629078434869.post-5127363861085636101</guid><pubDate>Fri, 24 Apr 2020 08:50:00 +0000</pubDate><atom:updated>2020-04-24T10:00:46.818+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Mental Health</category><title>My Number One Mental Health Tip Is Nothing</title><description>In this modern age we are constantly switched on, and our brains are engaged in something. We wake up, and the first thing we do is look at a smartphone screen. We sit in front of computers which have Slack/MS Teams, not to mention emails. We &quot;relax&quot; by flipping through Youtube videos, and we end our days with a smartphone.&lt;br /&gt;
&lt;br /&gt;
That&#39;s f**king nuts!&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Depleting Mental Energy&lt;/h2&gt;
Our attention is pulled in different directions at least dozens of times per day, which means we are constantly mentally engaged in something. The continuous context switching uses up mental and emotional energy, and we don&#39;t even realise it until it&#39;s too late. Burn out, depression and a laundry list of other mental health issues can arise.&lt;br /&gt;
&lt;br /&gt;
Worst of all, we have conditioned ourselves to actively seek out those distractions. We have developed an anxiety about NOT having things to engage with.&lt;br /&gt;
&lt;br /&gt;
Our brains did not evolve to be in constant stimulation mode, and this is really effecting our mental health. Imagine a body builder who only works out their biceps. You&#39;re probably thinking that such a person would look unnatural. Constantly engaging our brains without rest is also NOT natural.&lt;br /&gt;
&lt;br /&gt;
What can we do about it?&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Nothing&lt;/h2&gt;
I have discovered that one of the most important things for my own mental health is to do nothing.&lt;br /&gt;
&lt;br /&gt;
I sat outside the other day with a coffee. I was going to grab my smartphone out of habit, but something inside me said &quot;I don&#39;t have the mental energy to look at that thing right now&quot;. So I sat there with my coffee. No smartphone, no laptop, no tablet, not even a book. Just me, a coffee and the sounds of the city.&lt;br /&gt;
&lt;br /&gt;
As I sat there and looked out into the sky and our small garden, I let my mind be in the moment. No engaging in problem solving, no active thinking. Just me and my surroundings. My mind was able to wonder, and when I started to think about something I would calmly bring my attention back to my surroundings... Just listening to the birds, leaves, trains and traffic.&lt;br /&gt;
&lt;br /&gt;
After sitting there for an 1hr, I felt mentally&amp;nbsp;calmer, less tense, and more collected. My brain had more focus and energy.&lt;br /&gt;
&lt;br /&gt;
I realised that for me, the most important thing I can do is to do nothing. To be more specific, to do nothing that would engage my mind. Some people find this state when they exercise, others meditate. The most important thing is putting aside some time to rest your mind.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Final Thoughts&lt;/h2&gt;
Our modern age is full of gadgets and communication tools which require constant active engagement.&amp;nbsp; As humans we did not evolve to be constantly stimulated. Our brains and emotions only have a certain capacity, and when depleted, mental health issues may arise. This is why it is important to tune out as often as possible.&lt;br /&gt;
&lt;br /&gt;
For me the most important thing I do is nothing. I sit with a coffee, no phone, no tablet, no laptop, not even a book. Some people will go for walks, others will actively meditate. Do what works for you to help your mind rest.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>https://anthonydotnet.blogspot.com/2020/04/my-number-one-mental-health-tip-is.html</link><author>noreply@blogger.com (Anthony)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8389762629078434869.post-8340233880683269455</guid><pubDate>Mon, 30 Mar 2020 10:30:00 +0000</pubDate><atom:updated>2020-03-30T11:31:57.741+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Leadership</category><category domain="http://www.blogger.com/atom/ns#">Mental Health</category><category domain="http://www.blogger.com/atom/ns#">Processes</category><category domain="http://www.blogger.com/atom/ns#">Project Management</category><title>Remote Working - The Most Important Meetings</title><description>In this article I want to talk about some meetings which I hope every company will be running each week.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
The Monday Kickoff&lt;/h2&gt;
In an office setting, I would only interact with a few people in my department each week. Sometimes entire weeks go by and I would not have interacted with a couple of the strategists or designers. But in an office setting I can still see their faces at their desks. I know that they exist, and what they do. When your entire department is remote, you have lost that simple human connection of seeing someone&#39;s face. This is why the Monday morning kickoff is so important.&lt;br /&gt;
&lt;br /&gt;
The Monday morning kick off meeting is the most important meeting of the week. I&#39;m not just talking about setting weekly priorities and getting status updates. I&#39;m not talking about everyone seeing what everyone is doing either. I&#39;m talking about seeing all the faces in your department. It&#39;s about having that human connection. For some people, it will be the only time in the week where you will actually see other people in your department.&lt;br /&gt;
&lt;br /&gt;
If your department workflow allows it, I would recommend having another check-in point in addition to the Monday kickoff. For example, some companies might want to hold a status meeting on Monday, Wednesday, and Friday. These are natural intervals which are not very intrusive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Daily Project Stand-up&lt;/h2&gt;
Seeing all of your teammates each day is very important. It&#39;s not good enough to just send them a message on a Slack channel. Seeing a person on video helps keep people connected in a human way.&lt;br /&gt;
&lt;br /&gt;
Each team in your department should have a video call each day. Some teams will want this at 9am, while others prefer another time of the day. It&#39;s totally ok to have a daily project at 5pm. Just ensure&amp;nbsp;that this daily call is held at the same time every day, everyone attends, and everyone gets a chance to speak.&lt;br /&gt;
&lt;br /&gt;
In a Scrum team, we time-box this to 15mins. It is simply a quick check in so that people can flag any issues for the day. There is typically no need to go beyond 15mins.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Friday Round-off&lt;/h2&gt;
When we are in a physical office, I typically see this starting around 3pm or 4pm (depending on your team/organisation). People tend to become a little more relaxed and chatty. This is the team bonding over the successes and challenges of the week. People ask what they are doing on the weekend. So rounding off the week is a ritual of comradeship.&lt;br /&gt;
&lt;br /&gt;
Human interaction (seeing faces) is really important, and we all crave it in all different ways. So my recommendation is do have a Friday Round-off video call.&lt;br /&gt;
&lt;br /&gt;
Last week, all the developers had an end of week Zoom call. Most of us had not seen each other all week (let alone chatted),&amp;nbsp;so this was a great opportunity to just catch up and chat about things. This is an opportunity to actually interact with people who you normally don&#39;t see.&lt;br /&gt;
&lt;br /&gt;
This meeting doesn&#39;t have to be the entire department. It totally depends on you. It just needs to be social, and is meant to simulate your Friday afternoon casual chats. You may even decide to do something like a&amp;nbsp;&lt;a href=&quot;https://umbraco.com/blog/funkyumbrafridaybar/&quot; target=&quot;_blank&quot;&gt;Friday Bar&lt;/a&gt;. It&#39;s a great global Umbraco community Friday event.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Final Thoughts&lt;/h2&gt;
Remote teams need rituals to facilitate human interaction. I recommend a Monday Kickoff, Daily Check-ins/Stand-ups, and Friday Round-off. These meetings are not meant to be just for status updates (although still very important). These meetings are a chance for your teams to see each others faces and have human interaction.&lt;br /&gt;
&lt;br /&gt;
I hope you find this article useful, and I highly recommend you introduce these video calls in your remote teams.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>https://anthonydotnet.blogspot.com/2020/03/remote-working-most-important-meetings.html</link><author>noreply@blogger.com (Anthony)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8389762629078434869.post-1516188574146284779</guid><pubDate>Sun, 29 Mar 2020 17:42:00 +0000</pubDate><atom:updated>2020-03-30T11:30:47.545+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Agile</category><category domain="http://www.blogger.com/atom/ns#">Leadership</category><category domain="http://www.blogger.com/atom/ns#">Mental Health</category><category domain="http://www.blogger.com/atom/ns#">Processes</category><category domain="http://www.blogger.com/atom/ns#">Project Management</category><title>Project Management Methodologies - Agile or Waterfall?</title><description>When it comes to project methodologies, the answer is not as simple as just doing Agile or Waterfall. It often really depends on the project, the type of work, the stakeholder, and the types of people in the team.&lt;br /&gt;
&lt;br /&gt;
There is one word which really gets under my skin and that is “Wa-gile”. There are companies who say that they are Wa-gile. It seems that this means that they have adopted some of the terminology, but have not bothered to read or understand the agile manifesto. So they use the terminology but not the practices.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;h2&gt;
Waterfall - What is it good for?&lt;/h2&gt;
&lt;div&gt;
The type of work and the stakeholder may necessitate doing things in a Waterfall fashion.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
If you are working with design jobs (no development) they go from scoping to concept, to versions, to final sign-off. These types of projects are very much Waterfall by nature. You can however make them more efficient by reducing documentation in favour of &quot;versions&quot;. In design projects you will typically go back and forth with multiple versions anyway. So there&#39;s little value trying to document every design element before you even do a mockup.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Government projects also tend to be very prescriptive, and front-loaded with specifications. Therefore Waterfall is quite common even with technology builds. This is a scenario where the stakeholder basically forces the start of the project to run in a certain way.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;
Sneaking In Agile&lt;/h2&gt;
&lt;div&gt;
In software development, running an entire project in Waterfall often leads to disaster. The projects over run, and the tail end of the project and drag on longer than the original project. Fear not though...&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
It&#39;s totally ok to have a front-loaded Waterfall project, because you can still run a Waterfall project in an Agile way. Some clever stakeholder hand-holding may allow you sneak in some agile principles to help the project run smoother.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Ways to sneak in some Agile&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Reduce the word length of any documentation in exchange for diagrams, and external links to definitions &amp;amp; other documentation&lt;/li&gt;
&lt;li&gt;Do sprints during the build&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Define a tangible sprint goal&lt;/li&gt;
&lt;li&gt;Each sprint must deliver a &quot;done&quot; increment of the product&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Demo to the client as often as possible&lt;/li&gt;
&lt;li&gt;Ask for frequent check-in points&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;You can even call these status meetings&lt;/li&gt;
&lt;li&gt;Tell the client: Even though things are heavily scoped, there are always some stakeholders who wont like something at the 11th hour, so we want to try to be proactive so the project doesn&#39;t over run&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div&gt;
If you can’t get the stakeholders time, then ask for someone to be in their place. If there is total resistance from anyone on the stakeholders side to be engaged in the project then I would suggest that you nominate a person in your organisation to be a surrogate stakeholder. This person would try to understand the stakeholder’s motivations.&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Hopefully you can see that even though a Waterfall project is very front-loaded, internally you can actually have a few rituals in place to run it in an Agile way.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;
Final Thoughts&lt;/h2&gt;
&lt;div&gt;
I hope I have shown you that it&#39;s not always as simple as Waterfall vs Agile. Waterfall is ok for some types of work, and sometimes the stakeholder (eg. Government departments) forces this on the project team. In software development this can be a disaster, so in my opinion it is really important to add Agile principles into the project. You can still have a Waterfall project, while using Agile principles.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>https://anthonydotnet.blogspot.com/2020/03/project-management-methodologies-agile.html</link><author>noreply@blogger.com (Anthony)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8389762629078434869.post-6360894876736442391</guid><pubDate>Sun, 29 Mar 2020 12:40:00 +0000</pubDate><atom:updated>2020-03-31T20:47:14.341+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Leadership</category><category domain="http://www.blogger.com/atom/ns#">Mental Health</category><category domain="http://www.blogger.com/atom/ns#">Processes</category><title>COVID-19 Social Distancing Is Bringing People Closer</title><description>This sounds strange, but I think at some level you probably already get what I mean.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Working From Home&lt;/h2&gt;
It has only been 2 weeks since the UK was told to work form home. Up until 2 weeks ago, many companies were afraid of letting people work remotely. They thought that people would be less connected and less productive. From what I have seen and heard, nothing could be further from the truth.&lt;br /&gt;
&lt;br /&gt;
The reality is that everyone knows this is is a tough economic time. People know that their jobs are on the line if the company fails, so I have seen a focus and determination to succeed and be productive.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Why were people distant before?&lt;/h2&gt;
In my own personal experience, it&#39;s super awkward when 2 people are at the coffee machine and not they don&#39;t even say a word to each other. We may work on the same floor but I can&#39;t remember your name or even if I&#39;ve met you. We&#39;re both probably thinking: I&#39;m not being rude. I just don&#39;t want to embarrass myself by asking your name again. There may have previously been an awkward encounter which was nobody&#39;s fault, but it&#39;s just easier to just say nothing and then get out of there really quickly. I&#39;m sure everyone has had this situation before.&lt;br /&gt;
&lt;br /&gt;
If you are in a big company, there are people who&#39;s names you don&#39;t know, and people you have never talked to. There may even be a person who you actively avoid because of a disagreement in a meeting one time. Before social distancing, we were already distant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
How are we closer?&lt;/h2&gt;
Humans need social contact. We crave it so much that we develop unconscious habits (some healthy, some unhealthy) to get some sort of interaction.&lt;br /&gt;
&lt;br /&gt;
My personal observations...&lt;br /&gt;
It has only been a couple weeks, but it seems that the world has embraced online communication tools such as Slack, Zoom, and others.&lt;br /&gt;
&lt;br /&gt;
Slack channels are noisy with chatter and banter. Zoom calls somehow feel more engaging and productive than previous real life meetings. Does anyone else have that feeling? I guess it is a combination of the 40min time limit (don&#39;t fluff... just get to the point), and also video conferencing etiquette. No one is in the drivers seat on a Zoom call. We&#39;re all driving.&lt;br /&gt;
&lt;br /&gt;
In general, conversations seem to be more meaningful and deeper now. People seem to be more calm, open and personal. This is partially because people feel more relaxed in their homes, but also hugely because we all crave human interaction. The social distancing seems to be resulting in people being nicer to each other online. Has anyone noticed this?&lt;br /&gt;
&lt;br /&gt;
I find myself Slacking and Zooming to colleagues who I have never met before.&amp;nbsp; There is a sense of solidarity within my department, and the company as a whole. For the first time in my lifetime, the world is united against a common foe, and this is bringing people together. Many of you will even notice where there was once some &quot;professional friction&quot;, there is now the start of camaraderie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Final Thoughts&lt;/h2&gt;
Humans are meant to be social. We crave interaction, and develop habits (healthy &amp;amp; unhealthy) to facilitate interactions. Social distancing is a strange situation, and means that people are forming new habits of communication to stay connected. That social &quot;in person&quot; awkwardness at the coffee machine seems like it is dissolving. People are forming bonds which they would not have formed before. There is some real camaraderie forming because as humans we crave it.&lt;br /&gt;
&lt;br /&gt;
It is a cliche, but distance does make the heart grow fonder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>https://anthonydotnet.blogspot.com/2020/03/covid-19-social-distancing-is-bringing.html</link><author>noreply@blogger.com (Anthony)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8389762629078434869.post-2762703103051286707</guid><pubDate>Thu, 19 Mar 2020 18:31:00 +0000</pubDate><atom:updated>2020-03-30T11:30:47.550+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Leadership</category><category domain="http://www.blogger.com/atom/ns#">Mental Health</category><category domain="http://www.blogger.com/atom/ns#">Processes</category><category domain="http://www.blogger.com/atom/ns#">Project Management</category><title>COVID-19 Remote Working Communication Tools</title><description>I&#39;ve been using Slack and Zoom for years, and I&#39;m glad to see people embracing these tools.&lt;br /&gt;
&lt;br /&gt;
As many companies have been moving their staff to work from home, there is some confusion about what people should use Slack and Zoom for. They can feel like &quot;yet another tool&quot; to use. So I thought it would be helpful to outline how I have been using Slack and Zoom to keep remote workers &amp;amp; teams productive.&lt;br /&gt;
&lt;br /&gt;
There are no hard rules when it comes to communication. Keep your ear to the ground, and do what is best for your organisation. Not all of this will be applicable for everyone. It&#39;s just some food for thought.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Slack&lt;/h2&gt;
Hopefully if you are reading this article you know what &lt;a href=&quot;http://slack.com/&quot; target=&quot;_blank&quot;&gt;Slack&lt;/a&gt; is.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Department Channels&lt;/h3&gt;
&lt;div&gt;
We have channels for disciplines, and also cross-interest channels for social events and learning.&lt;br /&gt;
&lt;br /&gt;
We prefix our department/discipline channels with &quot;team&quot; so that it is obvious which channels are for teams. Non-department channels don&#39;t need a prefix, as they are open.&lt;br /&gt;
&lt;br /&gt;
Here is an example of some of our Digital Experience (DX) channels:&amp;nbsp;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;team_pm&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Project Managers&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;team_development&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Developers&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;team_dx&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Entire department&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;team_digital_design&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;UI &amp;amp; UX Designers&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;team_dx_social&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Only for social events etc&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;tech_links&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Learning and sharing knowledge&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br /&gt;
Note: As a company we have chosen to use underscores for our channel names. It doesn&#39;t matter if you use underscores or hyphens. What ever your organisation is comfortable with is the thing that matters.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Project Channels&lt;/h3&gt;
We have channels for each client. If a client is Slack-savvy, then we invite them to communicate with us on a dedicated client channel. The build/development team have a lot of chatter about implementation and day-to-day issues, so we have another channel so we do not clutter any other channel.&lt;br /&gt;
&lt;br /&gt;
One of our clients is ArcelorMittal, so I&#39;ll use them as an example:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;arcelormittal&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;All internal project chatter&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;arcelormittal_client&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Shared with the client&lt;/li&gt;
&lt;li&gt;Reduces email chatter&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;arcelormittal_dev&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Build team chatter&lt;/li&gt;
&lt;li&gt;The Scrum Master is also part of this channel, but doesnt have to be&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;h3&gt;
Private Channels&lt;/h3&gt;
&lt;div&gt;
Generally I think that private channels should be avoided, except for a few scenarios:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Management&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Sensitive conversations regarding the organisation should sometimes be private&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Human Resources&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Internal HR discussions about staff should be confidential&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;A super secret surprise&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;eg. Organising a birthday present&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div&gt;
People should be encouraged to be allowed to drop into public channels, then drop out. Think of it like walking into an open office to ask a question to the room.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h4&gt;
Direct Messages&lt;/h4&gt;
Direct messages are a great way to reduce channel clutter. We often broadcast a message in a channel, then decide to move a conversation to direct messages or a call.&lt;br /&gt;
&lt;br /&gt;
Direct messages with multiple people is also possible, however I prefer to avoid this scenario. If you do need to have a direct message with multiple people, then keep it to 2 or 3 people. Otherwise it might be better to create a channel temporarily. Ideally just have a call with them!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Calls On Slack&lt;/h3&gt;
This is one of Slack&#39;s best features! I personally use the call feature when I need to get someone&#39;s attention. It is like calling a person&#39;s mobile. If they are at their computer then they cannot ignore it :)&lt;br /&gt;
&lt;br /&gt;
Slack calls are great for quick face to face discussions. Use Slack calls so you don&#39;t have to type as much. It is far easier to talk than to type. Another fantastic thing about Slack Calls is that you can add other people during the call.&lt;br /&gt;
&lt;br /&gt;
We often screenshare Word docs and Powerpoint slides while on Slack calls. Think of it like being in a room with a big screen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Channel calls are also possible, however if you are going to have more than 3 people, then we opt for Zoom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Zoom&lt;/h2&gt;
&lt;a href=&quot;http://zoom.us/&quot; target=&quot;_blank&quot;&gt;Zoom &lt;/a&gt;is by far the best video conferencing tool I have ever used. It is intuitive, and just works. Best of all, there is no one in the driver&#39;s seat. Everyone is the driver, and it feels so collaborative. Zoom allows you to have up to 100 participants on the free plan, for 40min calls. That&#39;s insanely good!&lt;br /&gt;
&lt;br /&gt;
Zoom&#39;s enterprise plan allows you to have 1000 participants!&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Client Calls&lt;/h3&gt;
We try to get clients to use Zoom so we can have a real video call with them.&lt;br /&gt;
&lt;br /&gt;
Zoom invitations also include standard phone number. This is fantastic for people people who do not have access to a computer or are unable to do video calls. They can just dial in, while everyone else can still use video on the call.&lt;br /&gt;
&lt;br /&gt;
It should go without saying that Zoom&#39;s screen sharing is industry leading. We try to screenshare with our clients so we can go through Word docs, do demos, get feedback on designs, and anything else that you can think of.&lt;br /&gt;
&lt;br /&gt;
The other great thing about Zoom is the recording feature.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Internal Calls / Meetings&lt;/h3&gt;
Zoom is fantastic for internal meetings that require more than 3 people.&lt;br /&gt;
&lt;br /&gt;
If you are using the free version, then you are limited to a 40 minute. If your company typically has 1hr meetings (or longer), then this will force you to be more productive. Of course, you can always just rejoin the call if you reach your 40min limit. However, most people will want to start wrapping up the call when they see the 10min reminder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Final Thoughts&lt;/h2&gt;
As you can see, we use Slack and Zoom for different scenarios.&lt;br /&gt;
&lt;br /&gt;
Slack is a great collaboration tool, and it&#39;s call feature is fantastic for quick conversations. Think of Slack as a day to day collaboration tool to increase face to face interaction. When it comes to client calls or regular internal meetings, we use Zoom. Think of Zoom as a meeting/conferencing tool.&lt;br /&gt;
&lt;br /&gt;
Remember, that not everything here will be applicable to everyone. How you use these tools will be defined by what is best for your organisation.&lt;br /&gt;
&lt;br /&gt;
I hope this article has been helpful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>https://anthonydotnet.blogspot.com/2020/03/covid-19-remote-working-communication.html</link><author>noreply@blogger.com (Anthony)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8389762629078434869.post-1302223694738486056</guid><pubDate>Mon, 16 Mar 2020 23:07:00 +0000</pubDate><atom:updated>2020-03-30T11:30:47.535+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Leadership</category><category domain="http://www.blogger.com/atom/ns#">Mental Health</category><category domain="http://www.blogger.com/atom/ns#">Processes</category><category domain="http://www.blogger.com/atom/ns#">Project Management</category><title>COVID-19 Remote Working Check List</title><description>In my previous &lt;a href=&quot;https://anthonydotnet.blogspot.com/2020/03/covid-19-corona-virus-is-opportunity.html&quot; target=&quot;_blank&quot;&gt;article&lt;/a&gt;&amp;nbsp;I hopefully convinced you that&amp;nbsp;COVID-19 corona virus is an opportunity for businesses to modernise and improve processes. In this article I would like to give you some suggestions for how you can help remote working be more efficient and effective.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
People Before Process&lt;/h2&gt;
While this can be a time for rapid change for many companies, you cant just throw shit against the wall to see what sticks. You need to do things intelligently, and most of all, listen to your employees. Don&#39;t just tell them what your policies and processes will be! You would be very surprised how different people work (and interact) with each other when they are remote.&lt;br /&gt;
&lt;br /&gt;
Working from home isn&#39;t for most people. A feeling of isolation and even depression may quickly settle in. If you are in a leadership position, then you must be ever diligent to contact your remote staff members to give them human support they need to cope work remotely.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
My Suggested Routines For Remote Working&lt;/h2&gt;
&lt;div&gt;
When I was Head of Development at The Cogworks I establish processes to work effectively when we had people in 5 locations over 3 countries, with 2 satellite offices. Many of the processes I introduced were to tackle issues of isolation.&lt;br /&gt;
&lt;br /&gt;
Here are some quick wins which I hope will help your staff adapt to working from home.&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Ensure everyone has a working (decent quality) webcam and microphone for &lt;u&gt;video&lt;/u&gt; calls&lt;/li&gt;
&lt;li&gt;Hold a Monday morning &lt;u&gt;video&lt;/u&gt; call to kick start the week for the entire team (or even department)&lt;/li&gt;
&lt;li&gt;Hold a weekday morning &quot;standup&quot; &lt;u&gt;video&lt;/u&gt; call every day for the entire team (or even department)&lt;/li&gt;
&lt;li&gt;Hold a weekly retrospective meeting every week (eg. Friday 10am) to discuss:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;What works well for them while working from home&lt;/li&gt;
&lt;li&gt;What they want to improve to help them work from home&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Encourage people to &lt;u&gt;video&lt;/u&gt; call each other&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Don&#39;t just write emails or Slack messages&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Seeing a person&#39;s face is very important&lt;/b&gt;. Ensure people have webcams for &lt;u&gt;video&lt;/u&gt;!!!&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Have everyone send a group message to let others know when they:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Start work&lt;/li&gt;
&lt;li&gt;Go for lunch&lt;/li&gt;
&lt;li&gt;Get back from lunch&lt;/li&gt;
&lt;li&gt;Finish work&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Consider a permanent zoom or slack &lt;u&gt;video&lt;/u&gt; call for your team so everyone can real see faces all day&lt;/li&gt;
&lt;li&gt;Encourage people to ask colleagues for feedback on their work&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Very easy if you have creative workers&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Hold a show &amp;amp; tell session with screen sharing &amp;amp; &lt;u&gt;video&lt;/u&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;At Cogworks we initially called this &quot;Code and Tell&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Encourage staff to proactively check in each other via &lt;u&gt;video&lt;/u&gt; calls&lt;/li&gt;
&lt;li&gt;Encourage people to have virtual &lt;u&gt;video&lt;/u&gt; lunch together&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Tools For Remote Productivity&lt;/h2&gt;
In terms of tools, here is my goto list for remote productivity. Not all of these are suitable for every company, but I hope they give you an idea of the possibilities of online tools to make your job easier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Day to Day Communication&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://slack.com/&quot; target=&quot;_blank&quot;&gt;Slack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://zoom.us/&quot; target=&quot;_blank&quot;&gt;Zoom&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;
Resourcing &amp;amp; Scheduling&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.google.com/spreadsheets/u/0/&quot; target=&quot;_blank&quot;&gt;Google Sheets&amp;nbsp;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://onedrive.com/&quot; target=&quot;_blank&quot;&gt;Shared OneDrive Excel Sheet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.float.com/&quot; target=&quot;_blank&quot;&gt;Float&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://resourceguruapp.com/&quot; target=&quot;_blank&quot;&gt;Resource Guru&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Project Scoping &amp;amp; Documentation&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://basecamp.com/&quot; target=&quot;_blank&quot;&gt;Basecamp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://storiesonboard.com/&quot; target=&quot;_blank&quot;&gt;Stories On Board&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.google.com/document/u/0/&quot; target=&quot;_blank&quot;&gt;Google Docs&amp;nbsp;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://onedrive.com/&quot; target=&quot;_blank&quot;&gt;Shared OneDrive Word Doc&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Day To Day Task Management&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://trello.com/&quot; target=&quot;_blank&quot;&gt;Trello&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://asana.com/&quot; target=&quot;_blank&quot;&gt;Asana&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://kanbanize.com/&quot; target=&quot;_blank&quot;&gt;Kanbanize&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.atlassian.com/&quot; target=&quot;_blank&quot;&gt;Jira&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://monday.com/&quot; target=&quot;_blank&quot;&gt;Monday&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;h2&gt;
Final Thoughts&lt;/h2&gt;
&lt;div&gt;
Remote working is definitely not for everyone. During this time of remote working en mass, you will need to be very diligent when it comes to your staff wellbeing. Hopefully this article has given you some ideas.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
The routines listed in this article do actually work. I hope you really do give at least some of them a try.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;margin: 0px;&quot;&gt;
&lt;/div&gt;
</description><link>https://anthonydotnet.blogspot.com/2020/03/covid-19-remote-working-check-list.html</link><author>noreply@blogger.com (Anthony)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8389762629078434869.post-3340936761174503895</guid><pubDate>Mon, 16 Mar 2020 22:39:00 +0000</pubDate><atom:updated>2020-03-17T12:10:41.582+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Leadership</category><category domain="http://www.blogger.com/atom/ns#">Processes</category><category domain="http://www.blogger.com/atom/ns#">Project Management</category><title>COVID-19 Corona Virus Is An Opportunity For Businesses</title><description>In the last couple weeks, I have been privy to various conversations at my company regarding the realities of the COVID-19 Corona Virus on the business. All scenarios have been put forward, and the preparedness of the company has been centre to all discussions. The possibility (now a reality) of people working form home en mass means that the 200 person company is facing one of its biggest challenges in its 30 year history.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See my next &lt;a href=&quot;https://anthonydotnet.blogspot.com/2020/03/covid-19-remote-working-check-list.html&quot; target=&quot;_blank&quot;&gt;article&lt;/a&gt; for tips on helping remote working be more effective.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
&lt;/h2&gt;
&lt;h2&gt;
Why I&#39;m Not Worried&lt;/h2&gt;
When I was Head of Development at The Cogworks I helped establish processes to work effectively when we had people in 5 locations over 3 countries, with 2 satellite offices. At times it truly felt like a remote-first agency, and I really wanted to see that at Radley Yeldar in a larger scale.&lt;br /&gt;
&lt;br /&gt;
In the past 8-10 months the Digital Department at Radley Yeldar has been organically (with a few nudges) ramping up it&#39;s remote working processes. People have been working from home far more often. This has been helped largly by great &lt;a href=&quot;https://slack.com/&quot; target=&quot;_blank&quot;&gt;Slack&lt;/a&gt; habits, which has resulted in the Digital Department introducing Slack processes for the entire company.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0mLn7t1-SqdsfUWCixXgI8-EY_TEyxnjvMzLV4ZtR3q_WHmfp8w0xqxjVU1d1Jzn9FouGHm26FQnYVABS-AE7iNinBBfSSaxRUw6q6hwHy6tvr26eZkgTrdemIO18Z9BGm_joPkimi4Q/s1600/Screenshot+2020-03-16+at+21.43.14.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;500&quot; data-original-width=&quot;1062&quot; height=&quot;150&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0mLn7t1-SqdsfUWCixXgI8-EY_TEyxnjvMzLV4ZtR3q_WHmfp8w0xqxjVU1d1Jzn9FouGHm26FQnYVABS-AE7iNinBBfSSaxRUw6q6hwHy6tvr26eZkgTrdemIO18Z9BGm_joPkimi4Q/s320/Screenshot+2020-03-16+at+21.43.14.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
Another great communication tool has been &lt;a href=&quot;https://zoom.us/&quot; target=&quot;_blank&quot;&gt;Zoom&lt;/a&gt;, and it has overtaken all other forms of conferencing choices with our clients. In fact, one of our clients was already using Zoom internally, and they were only using traditional conference calls and Skype for Business because they thought they had to.&lt;br /&gt;
&lt;br /&gt;
In terms of projects and planning, &lt;a href=&quot;https://storiesonboard.com/&quot; target=&quot;_blank&quot;&gt;Stories on Board&lt;/a&gt; integration with &lt;a href=&quot;https://jira.atlassian.com/&quot; target=&quot;_blank&quot;&gt;Jira&lt;/a&gt; has been a true success story with our &lt;a href=&quot;https://scrum.org/&quot; target=&quot;_blank&quot;&gt;Scrum&lt;/a&gt; practices, we are using &lt;a href=&quot;https://trello.com/&quot; target=&quot;_blank&quot;&gt;Trello&lt;/a&gt; more often, and we even started using &lt;a href=&quot;https://onedrive.com/&quot; target=&quot;_blank&quot;&gt;OneDrive&lt;/a&gt; for shared documents.&lt;br /&gt;
&lt;br /&gt;
So in the last couple weeks, while the rest of the company was trying to ensure that working from home was going to be productive, I have to be honest and say that I have been mostly blasé about the &quot;work from home&quot; situation.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://media.giphy.com/media/3oAt2dA6LxMkRrGc0g/source.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;468&quot; data-original-width=&quot;480&quot; height=&quot;195&quot; src=&quot;https://media.giphy.com/media/3oAt2dA6LxMkRrGc0g/source.gif&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Why Is COVID-19 An Opportunity For Businesses?&lt;/h2&gt;
In my time, I have worked with many companies. I have seen bleeding edge adoption of new technologies and processes, dinosaur companies where they were too afraid to change anything, and everything in between.&lt;br /&gt;
&lt;br /&gt;
As today, the UK Government has recommended that everyone who can work from home should do so. While this is an enormous challenge for most companies, it is a fantastic opportunity to modernise with conviction. For those of you in companies which have been slow to adopt working from home policies, tools, and processes, this is an opportunity for you to help your company modernise.&lt;br /&gt;
&lt;br /&gt;
Adapt or perish! What might have taken years of unbearably slow incremental changes is now literally happening within a matter of weeks. This is an exciting time for innovation and ideas. Companies now have the motivation to try new things, get real input from their employees, and create meaningful actions to help people work from home more effectively.&lt;br /&gt;
&lt;br /&gt;
After the dust settles, my hope is that most businesses will hold on to the new processes, and allow people to work from home more often. This could be a catalyst for remote working becoming mainstream.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Remember The People&lt;/h2&gt;
While this is a great opportunity to modernise, you need to be aware that you have real human people working for you. Working from home is definitely not right for most people, so you need to be aware that isolation and depression can settle in very quickly. You need to actively encourage communication with all of your team, and have routines which facilitate this.&lt;br /&gt;
&lt;br /&gt;
I outline some tips in my next &lt;a href=&quot;https://anthonydotnet.blogspot.com/2020/03/covid-19-remote-working-check-list.html&quot; target=&quot;_blank&quot;&gt;article&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Final Thoughts&lt;/h2&gt;
I hope that I have given a positive spin on this ordeal. This doesn&#39;t need to be a burden. Businesses truly have a great opportunity to modernise and become more efficient. With this challenge, please remember that the happiness of your staff is the most important thing. You need to help them adapt to these rapid changes.&lt;br /&gt;
&lt;br /&gt;
In my next&amp;nbsp;&lt;a href=&quot;https://anthonydotnet.blogspot.com/2020/03/covid-19-remote-working-check-list.html&quot; target=&quot;_blank&quot;&gt;article&lt;/a&gt;, I outline some suggestions to help remote working more efficient.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>https://anthonydotnet.blogspot.com/2020/03/covid-19-corona-virus-is-opportunity.html</link><author>noreply@blogger.com (Anthony)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0mLn7t1-SqdsfUWCixXgI8-EY_TEyxnjvMzLV4ZtR3q_WHmfp8w0xqxjVU1d1Jzn9FouGHm26FQnYVABS-AE7iNinBBfSSaxRUw6q6hwHy6tvr26eZkgTrdemIO18Z9BGm_joPkimi4Q/s72-c/Screenshot+2020-03-16+at+21.43.14.png" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8389762629078434869.post-7478095777341318993</guid><pubDate>Sat, 29 Feb 2020 16:51:00 +0000</pubDate><atom:updated>2020-03-30T21:04:15.479+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Review</category><title>Transferwise Borderless Account Review</title><description>&lt;h2&gt;
Transferwise Borderless Account Review&lt;/h2&gt;
I&#39;ve been using &lt;a href=&quot;http://transferwise.com/&quot; target=&quot;_blank&quot;&gt;Transferwise&lt;/a&gt; for several years. Recently they created a new product called &quot;Borderless Account&quot;, which allows you to hold money in various currencies. You can essentially use Transferwise as a bank, and have many &quot;Balances&quot;, each one accepting a different major currency. You are given a real bank account number with real sort/routing code etc.&lt;br /&gt;
&lt;br /&gt;
It has an optional debit card which can be used overseas without the usual big bank charges.&lt;br /&gt;
&lt;br /&gt;
I often send money back to Australia, so I thought that I would give it a try.&lt;br /&gt;
&lt;h2&gt;
What Is It For?&lt;/h2&gt;
If you are a person who has ties to more than one country, then you probably have bank account in those countries. This can be a pain. If you need to accept money in another currency, then up until now, one of the only easy ways was via Paypal. However Paypal transfers are quite expensive, and are not &quot;real&quot; bank transfers. The other party also needs a Paypal account. This is where Transferwise saw an opportunity.&lt;br /&gt;
&lt;br /&gt;
The use case is for accepting money in another currency, using real bank accounts via a single portal. The crazy thing is that any person can open up a real bank account, with real local sort/routing banking codes for that country. I was tempted to open an account in other currencies just because!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Opening a Balance&lt;/h2&gt;
If you are already a Transferwise customer, then opening a &quot;Balance&quot; is as easy as selecting a currency, then a couple confirmation clicks. They really nailed the user experience here. It was frighteningly easy to open a Balance in GBP.&lt;br /&gt;
&lt;br /&gt;
One important thing to note is that they only give you your account number and sort/routing number AFTER to send some money to it yourself.&amp;nbsp; I sent £20 to the standard Transferwise account, with my user number in the description. My account and sort code were instantly available. So this meant I could send myself some GBP.&lt;br /&gt;
&lt;br /&gt;
I went ahead and sent £10 to my new bank account via it&#39;s sort code and account number. It arrived within seconds!&lt;br /&gt;
&lt;br /&gt;
The entire process was:&lt;br /&gt;
1. Open the account - Select a currency, and click a couple confirmations&lt;br /&gt;
2. Get my sort code &amp;amp; account number - Send £20 to the standard Transferwise account (with my customer reference ID in the description)&lt;br /&gt;
3. Test my new account - Send any amount to the new account&lt;br /&gt;
&lt;br /&gt;
It took only a few minutes in total.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Sending Money&lt;/h2&gt;
Sending money from a Balance requires the normal Transferwise flow, until you get to the end.&lt;br /&gt;
&lt;br /&gt;
I decided to send 10 AUD, and it was super simple. But there is a catch...&lt;br /&gt;
&lt;br /&gt;
Take a look at the fees (see image below).&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRiS0j6kH_4K3Jgf9JUJwqCNaTyl5SAaDXL7An0h5fZGqI8uIhuGxE1Rbq3_NkE4_vno58xh9q4m6qNdKcVFj0uXxiI4BposedIv7fJ35XIQAl1CRphHDd3ZDu5bvOuH4AR65kFM454YA/s1600/Screenshot+2020-02-29+at+16.28.39.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRiS0j6kH_4K3Jgf9JUJwqCNaTyl5SAaDXL7An0h5fZGqI8uIhuGxE1Rbq3_NkE4_vno58xh9q4m6qNdKcVFj0uXxiI4BposedIv7fJ35XIQAl1CRphHDd3ZDu5bvOuH4AR65kFM454YA/s640/Screenshot+2020-02-29+at+16.28.39.png&quot; width=&quot;512&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The fee incurred when sending from the Balance is higher than ALL the other types of ways to complete the transaction. It&#39;s even more expensive than using a credit card. This seems crazy, considering all the other services require 3rd party companies. I wonder how these fees add up when transferring larger amounts.&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: small; font-weight: 400;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: small; font-weight: 400;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h2&gt;
Features I Want To See&lt;/h2&gt;
I like to automate my life where possible, so I would love to see the following:&lt;br /&gt;
1. Automatic scheduled exchange between Balances&lt;br /&gt;
2. Automatic scheduled exchange between Balances when the exchange rate reaches a desired threshold&lt;br /&gt;
3. Automatic transfer from a Balance to a 3rd party account, when the Balance reaches a threshold&lt;br /&gt;
&lt;br /&gt;
I did take a look at the &lt;a href=&quot;https://api-docs.transferwise.com/#borderless-accounts-convert-currencies&quot; target=&quot;_blank&quot;&gt;Transferwise API&lt;/a&gt;, and all of this is actually possible, with the possible exception of exchange rate notification. I might see about writing an Azure Function App to do all of this for me :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
&lt;/h2&gt;
&lt;h2&gt;
Final Thoughts&lt;/h2&gt;
&lt;div&gt;
Opening a &quot;Balance&quot; is frighteningly easy, and I was tempted to open up Balances in countries which I have never even been to. The addition of a debit card seems very useful as you don&#39;t get charged massive fees when overseas, however if you already have an account with Revolut, Monzo, Curve etc. then you might not care.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
There is a slight temptation to close all of my bank accounts, and just use Transferwise. However,&amp;nbsp; realistically, this seems reckless. No one knows what will happen to banks, Transferwise, and governments in the future, so I would rather spread my risk.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
There are a couple features which I&#39;m sure Transferwise have considered. Everything I can personally think of doing is available in their &lt;a href=&quot;https://api-docs.transferwise.com/#borderless-accounts-convert-currencies&quot; target=&quot;_blank&quot;&gt;API&lt;/a&gt; So I look forward to seeing this product evolve.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I hope you found this review helpful.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>https://anthonydotnet.blogspot.com/2020/02/transferwise-borderless-account-review.html</link><author>noreply@blogger.com (Anthony)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRiS0j6kH_4K3Jgf9JUJwqCNaTyl5SAaDXL7An0h5fZGqI8uIhuGxE1Rbq3_NkE4_vno58xh9q4m6qNdKcVFj0uXxiI4BposedIv7fJ35XIQAl1CRphHDd3ZDu5bvOuH4AR65kFM454YA/s72-c/Screenshot+2020-02-29+at+16.28.39.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8389762629078434869.post-5040207749707725791</guid><pubDate>Sat, 29 Feb 2020 15:33:00 +0000</pubDate><atom:updated>2020-03-01T15:33:17.273+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Leadership</category><category domain="http://www.blogger.com/atom/ns#">Processes</category><category domain="http://www.blogger.com/atom/ns#">Project Management</category><title>Good Managers Don&#39;t Hide Behind Timesheets</title><description>It&#39;s no secret that I have a hatred of timesheets. In many organisations/teams they simply do not give you the information that you think they do. This is exceptionally apparent when dealing with software/tech teams. See my previous post here:&amp;nbsp;&lt;a href=&quot;https://anthonydotnet.blogspot.com/2019/09/stop-using-timesheets.html&quot;&gt;https://anthonydotnet.blogspot.com/2019/09/stop-using-timesheets.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
In this article I will give a view regarding timesheets in organisations from a management perspective. I hope this doesn&#39;t ruffle too many feathers ;)&lt;br /&gt;
&lt;br /&gt;
Note: I am writing from the perspective of software/web development.&lt;br /&gt;
&lt;h2&gt;
Managers Don&#39;t Read Timesheets&lt;/h2&gt;
&lt;div&gt;
This might come as a shock to some people, but staff timesheets will almost never be viewed by their manager. There is a common belief that timesheets can tell you what your staff are actually spending their time on. If you subscribe to this belief, I hope this article will give you some food for thought:&lt;br /&gt;
&lt;a href=&quot;https://anthonydotnet.blogspot.com/2019/09/stop-using-timesheets.html&quot;&gt;https://anthonydotnet.blogspot.com/2019/09/stop-using-timesheets.html&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Perhaps there are some managers who decide to look at timesheets in the hope that they will try to understand a person&#39;s day, and how they spend their time. I&#39;m going to be very blunt and say that if a manager needs to do this, then they are not doing their job properly. Sorry, not sorry.&lt;br /&gt;
&lt;br /&gt;
A good manager will already know what their staff does, what they are working on, and how they feel. A good manager will periodically say hello, so that they can ask questions about the day/week/project. They make an effort to have some personal one-to-one time, and even ask other people about other staff members (directly or indirectly).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Managers Don&#39;t Know How To Approve Timesheets&lt;/h2&gt;
&lt;div&gt;
As a manager, I have been asked to approve people&#39;s timesheets. I will be totally honest and tell you that I often didn&#39;t even know what I was looking at. So in reality I just approve them all. Yes that&#39;s the truth.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Why? But what if they did their timesheet wrong?&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Simply put... I trust the people I work with - The people whom I am there to support. I&#39;m not a micromanager. Realistically, how the hell am I meant to know if my developers did their timesheet correctly? In fact, in my previous company we ended up eliminating them entirely.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
You may be thinking &quot;But how do we know if they were on billable work?&quot;&lt;br /&gt;
&lt;br /&gt;
See my previous post here:&amp;nbsp;&lt;a href=&quot;https://anthonydotnet.blogspot.com/2019/09/stop-using-timesheets.html&quot;&gt;https://anthonydotnet.blogspot.com/2019/09/stop-using-timesheets.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;h2&gt;
Managers Don&#39;t Use Timesheets To Track Effort&lt;/h2&gt;
&lt;/div&gt;
&lt;div&gt;
In my experience in leading teams, it is always obvious to me when developers work overtime. It comes out in conversations about their work. This is generally because they want to solve a problem or fix something that they broke. I also know that most developers typically do not track this time in any meaningful way. So, I also routinely ask developers if they have worked any overtime hours, then insist that they take some time off.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
From my perspective, there is one of the only positive uses of timesheets, which I have leveraged in the past. Some organisations need &quot;proof&quot; to justify why someone deserves more vacation time or higher pay. This is one way to give HR/higher manager that proof. In short, timesheets can be used as leverage to put forward a case for more time off, or more pay.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;h2&gt;
Final Thoughts&lt;/h2&gt;
&lt;/div&gt;
&lt;div&gt;
I hope this has been a little bit insightful for those of you who wonder what your managers are doing with your timesheets. For the managers out there, I hope that you agree with what I&#39;m saying. We don&#39;t need timesheets to help our staff. We only need interactions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>https://anthonydotnet.blogspot.com/2020/02/good-managers-dont-hide-behind.html</link><author>noreply@blogger.com (Anthony)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8389762629078434869.post-3036548230992725321</guid><pubDate>Sun, 26 Jan 2020 13:44:00 +0000</pubDate><atom:updated>2020-01-26T14:15:54.041+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Leadership</category><category domain="http://www.blogger.com/atom/ns#">Processes</category><category domain="http://www.blogger.com/atom/ns#">Project Management</category><title>Are Your Policies Hindering Profit?</title><description>&lt;br /&gt;
Many companies believe that working staff as hard as possible will get them the best result (profit). Nothing can be further from the truth. In fact, the wrong policies can result in habits and processes which are detrimental to people and the organisation.&lt;br /&gt;
&lt;br /&gt;
In this article I will discuss how your policies (or lack there of) might be hindering the profit of your organisation.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Productivity vs Utility&lt;/h2&gt;
As a manager, my main objective is to maximise the productivity of my staff. Many managers confuse productivity with utility. Let me explain...&lt;br /&gt;
&lt;br /&gt;
Many managers and organisations believe&amp;nbsp;that working staff as hard as possible will get them the best result. This is the idea that utilisation of people&#39;s time, at maximum load (&amp;amp; stress levels) will ensure that their output is at peak velocity. This is a fallacy, and actually results in quicker burnout, and reduced productivity over time.&lt;br /&gt;
&lt;br /&gt;
We are all familiar with the idiom &quot;The straw that broke the camel&#39;s back&quot;. You burned out the camel very early, so it could no longer work. A better approach would have been to only half load the camel so that it can work indefinitely.&lt;br /&gt;
&lt;br /&gt;
Simple process changes can result in reduction of load, while also increasing the team&#39;s overall output. So, my advice to all managers is to seek to reduce load (utilisation) of your staff, while maintaining/increasing output.&lt;br /&gt;
&lt;br /&gt;
One easy way to start is to ask your staff: &quot;What can I do to help make your job easier?&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Overworking Hinders Profit&lt;/h2&gt;
Overworking your staff actually hinders profit in the medium to long term.&lt;br /&gt;
&lt;br /&gt;
When staff are overworked:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;More mistakes occur&lt;/li&gt;
&lt;li&gt;Quality of work reduces&lt;/li&gt;
&lt;li&gt;Velocity (productivity) is reduced&lt;/li&gt;
&lt;li&gt;More sick days are incurred&lt;/li&gt;
&lt;li&gt;Morale can be affected (hence wider spread reduced productivity)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
These are known facts. Falling quality &amp;amp; productivity result in reduction in your overall profit. Moreover, the more you overwork your staff, the higher the likelihood that they will leave the company.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Logically, it is important to have HR policies which ensure that staff members are not overworked. One way to measure this is by a quick survey where staff rate the work-life balance (eg. 1-5). If your organisation rates lower than 4/5, then it is highly likely that your staff are overworked, and your profit is suffering.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;
Staff Churn Reduces Quality&lt;/h2&gt;
&lt;div&gt;
It is very difficult to maintain quality when good staff leave. The cost of good staff leaving can be very hard to measure. I will attempt to explain...&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
When a good staff member leaves a company, they take with them a lot of knowledge and good habits. The remaining staff will often not operate as efficiently without that good example in house. They will often even develop suboptimal habits and processes because they do not have the experience or knowledge. Your quality and productivity are likely to fall. The greater the churn of good staff, the more pronounced this effect will be come.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Often good people leave due to frustrations with processes, being overworked, or even because they don&#39;t like their manager. The best thing you can do is look at why these people are leaving, and address the root causes.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;
Training New Staff&lt;/h2&gt;
When staff leave a company, the existing&amp;nbsp;staff need to train the newcomers. This reduces the productivity of the existing staff.&lt;br /&gt;
&lt;br /&gt;
Imagine the following scenario:&lt;br /&gt;
Alice is an existing staff member&lt;br /&gt;
Bob is a new staff member&lt;br /&gt;
&lt;br /&gt;
Since Alice needs to train &amp;amp; mentor Bob, her productivity will be reduced for at least 3-6 months (depending on many factors). In my experience, assuming Alice is a good mentor, her overall productivity would be reduced by at least 20%.&lt;br /&gt;
&lt;br /&gt;
Since Bob is new, his productivity will initially not be as high as Alice. In my experience you cannot expect more than 50% productivity from Bob for at least 3-6 months.&lt;br /&gt;
&lt;br /&gt;
Staff churn reduces productivity for existing staff for several months, while they help ramp up productivity of the newcomer. This is basically unavoidable. There are ways which you can help make the process smoother, however it is much better to address the root cause of why people are leaving in the first place.&lt;br /&gt;
&lt;br /&gt;
In IT it is common for people to change companies every 2.5 years. If you can modify our processes and policies so that staff are retained for 3.5 years, then the cost of training can be drastically reduced.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Management Concepts&lt;/h2&gt;
As a manager, your job can be summarised in 2 simple questions:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;What can you do to maximise productivity of your department in the medium to long term (without burning them out)?&lt;/li&gt;
&lt;li&gt;What can you do to retain staff as long as possible (hence reducing churn &amp;amp; saving money in the long run)?&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
For me, the answer to these questions is another question...&lt;br /&gt;
&lt;b&gt;What can I do to &lt;u&gt;increase happiness&lt;/u&gt; in my department?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Increasing happiness is not as simple as free breakfast, and vodka shots on a Friday. I will elaborate further in a future post.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Mental Health In The Workplace&lt;/h3&gt;
Mental health is an issue which needs much more attention. Managers need to be increasingly aware and diligent in addressing problems. When people are under too much pressure, then all types of behavioural problems can manifest - both at the individual and at the team level. Productivity and quality can suffer.&lt;br /&gt;
&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;
I recently stumbled across a company called&amp;nbsp;&lt;a href=&quot;https://unmind.com/&quot; target=&quot;_blank&quot;&gt;Unmind&lt;/a&gt;. This is a startup which seeks to improve mental health in the workplace. I think this is a great initiative, and one of the cofounders is a clinical psychologist. They rate 4.9 on Glassdoor. I hope to hear more about their success stories.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4o9b158VuXK0dmpP78k0SbTY6ozKp_8-wbmdxIdzNUwLhrSCCLSIkg305ZbCUIenEITRCaVQBMywnAH6Flby32-g-aCoMqzGi8BcfASZAelb7FwpGVILJ0tgjsM9J_uumyc91LIMkXg8/s1600/Screenshot+2020-01-26+at+13.36.26.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;566&quot; data-original-width=&quot;1224&quot; height=&quot;182&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4o9b158VuXK0dmpP78k0SbTY6ozKp_8-wbmdxIdzNUwLhrSCCLSIkg305ZbCUIenEITRCaVQBMywnAH6Flby32-g-aCoMqzGi8BcfASZAelb7FwpGVILJ0tgjsM9J_uumyc91LIMkXg8/s400/Screenshot+2020-01-26+at+13.36.26.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Final Thoughts&lt;/h2&gt;
I hope I have given you some food for thought when it comes to your organisation&#39;s policies. To maximise productivity of teams, Managers really need to take a step back from the ideas of utilisation. The camel can only take so much!&lt;br /&gt;
&lt;br /&gt;
I hope I have convinced you that overworking people really does reduce your company profits, due to reduced quality &amp;amp; productivity, and also the cost of churn.&lt;br /&gt;
&lt;br /&gt;
If you are serious about improving your organisation, please consider staff happiness first.&amp;nbsp;&lt;a href=&quot;https://unmind.com/&quot; target=&quot;_blank&quot;&gt;Unmind&lt;/a&gt;&amp;nbsp;is a company that can help you do this. Happy staff leads to better outcomes, and hence more profit!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>https://anthonydotnet.blogspot.com/2020/01/are-your-policies-hindering-profit.html</link><author>noreply@blogger.com (Anthony)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4o9b158VuXK0dmpP78k0SbTY6ozKp_8-wbmdxIdzNUwLhrSCCLSIkg305ZbCUIenEITRCaVQBMywnAH6Flby32-g-aCoMqzGi8BcfASZAelb7FwpGVILJ0tgjsM9J_uumyc91LIMkXg8/s72-c/Screenshot+2020-01-26+at+13.36.26.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8389762629078434869.post-4117049368346809974</guid><pubDate>Sun, 19 Jan 2020 17:21:00 +0000</pubDate><atom:updated>2020-01-24T12:28:21.972+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Leadership</category><category domain="http://www.blogger.com/atom/ns#">Processes</category><category domain="http://www.blogger.com/atom/ns#">Project Management</category><title>Are Your Project Budgets Hindering Success?</title><description>I have worked in various companies over the years. Small to large, integrated, and pure development houses.&lt;br /&gt;
&lt;br /&gt;
I have seen the transition from print to digital in various organisations, and all the practices which kind of make sense for print, but are disastrous in a digital setting.&lt;br /&gt;
&lt;br /&gt;
In this article I&#39;m going to discuss project budgets, and one undesirable behaviour which can manifest in your organisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Project Budgets&lt;/h2&gt;
It should go without saying that projects should be profitable. That&#39;s business!&lt;br /&gt;
&lt;br /&gt;
In a traditional agency, chunks of money are ring-fenced to pay for people, and materials. The revenue needs to be higher than the cost (obviously).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The Budget Statement:&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
ALL projects must be profitable&lt;br /&gt;
&lt;br /&gt;
As part of this, common thinking is that the combined wages of workers on the project should be low enough so that the project remains profitable. This might mean using mid-weight or junior workers rather than seniors or contractors. That makes sense right?&lt;br /&gt;
&lt;br /&gt;
In the following examples, I will be talking about contractors as they cost a lot more than internal staff, so the effects on decision making are more pronounced. However, the concepts also apply to internal staff due to wage differences of skill levels.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Project Contractors&lt;/h3&gt;
It is extremely common to hire contractors for the duration of a project. These may be copywriters, designers, project managers etc. Basically whatever the project needs.&lt;br /&gt;
&lt;br /&gt;
There are cases where the project budget is relatively small, which means contractors are not affordable within the project budget. Therefore internal staff are assigned as they are cheaper. This principal applies also when choosing a mid-weight or a junior over a senior, as the senior has a higher wage. This makes total sense right?&lt;br /&gt;
&lt;br /&gt;
So some projects simply do not have budget for contractors. Refer back to the&amp;nbsp;Budget Statement, that&amp;nbsp;ALL projects must be profitable.&lt;br /&gt;
&lt;br /&gt;
On a side note: There are various problems regarding reliability, quality, and consistency of contractors, but that is a topic for another time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Budget Thinking That Hinders Success&amp;nbsp;&lt;/h2&gt;
Imagine 2 available designers:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;Agnes&lt;/b&gt; - An in house senior designer, who is top notch&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Barry&lt;/b&gt; - A contract designer with far less experience than Agnes, who costs the team/organisation&amp;nbsp;more than Agnes because he is a contractor&lt;/li&gt;
&lt;/ol&gt;
The team/organisation&amp;nbsp;has 2 projects which will run in parallel:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;Project A&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;High profile&lt;/li&gt;
&lt;li&gt;Requires a top notch senior designer&lt;/li&gt;
&lt;li&gt;Has a high budget (can afford a contractor).&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;Project B&lt;/b&gt;&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Low profile&lt;/li&gt;
&lt;li&gt;Can have acceptable results with a someone less experienced&lt;/li&gt;
&lt;li&gt;Has a low budget (cannot afford a contractor).&lt;/li&gt;
&lt;/ul&gt;
&lt;/ol&gt;
In a traditional agency, the organisation will just run the numbers:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Project A&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Can afford Barry, even though he is not as good as Agnes&lt;/li&gt;
&lt;li&gt;Reluctantly assign to Barry&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Project B&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Unable afford Barry&lt;/li&gt;
&lt;li&gt;We must assign it to Agnes to stay within budget&lt;/li&gt;
&lt;/ul&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Obvious Risk&lt;/h3&gt;
In the previous example, I hope you have noticed that putting Barry (with less experience) on the high profile Project A is highly risky. You could end up delivering something below par which can result in losing the client entirely.&lt;br /&gt;
&lt;br /&gt;
But you were forced to stay within budget! The budget forced you to deliver low quality for your client. This is very sad and disappointing.&lt;br /&gt;
&lt;br /&gt;
This is an interchangeable resource fallacy. People are not interchangeable due to various reasons. This may be skills, experience, knowledge, velocity. I can&#39;t count the times where the wrong people have been put onto projects.&lt;br /&gt;
&lt;br /&gt;
Note: I&#39;m not talking about errors such as wrong event dates. I&#39;m talking about quality of work.&lt;br /&gt;
&lt;br /&gt;
Can you think of any projects/clients who have suffered due to this type of budgeting?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
The Optimal Solution Breaks The Rules&lt;/h2&gt;
In the example (above), we saw that putting the wrong person on a project can lead to poor results for the client. The client may even decide to leave you.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Breaking The Project Budget&lt;/h3&gt;
If you only consider the success of both projects, then you are probably thinking that the solution is obvious:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Project A&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Assigned to Agnes&lt;/li&gt;
&lt;li&gt;Will be a success&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Will be profitable&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Project B&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Assigned to Barry&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Will be a success&lt;/li&gt;
&lt;li&gt;Will&amp;nbsp;&lt;b&gt;not&lt;/b&gt;&amp;nbsp;be profitable&lt;/li&gt;
&lt;/ul&gt;
&lt;/ol&gt;
&lt;br /&gt;
This solution breaks the rule that &quot;ALL projects must be profitable&quot;,&amp;nbsp;however the solution ensures that both projects are a success. If both projects are successful then the net result to the team/organisation&amp;nbsp;is the same!&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
The Cheeky Solution&lt;/h3&gt;
It is worth mentioning that there is a solution which gets around the budget constraint. Basically all you need to do is cook the books.&lt;br /&gt;
&lt;br /&gt;
On paper:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Project A&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Assigned to Barry - However Agnes is REALLY doing the work&lt;/li&gt;
&lt;li&gt;Will be a success&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Will be profitable&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Project B&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Assigned to Agnes - However Barry is REALLY doing the work&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Will be a success&lt;/li&gt;
&lt;li&gt;Will&amp;nbsp;be profitable&lt;/li&gt;
&lt;/ul&gt;
&lt;/ol&gt;
&lt;br /&gt;
Ideally you shouldn&#39;t need to do this, but it is a workaround which I&#39;m sure many teams/organisations&amp;nbsp;will do. However this essentially means that you are lying.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Another Solution&lt;/h3&gt;
If you take a more holistic view of the team/organisation finances, you will see that the cost and revenue (in the above solutions) is exactly the same. Therefore the net profit across both projects is the same.&lt;br /&gt;
&lt;br /&gt;
Consider your staff (mix of fulltime and contracts) as a single pool. Now you have an average wage cost, and you can budget accordingly. Sound simple? That&#39;s because it is!&lt;br /&gt;
&lt;br /&gt;
By taking a more holistic view of your organisation (not just projects in isolation), there is higher chance that the you will be more successful and profitable in the long term. This in turn improves profitability.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Project Problems In A Digital World&lt;/h2&gt;
&lt;div&gt;
As we saw above, a poor resourcing decision can lead to poor results, and even loss of clients. When you translate this to digital projects, these problems are amplified, made more frequent, and even more reputation damaging.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Let me explain...&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Some print projects can get away with being below par. Often an ugly design can still arguably be used - Yes this is an over simplification, but I hope you get what I&#39;m saying.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
A crashing website is of absolutely no value, no matter how many lines of code were used to build it. When a website is made badly, it can be unstable, crash, and even loose money.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Does anyone remember the TSB crisis of 2018?&amp;nbsp;&lt;a href=&quot;https://www.theguardian.com/business/2018/jun/06/timeline-of-trouble-how-the-tsb-it-meltdown-unfolded&quot;&gt;https://www.theguardian.com/business/2018/jun/06/timeline-of-trouble-how-the-tsb-it-meltdown-unfolded&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Final Thoughts&lt;/h2&gt;
I hope I have convinced you that project budgets do not work in the way you hope they do. When constrained by the edict that &quot;ALL projects must be profitable&quot;, then the organisation will likely develop habits of making sub-optimal choices, which can be devastating.&lt;br /&gt;
&lt;br /&gt;
Often, it is not just as simple as resourcing according to budget. The right person may cost more. However, if the alternative is the risk of a failed project, then shuffling people around is the only option. This of course can break the rule that &quot;ALL projects must be profitable&quot;. You may decide to cook the books to say that a contractor is on the project that can afford it. You won&#39;t be the first to actually do this.&lt;br /&gt;
&lt;br /&gt;
You may even decide that it is acceptable &quot;on paper&quot; that some of your projects will be unprofitable, so that all the projects can succeed. Another solution is to consider your staff (a mix of fulltime and contractors) as a pool. This means you have an average cost per head, and you can now budget accordingly.&lt;br /&gt;
&lt;br /&gt;
I hope I have given you food for thought. Take a step back, and start looking at project success across your team/organisation, not just projects in isolation. Take a more wholistic view of profit across the team/organisation, not just individual project profit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>https://anthonydotnet.blogspot.com/2020/01/are-your-project-budgets-hindering.html</link><author>noreply@blogger.com (Anthony)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8389762629078434869.post-8706624356741384827</guid><pubDate>Sat, 18 Jan 2020 21:51:00 +0000</pubDate><atom:updated>2020-01-18T21:57:49.575+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Leadership</category><title>Happiness and Management</title><description>&lt;h2&gt;
Prelude&lt;/h2&gt;
In the distant past, I remember having a conversation with one of the people I managed. They were unhappy about various aspects of their job, the company, etc.&lt;br /&gt;
&lt;br /&gt;
I told them that if they were truly unhappy, then they should leave.&lt;br /&gt;
&lt;br /&gt;
Let me explain...&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Why Are You Unhappy?&lt;/h2&gt;
There are various reasons why a person is unhappy in the workplace. Workload, frustrating processes, unenjoyable types of work, and conflict are all common complaints. But those things are relatively easy to fix, so what else is there?&amp;nbsp;It can be&amp;nbsp;very hard for people to open up, and getting to the root of the problem is sometimes not possible.&lt;br /&gt;
&lt;br /&gt;
During the conversation we discussed that there is no perfect job or workplace. All companies have inefficient aspects to varying degrees, and there is always some boring mundane work to do. Everyone has different likes and dislikes, and for many people there are some deal breakers.&lt;br /&gt;
&lt;br /&gt;
Perhaps other people like the company, but it&#39;s just not right for you. That&#39;s fine. You don&#39;t have to like everything that other people like. What you bring to the table is individuality, and ideas. You are allowed to be unhappy even when other people are laughing.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Happiness Is More Important Than Work&lt;/h2&gt;
Happiness is more important than any job, and I don&#39;t want people who work for me to be unhappy. The happiness of my staff is more important to me than the work they do for the company.&lt;br /&gt;
&lt;br /&gt;
I told them:&lt;br /&gt;
If you are truly unhappy in your current position, then you should leave. However, before you make that decision, I want you to try to think of ways that we can make things better. If after trying to make things better, you still feel the same, then I support your decision.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Final Thoughts&lt;/h2&gt;
As a manager, the happiness of your staff outweighs all other priorities.&lt;br /&gt;
&lt;br /&gt;
Stepping into a management role sometimes means that you need to shove your business goals and smart objectives&amp;nbsp;to the side, and just be an unbiased friend.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>https://anthonydotnet.blogspot.com/2020/01/happiness-and-management.html</link><author>noreply@blogger.com (Anthony)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8389762629078434869.post-1300289341100904192</guid><pubDate>Wed, 09 Oct 2019 21:29:00 +0000</pubDate><atom:updated>2020-03-30T21:05:28.084+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Architecture</category><category domain="http://www.blogger.com/atom/ns#">Clean Code</category><category domain="http://www.blogger.com/atom/ns#">Code</category><title>Class Name Suffix Wheel Of Fortune</title><description>Hey developer!&lt;br /&gt;
&lt;br /&gt;
Do you find it hard to name your classes?&lt;br /&gt;
&lt;br /&gt;
Perhaps you have a seemingly large number of services, or helpers. Not everything can be a service or a helper right?&lt;br /&gt;
&lt;br /&gt;
If this is a problem you can relate to, then I have the ultimate tool for you!&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
The Class Name Suffix Wheel Of Fortune&lt;/h2&gt;
Just spin the wheel, and you&#39;ll never need to worry about your class name suffix ever again!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;iframe frameborder=&quot;0&quot; height=&quot;500&quot; scrolling=&quot;no&quot; src=&quot;https://wheeldecide.com/e.php?c1=Helper&amp;amp;c2=Service&amp;amp;c3=Handler&amp;amp;c4=Processor&amp;amp;c5=Runner&amp;amp;c6=Manager&amp;amp;c7=Utility&amp;amp;c8=Supporter&amp;amp;t=Class+Name+Suffix+Chooser&amp;amp;time=5&quot; width=&quot;500&quot;&gt;&lt;/iframe&gt;


&lt;br /&gt;
&lt;br /&gt;
ps. Once you&#39;re done having fun, go learn some software architecture to avoid these useless suffixes in your code :)</description><link>https://anthonydotnet.blogspot.com/2019/10/class-name-suffix-wheel-of-fortune.html</link><author>noreply@blogger.com (Anthony)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8389762629078434869.post-4930371394096910709</guid><pubDate>Tue, 10 Sep 2019 21:00:00 +0000</pubDate><atom:updated>2019-09-11T00:09:31.765+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Leadership</category><category domain="http://www.blogger.com/atom/ns#">Processes</category><category domain="http://www.blogger.com/atom/ns#">Recruitment</category><title>Good Help Is Hard To Find - Tips When Hiring Remote People</title><description>&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #222222; font-family: &amp;quot;arial&amp;quot; , &amp;quot;tahoma&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;freesans&amp;quot; , sans-serif; font-size: 13.2px;&quot;&gt;Good Help Is Hard To Find.&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #222222; font-family: &amp;quot;arial&amp;quot; , &amp;quot;tahoma&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;freesans&amp;quot; , sans-serif; font-size: 13.2px;&quot;&gt;This is the eighth in a series of articles which will summarise my last half decade of hiring/outsourcing/offshoring experience as Head of Technology&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #222222; font-family: &amp;quot;arial&amp;quot; , &amp;quot;tahoma&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;freesans&amp;quot; , sans-serif; font-size: 13.2px;&quot;&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; margin: 0px; position: relative;&quot;&gt;
&lt;/h3&gt;
&lt;h2 style=&quot;background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; margin: 0px; position: relative;&quot;&gt;
Introduction&lt;/h2&gt;
&lt;span style=&quot;background-color: white; color: #222222; font-family: &amp;quot;arial&amp;quot; , &amp;quot;tahoma&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;freesans&amp;quot; , sans-serif; font-size: 13.2px;&quot;&gt;Are you hiring remote developers? Your decision to do this might be due to cost (to save money), due to local skills shortage, or when you absolutely must hire a specific person and are willing to let them work remotely.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
When hiring remote staff members, you need to keep in mind that it will not be as smooth as you might think. Humans are fascinating when you put them in different scenarios, and some people who were fine to work with in an office might not cope well when isolated.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #222222; font-family: &amp;quot;arial&amp;quot; , &amp;quot;tahoma&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;freesans&amp;quot; , sans-serif; font-size: 13.2px;&quot;&gt;In this article I will present a few of the challenges I tackled when dealing with remote staff members.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Issues&lt;/h2&gt;
&lt;h3&gt;
Isolation&lt;/h3&gt;
Remote staff members are isolated. They miss out on important information. They are not privy to cross-desk small-talk and banter. They definitely are not able to go for lunch with people. We all need the company of other humans.&lt;br /&gt;
&lt;br /&gt;
You really need to figure out ways which you can help your remote staff feel like they have real human contact.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Limited Communication&lt;/h3&gt;
In a physical office situation, staff members will interact at some point during the day. When you have remote people, this does not happen. Most of the time you only have the remote people&amp;nbsp;interacting with their current project team, and sometimes just at a daily scrum. This is not much communication, and many people might not get the information they need to do well in their jobs without those extra office side-chats.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Quality &amp;amp; Performance&amp;nbsp;&lt;/h3&gt;
When developers help each other then they will come to a consensus with their approach. They come to a solution more quickly, and there will be less bugs. The opposite is often the case when it comes to isolated developers.&lt;br /&gt;
&lt;br /&gt;
In my experience, remote people are far less likely to ask for help. This has a knock-on effect of their quality potentially going down, as well as their speed.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Second Class Citizens&lt;/h3&gt;
It&#39;s very easy to get in a habit of treating remote people 2nd class citizens. I have seen this in various companies, and decided very early that we must replicate in-office communication as closely as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Tips to Improve Communication&lt;/h2&gt;
&lt;h3&gt;
Video&lt;/h3&gt;
Have you ever joined voice-only conference calls. They really suck. They really do!&lt;br /&gt;
&lt;br /&gt;
Being able to see a person&#39;s face is very important. It makes the calls quicker and more efficient, while also giving you all a more human interaction. Slack conversations and email have their place, however they can take way too long. So I favour video as much as possible.&lt;br /&gt;
&lt;br /&gt;
Tip: My top tip is to use always use video for all meetings and discussions. There are plenty of tools out there. &lt;a href=&quot;http://zoom.us/&quot; target=&quot;_blank&quot;&gt;Zoom&lt;/a&gt;&amp;nbsp;is my preferred choice. There are other good options such as Slack video, and Google Hangouts.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Frequent Rituals&lt;/h3&gt;
My most distributed team consisted of 2 offices and 4 remote developers spread across 3 countries. Very early on, I introduced daily all-dev standup where devs would talk about what they were doing, and would ask for help if required. Arguably, this might not significantly serve the projects in the short term. However, the interactions each morning did facilitate knowledge sharing across all devs. It was a great start to the day, and I personally really enjoyed the feeling of seeing everyone each day.&lt;br /&gt;
&lt;br /&gt;
Tip: Strive for some sort of group interaction which can mimic a physical office environment. Make it frequent, and at least once per week.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Encourage Remote Questions&lt;/h3&gt;
Remote developers do not have much interaction during the day when compared to developers who were sitting at the same desk.&lt;br /&gt;
&lt;br /&gt;
I encouraged developers to avoid asking questions of people who were physically in the room. I told them to ask the remote developers were possible, as it would encourage them to do the same.&lt;br /&gt;
&lt;br /&gt;
This dramatically increased the amount of communication. While this might sound a little inefficient at first, in the long term the communication tightened up, and video questions became the norm. Quality of work and happiness of remote developers increased as a result.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Travel&lt;/h3&gt;
&lt;div&gt;
When I started to take on remote staff I insisted that they come to the office as often as possible. For people in the UK it was around once per month for a couple days, people in other countries around once a quarter. This is obviously an extra cost to the company, however the improvements in team bonding and efficiency are totally worth it.&lt;/div&gt;
&lt;br /&gt;
Tip: Get your remote staff to visit the office as often as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Final Thoughts&lt;/h3&gt;
The world is modernising where people can work from anywhere. You need to be extra diligent when it comes to care for these staff members, as you can&#39;t actually see their physical conditions, and you have far less contact with them.&lt;br /&gt;
&lt;br /&gt;
Video calls are critical in helping people feel less isolated, and you must develop daily and weekly rituals to keep the remote people engaged and in the loop. Encourage your office staff to engage frequently with the remote staff, and definitely try to have your remote staff travel to physically engage with everyone else.&lt;br /&gt;
&lt;br /&gt;
I hope you found this article helpful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Posts In This Series&lt;/h2&gt;
&lt;h3&gt;
&lt;div style=&quot;font-size: medium; font-weight: 400;&quot;&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://anthonydotnet.blogspot.com/2019/04/interview-tips-for-technical-leaders.html&quot;&gt;Interview Tips for Technical Leaders&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://anthonydotnet.blogspot.com/2019/04/tips-to-ensure-quality-delivery-when-outsourcing.html&quot;&gt;Tips To Ensure Quality Delivery When Outsourcing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://anthonydotnet.blogspot.com/2019/04/tips-when-hiring-interns.html&quot;&gt;Tips When Taking On An Intern&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://anthonydotnet.blogspot.com/2019/04/tips-when-hiring-senior-developers.html&quot;&gt;Tips When Hiring Senior Developers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://anthonydotnet.blogspot.com/2019/05/tips-when-hiring-junior-developers.html&quot; target=&quot;_blank&quot;&gt;Tips When Hiring Junior Developers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://anthonydotnet.blogspot.com/2019/04/tips-when-offshoring-development-teams.html&quot; target=&quot;_blank&quot;&gt;Tips When Offshoring Development Teams&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://anthonydotnet.blogspot.com/2019/05/tips-when-hiring-digital-producers.html&quot; target=&quot;_blank&quot;&gt;Tips When Hiring Digital Producers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://anthonydotnet.blogspot.com/2019/09/tips-when-hiring-remote-people.html&quot; target=&quot;_blank&quot;&gt;Tips When Hiring Remote People&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Tips To Improve Developer Retention (coming soon)&lt;/li&gt;
&lt;li&gt;Tips When Hiring Lead Developers (coming soon)&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/h3&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>https://anthonydotnet.blogspot.com/2019/09/tips-when-hiring-remote-people.html</link><author>noreply@blogger.com (Anthony)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8389762629078434869.post-2536360921159315244</guid><pubDate>Sat, 07 Sep 2019 19:23:00 +0000</pubDate><atom:updated>2019-09-07T20:30:21.471+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Processes</category><category domain="http://www.blogger.com/atom/ns#">Project Management</category><title>Billing - A Better Alternative</title><description>&lt;h2&gt;
Introduction&lt;/h2&gt;
&lt;span style=&quot;background-color: white; color: #222222; font-family: &amp;quot;arial&amp;quot; , &amp;quot;tahoma&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;freesans&amp;quot; , sans-serif; font-size: 13.2px;&quot;&gt;When I was Head Of Development at The Cogworks we originally tried to bill by the 1/4 hour. It was insanely granular and cause many undesirable side effects and habits. Even if we rounded up numbers to meet 7hrs per day, it seemed that projects were just not profitable. It was quite hard to get my head around it, but much of this was because linking estimations to &quot;time spent&quot; to &quot;billing&quot; was causing many assumptions about workflow which were just wrong.&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #222222; font-family: &amp;quot;arial&amp;quot; , &amp;quot;tahoma&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;freesans&amp;quot; , sans-serif; font-size: 13.2px;&quot;&gt;For example, we all should know by now that 1 dev working solidly for 7hrs is more productive than the same dev trying to work on different 1hr tasks. Nothing ever takes an hour. Downloading a code repo &amp;amp; getting it running could easily eat up 1 hour. Super granular estimates were linked to granular timesheets and billing which never accounted for context switching. So on paper we were always going &quot;over budget&quot;. Crazy right?! I still find this hard to think about, as it does seem counter intuitive. Basically, when you context switch, there is a significant amount of time you need to waste on gaining speed. Kind of like a car being stopped at every traffic light.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
A Simple Elegant Billing Model&lt;/h2&gt;
&lt;br /&gt;
&lt;ul style=&quot;background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; line-height: 1.4; margin: 0.5em 0px; padding: 0px 2.5em;&quot;&gt;
&lt;li style=&quot;margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;0.5 to 1 day billing increments&lt;/li&gt;
&lt;ul style=&quot;line-height: 1.4; margin: 0.5em 0px; padding: 0px 2.5em;&quot;&gt;
&lt;li style=&quot;margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;Use this for items which are estimated to be around an hour to several days&lt;/li&gt;
&lt;li style=&quot;margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;Even if an item is &quot;estimated&quot; as trivial (perhaps 1-2hrs), just charge 1/2 day&lt;/li&gt;
&lt;/ul&gt;
&lt;li style=&quot;margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;1 - 2 week &quot;project team&quot; billing increments&amp;nbsp;&lt;/li&gt;
&lt;ul style=&quot;line-height: 1.4; margin: 0.5em 0px; padding: 0px 2.5em;&quot;&gt;
&lt;li style=&quot;margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;Use this for chunks of work which is estimated to be weeks to months long&lt;/li&gt;
&lt;li style=&quot;margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;A team may consist of 2 devs, Producer, Designer and QA&lt;/li&gt;
&lt;/ul&gt;
&lt;li style=&quot;margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;Emergency tickets are pre-sold at 2/3 day billing increments&lt;/li&gt;
&lt;ul style=&quot;line-height: 1.4; margin: 0.5em 0px; padding: 0px 2.5em;&quot;&gt;
&lt;li style=&quot;margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;This is essentially prepaying for disruption&lt;/li&gt;
&lt;li style=&quot;margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;Gives you the ability to ask the client &quot;do you want to use your pre-bought ticket&quot; or is this ok to just schedule into support &amp;amp; maintenance?&lt;/li&gt;
&lt;li style=&quot;margin: 0px 0px 0.25em; padding: 0px;&quot;&gt;Tickets expire after 3 months if not used&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br style=&quot;background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #222222; font-family: &amp;quot;arial&amp;quot; , &amp;quot;tahoma&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;freesans&amp;quot; , sans-serif; font-size: 13.2px;&quot;&gt;This billing model free&#39;s up your developers from the shackles of timesheets, and also builds in adequate buffer for all those random project comms and meetings. When I introduced this at the Cogworks, it was as if a burden had been removed from day to day life. Everyone was happier.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #222222; font-family: &amp;quot;arial&amp;quot; , &amp;quot;tahoma&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;freesans&amp;quot; , sans-serif; font-size: 13.2px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;</description><link>https://anthonydotnet.blogspot.com/2019/09/billing-better-alternative.html</link><author>noreply@blogger.com (Anthony)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8389762629078434869.post-7164255811713808175</guid><pubDate>Fri, 06 Sep 2019 09:29:00 +0000</pubDate><atom:updated>2019-09-07T21:57:56.652+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Leadership</category><category domain="http://www.blogger.com/atom/ns#">Processes</category><category domain="http://www.blogger.com/atom/ns#">Project Management</category><title>Stop Using Timesheets</title><description>&lt;h2&gt;
Introduction&lt;/h2&gt;
&lt;div&gt;
In an organisation which does software development, timesheets can really damage your productivity for what is actually a false economy. As Head of Development at The Cogworks I saw all of these problems and eventually abolished them completely.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
In this article I will debunk common reasons for requiring developers to do timesheets. I will give better alternatives which will make your workforce happier and the organisation more profitable.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;
Comparing Projects For Efficiency&lt;/h2&gt;
&lt;div&gt;
I cant believe I even need to state any of this, but here we go...&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
No two projects are the same. When I was at The Cogworks, we helped a client launch 100&#39;s of websites using a standardised multi-lingual starter-kit, &quot;virtually identical&quot; Information Architecture, and &quot;very similar&quot; designs. Each project was totally unpredictable in delivery due to changed in content, varying client-side interaction times, different developers, different designers, different devops people on the client side, and secret stakeholders who appear at the 11th hour. Keep in mind, this was the same client!!!&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Requirements will always differ in some way, and stakeholders and client-side Project Managers change even within the same client &amp;amp; during a project. I have seen a project be totally derailed because a new (not so great) PM appeared on the client-side.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
There is no point trying to compare build &amp;amp; deploy time for even&amp;nbsp;small items. No two pages will ever be identical. I commonly hear &quot;It&#39;s identical &lt;b style=&quot;text-decoration-line: underline;&quot;&gt;except&lt;/b&gt;...&quot;.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
People on two project teams will have differing skills, experience, knowledge, personalities, and experience working with each other. Imagine taking a team who get along and have created many projects, however they are a bit sloppy.&amp;nbsp;Compare that group to a team who have new members who don&#39;t know each other&#39;s skills and personalities, however they are all very capable.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
I hope I have convinced you to stop trying to compare projects.&lt;br /&gt;
&lt;br /&gt;
There are however other ways to tell if a project was efficient. For example, count the number of calendar weeks that the project took to complete. This is not the same as the number of utilised hours!&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;h3&gt;
&lt;/h3&gt;
&lt;h2&gt;
Performance Reviews&lt;/h2&gt;
&lt;/div&gt;
&lt;div&gt;
Using timesheets for performance reviews makes absolutely no sense. As a manager I want to know how many tasks a dev can do, and how often bugs are reported by QA.&lt;br /&gt;
&lt;br /&gt;
I&#39;ll give you this (really bad Apples &amp;amp; Oranges) example:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Time logged is not the same as output&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
Anthony is a great at baking, however he worked on task &quot;Apple Sauce&quot; for 4 days.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Greg is a great at Apple Sauce, however he worked on task &quot;Orange Meringue&quot; for 3 days.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
These people worked on things which they were not specialised in. How can you compare their time?&lt;br /&gt;
&lt;br /&gt;
An alternative is to track output, not time logged. Track the number of tasks which each developer does. A very simple metric is to count the number of Jira/Trello/Asana/etc. cards which are completed within a timeframe.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Quality&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
Anthony&#39;s Apple Sauce is horribly overcooked with over-caramelised parts.&lt;/div&gt;
&lt;div&gt;
Greg&#39;s Orange Meringue has less perceivable defects than Anthony, however he didn&#39;t need to use a stove.&lt;br /&gt;
&lt;br /&gt;
These tasks were totally different. Anthony basically failed at his task. How do you compare them based on timesheets?&lt;br /&gt;
&lt;br /&gt;
An alternative is to track the number defects which are flagged. If you are using a Kanban process, then you can simply count the number of defect cards which are created against the work items.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Other Issues&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
No one knows if either tasks are complete, or even if they are done to the satisfaction of the client. Did the client report any issues, did QA find issues?&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;h2&gt;
Accuracy&lt;/h2&gt;
&lt;div&gt;
Timesheets are seldom accurate. Here are some common habits of someone who fills in timesheets. I can absolutely say that these things happen because I personally have done all of these, and will continue with these habits if made to do timesheets.&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Round up numbers to get 8 hours tracked per day&lt;/li&gt;
&lt;li&gt;Add a number to a random client which I &quot;think&quot; I worked on&lt;/li&gt;
&lt;li&gt;Forgetting to do them on Monday, so I do them from memory on Tuesday&lt;/li&gt;
&lt;li&gt;Forgetting to do them all week, so I do them from memory on Friday&lt;/li&gt;
&lt;li&gt;Forgetting to do them all month, so I do them from memory on when I am chased&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Yes I&#39;ve done this one too!&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Even automated tracking will still be wrong...&lt;br /&gt;
&lt;br /&gt;
Think about toilet breaks, coffee breaks, discussion at the water cooler, cigarette breaks, impromptu project chats, emergency meetings, helping another developer, doing a quick code review,&amp;nbsp;phone calls, emails, Slack, calendar, Trello, and finally... short lunch vs long lunch. Trying to account for all these scenarios is a fantasy fallacy of micromanagement.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
But I hear you saying &quot;what about mouse tracking software?&quot;. Well, stop reading this article. If I cant convince you then perhaps these people can:&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;blockquote style=&quot;background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;&quot; type=&quot;cite&quot;&gt;
&lt;div dir=&quot;auto&quot;&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a data-saferedirecturl=&quot;https://www.google.com/url?q=https://www.scruminc.com/why-time-sheets-are-lame/&amp;amp;source=gmail&amp;amp;ust=1559073701352000&amp;amp;usg=AFQjCNHM8ykD8JRHxefXNStJuVVCgJkr_Q&quot; href=&quot;https://www.scruminc.com/why-time-sheets-are-lame/&quot; style=&quot;color: #1155cc;&quot; target=&quot;_blank&quot;&gt;https://www.scruminc.com/why-&lt;wbr&gt;&lt;/wbr&gt;time-sheets-are-lame/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a data-saferedirecturl=&quot;https://www.google.com/url?q=http://pdf.th7.cn/down/files/1411/Peopleware,%25203rd%2520Edition.pdf&amp;amp;source=gmail&amp;amp;ust=1559073701352000&amp;amp;usg=AFQjCNEiiCwxZrv6pNoEaVUVratSlsyXFw&quot; href=&quot;http://pdf.th7.cn/down/files/1411/Peopleware,%203rd%20Edition.pdf&quot; style=&quot;color: #1155cc;&quot; target=&quot;_blank&quot;&gt;http://pdf.th7.cn/&lt;wbr&gt;&lt;/wbr&gt;down/files/1411/Peopleware,%&lt;wbr&gt;&lt;/wbr&gt;203rd%20Edition.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a data-saferedirecturl=&quot;https://www.google.com/url?q=https://hbr.org/2015/01/workers-are-bad-at-filling-out-timesheets-and-it-costs-billions-a-day&amp;amp;source=gmail&amp;amp;ust=1559073701352000&amp;amp;usg=AFQjCNGLSEHk_rDfYlkaNyDcQ8cpXwI68Q&quot; href=&quot;https://hbr.org/2015/01/workers-are-bad-at-filling-out-timesheets-and-it-costs-billions-a-day&quot; style=&quot;color: #1155cc;&quot; target=&quot;_blank&quot;&gt;https://hbr.org/2015/01/&lt;wbr&gt;&lt;/wbr&gt;workers-are-bad-at-filling-&lt;wbr&gt;&lt;/wbr&gt;out-timesheets-and-it-costs-&lt;wbr&gt;&lt;/wbr&gt;billions-a-day&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a data-saferedirecturl=&quot;https://www.google.com/url?q=https://www.trinityp3.com/2014/05/agency-timesheets-and-retainers/&amp;amp;source=gmail&amp;amp;ust=1559073701352000&amp;amp;usg=AFQjCNHEXf_bRQMYsZVY5V4vIMvu7xsKIg&quot; href=&quot;https://www.trinityp3.com/2014/05/agency-timesheets-and-retainers/&quot; style=&quot;color: #1155cc;&quot; target=&quot;_blank&quot;&gt;https://www.trinityp3.&lt;wbr&gt;&lt;/wbr&gt;com/2014/05/agency-timesheets-&lt;wbr&gt;&lt;/wbr&gt;and-retainers/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;h2&gt;
Client Billing&lt;/h2&gt;
&lt;h4&gt;
Fixed Cost Billing&lt;/h4&gt;
&lt;/div&gt;
I have been part of countless projects where I was required to do timesheets because they were apparently used to bill the client. When I found out that the projects were all fixed cost, I asked the question: &quot;If the project is fixed cost, then how are the timesheets used to bill the client?&quot;&lt;br /&gt;
&lt;br /&gt;
The answer was: &quot;The timesheets are used to see if we&#39;re losing money&quot;.&lt;br /&gt;
&lt;br /&gt;
*face palm*&lt;br /&gt;
&lt;br /&gt;
Tracking project time is different to tracking people time. I&#39;ll explain more in a future post.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
Billing For Time Spent&lt;/h4&gt;
If you are using timesheets to do client billing, then you are probably being too granular.&lt;br /&gt;
&lt;br /&gt;
What would you do in this following scenario?&lt;/div&gt;
&lt;div&gt;
Developers help each other with questions, code reviews, discussions, architecture. Very often the knowledge / skills required may not exist within the same project team, so developer from another team is asked for some quick help. Very often this will be just 5 minutes. Sometimes it is longer.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;div&gt;
Also, what about all the project meetings? eg. Standups (3-15mins), sprint planning, sprint review, sprint retrospective, random comms, emails, quick chats with the PM, 2min slack conversation with the client devs. What about when a colleague asks &quot;How was your weekend&quot;?&lt;/div&gt;
&lt;br /&gt;
I know what you&#39;re thinking...&lt;br /&gt;
1. Dev 2 should enter a number into their timesheet that they spent 5mins helping Dev 1&lt;br /&gt;
2. As long as a developer&#39;s time is tracked against a client/project then there is no money loss.&lt;br /&gt;
&lt;br /&gt;
Why are you concerned about tracking developer time by the minute? This is classic micromanagement! There is not value to the business to know that a developer asked another developer a question. It is wasteful. People hate and resent this level of micromanagement. Developers help each other and it all evens out anyway. So stop trying to track this!&lt;br /&gt;
&lt;br /&gt;
A better alternative is to take a higher level approach. Bill by the day, week, sprint, month etc. See &lt;a href=&quot;https://anthonydotnet.blogspot.com/2019/09/billing-better-alternative.html&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt; for a better alternative.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;
Final Thoughts&lt;/h2&gt;
&lt;div&gt;
I hope I have given you food for thought when it comes to timesheets and your production team. Comparing timesheets of projects has absolutely no value. Performance reviews should be based on quality and quantity of output, not time logged. Accuracy of timesheets is also generally crappy. If you can change your billing process to be less granular, then you will not need timesheets.&lt;br /&gt;
&lt;br /&gt;
Once you remove timesheets from your business, your staff will be more productive and happy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>https://anthonydotnet.blogspot.com/2019/09/stop-using-timesheets.html</link><author>noreply@blogger.com (Anthony)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8389762629078434869.post-7504648744113754729</guid><pubDate>Wed, 24 Jul 2019 08:44:00 +0000</pubDate><atom:updated>2019-07-25T17:22:39.610+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Architecture</category><category domain="http://www.blogger.com/atom/ns#">Azure</category><category domain="http://www.blogger.com/atom/ns#">Deployment</category><title>Azure Naming Conventions</title><description>I have gone back and forth with Azure naming conventions over the years. There are various trade offs to consider, but I think I have settled on a format... for now.&lt;br /&gt;
&lt;br /&gt;
I prefer to see the resource type as a prefix, while the environment (dev, qa, uat, prod) as a suffix. In the middle, I like to see the purpose of the resource.&lt;br /&gt;
&lt;br /&gt;
So my format is:&lt;br /&gt;
&amp;lt;what&amp;gt;-&amp;lt;why&amp;gt;-&amp;lt;where&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;What&lt;/b&gt;: The resource type&lt;br /&gt;
&lt;b&gt;Why&lt;/b&gt;: The purpose / project&lt;br /&gt;
&lt;b&gt;Where&lt;/b&gt;: The environment (eg. dev, qa, uat, prod)&lt;br /&gt;
&lt;br /&gt;
This naming convention allows me to see all the resources ordered by their type (eg. sql for SQL Server). In the following example, I can visually scan for &quot;sql&quot;&lt;br /&gt;
sql-myproject-dev&lt;br /&gt;
sql-myproject-qa&lt;br /&gt;
sql-myproject-prod&lt;br /&gt;
sql-thierproject-dev&lt;br /&gt;
sql-thierproject-qa&lt;br /&gt;
sql-thierproject-prod&lt;br /&gt;
&lt;br /&gt;
Notice that this allows all the sql resources to be grouped by project name. Using the suffix, I can then easily see the environments related to those projects.&lt;br /&gt;
&lt;br /&gt;
In the examples below, the I use &quot;nicename&quot; for the &quot;purpose&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
&lt;/h2&gt;
&lt;h2&gt;
Naming&amp;nbsp;&lt;/h2&gt;
&lt;div&gt;
General rules:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;All resources (including resource groups) are lower case&lt;/li&gt;
&lt;li&gt;Where hyphens are not permitted, simply omit them. eg. storagenicenameprod&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Use industry accepted abbreviations (eg. vnet, app, net)&lt;/li&gt;
&lt;li&gt;Where there is no widely accepted short abbreviation, use full words (eg. search for Azure Search)&lt;/li&gt;
&lt;li&gt;Where character limits are imposed, fall back to acronyms (last resort as this is harder to understand)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
&lt;/h3&gt;
&lt;h3&gt;
Resources groups&lt;/h3&gt;
rg-&amp;lt;purpose&amp;gt;-&amp;lt;environment&amp;gt;&lt;br /&gt;
For example:&lt;br /&gt;
rg-data-prod&lt;br /&gt;
rg-net-prod&lt;br /&gt;
rg-web-prod&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
The reason I have separated web, data and network related resources is because putting all resources in a &quot;production&quot; group could get very messy. The separation allows for the types of functionality (within an environment) to be grouped nicely.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Data Group - Data / storage related&lt;/b&gt;&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Database server&lt;/li&gt;
&lt;li&gt;Blob Storage&lt;/li&gt;
&lt;li&gt;Table Storage&lt;/li&gt;
&lt;li&gt;Azure Search&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;b&gt;Net Group - Network, Security and Protocol related&lt;/b&gt;&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Virtual Network&lt;/li&gt;
&lt;li&gt;Network Security Group&lt;/li&gt;
&lt;li&gt;Application Gateway&lt;/li&gt;
&lt;li&gt;Azure Front Door&lt;/li&gt;
&lt;li&gt;Load Balancer&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;b&gt;Web Group - Web App &amp;amp; Content Delivery related&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;App Service Plans &amp;amp; App Services&lt;/li&gt;
&lt;li&gt;Functions&lt;/li&gt;
&lt;li&gt;Sendgrid&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Resources In General&lt;/h3&gt;
&amp;lt;resource type&amp;gt;-&amp;lt;purpose&amp;gt;-&amp;lt;environment&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
app-nicename-dev&lt;br /&gt;
search-nicename-prod&lt;br /&gt;
sql-nicename-qa&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
The reason I like the resource type first is because I often look at the entire resource list, so (for me) it is helpful to put the resource type at the start of the name. Yes I know that you can order by resource type, however there is something I personally don&#39;t like about that.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
App Service Plans&lt;/h3&gt;
Examples:&lt;br /&gt;
asp-nicename-dev&lt;br /&gt;
&lt;div&gt;
asp-nicename-qa&lt;br /&gt;
&lt;div&gt;
&lt;/div&gt;
asp-nicename-uat&lt;br /&gt;
&lt;div&gt;
asp-nicename-prod&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
Example Resource Group: rg-web-prod&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
App Services&lt;/h3&gt;
Examples:&lt;br /&gt;
app-nicename-dev&lt;br /&gt;
&lt;div&gt;
app-nicename-qa&lt;br /&gt;
&lt;div&gt;
&lt;/div&gt;
app-nicename-uat&lt;br /&gt;
&lt;div&gt;
app-nicename-prod&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
Example Resource Group: rg-web-prod&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;
SQL Database Server&lt;/h3&gt;
sql-&amp;lt;purpose&amp;gt;-&amp;lt;environment&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
sql-nicename-qa&lt;br /&gt;
cosmos-nicename-prod&lt;br /&gt;
&lt;br /&gt;
Example Resource Group: rg-data-prod&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Databases&amp;nbsp;&lt;/h3&gt;
db-nicename-&amp;lt;environment&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
db-nicename-qa&lt;br /&gt;
db-nicename-prod&lt;br /&gt;
&lt;br /&gt;
Example Resource Group: rg-data-prod&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Azure Search&amp;nbsp;&lt;/h3&gt;
search-&amp;lt;purpose&amp;gt;-&amp;lt;environment&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
search-nicename-qa&lt;br /&gt;
search-nicename-prod&lt;br /&gt;
&lt;br /&gt;
Example Resource Group: rg-data-prod&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Virtual Networks&lt;/h3&gt;
vnet&amp;lt;int&amp;gt;-&amp;lt;environment&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Networking is an interesting exception, as I prefer to take a numbering approach at network levels. This is because networks can be used for all types of purposes. I also like to keep the network dependencies together. So I will prefix the Network Security Group (nsg) with the name of the the vnet.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
vnet01-dev&lt;br /&gt;
vnet02-prod&lt;br /&gt;
&lt;br /&gt;
Example Resource Group: rg-net-prod&lt;br /&gt;
&lt;br /&gt;
Network Security Group&#39;s related to a VNet should follow the pattern:&lt;br /&gt;
&amp;lt;vnet&amp;gt;-nsg-&amp;lt;purpose&amp;gt;-&amp;lt;environment&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
vnet01-nsg-appgateway-prod&lt;br /&gt;
vnet01-nsg-frontdoor-prod&lt;br /&gt;
&lt;br /&gt;
Example Resource Group: rg-net-prod&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this example the &quot;purpose&quot; is to attach a Network Security Group to the Vnet for the Application Gateway and Azure Frontdoor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Application Gateways&lt;/h3&gt;
&lt;div&gt;
agw&amp;lt;int&amp;gt;-&amp;lt;environment&amp;gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Examples:&lt;/div&gt;
&lt;div&gt;
agw01-uat&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
agw02-prod&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;
Final Thoughts&lt;/h2&gt;
&lt;div&gt;
Naming things is a balancing act which I (and many) struggle with. Something that you are happy with might start annoying you years later. What ever you choose, try to ensure that your naming is understandable, consistent, and easy on the eyes.&lt;br /&gt;
&lt;br /&gt;
Also, keep in mind that you probably won&#39;t like your naming convention in the future :)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>https://anthonydotnet.blogspot.com/2019/07/azure-naming-conventions.html</link><author>noreply@blogger.com (Anthony)</author><thr:total>0</thr:total></item></channel></rss>