-
Notifications
You must be signed in to change notification settings - Fork 0
/
developer-lessons-from-2017-part-1-14c31f45307c.html
204 lines (152 loc) · 11.2 KB
/
developer-lessons-from-2017-part-1-14c31f45307c.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="HandheldFriendly" content="True" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="robots" content="" />
<link href="https://fonts.googleapis.com/css2?family=Source+Code+Pro:ital,wght@0,400;0,700;1,400&family=Source+Sans+Pro:ital,wght@0,300;0,400;0,700;1,400&display=swap" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="./theme/stylesheet/style.min.css">
<link id="pygments-light-theme" rel="stylesheet" type="text/css"
href="./theme/pygments/github.min.css">
<link rel="stylesheet" type="text/css" href="./theme/font-awesome/css/fontawesome.css">
<link rel="stylesheet" type="text/css" href="./theme/font-awesome/css/brands.css">
<link rel="stylesheet" type="text/css" href="./theme/font-awesome/css/solid.css">
<link href="https://shanedowling.com/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Shane Dowling Atom">
<link href="https://shanedowling.com/feeds/all.rss.xml" type="application/rss+xml" rel="alternate" title="Shane Dowling RSS">
<script type="text/javascript">
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'G-Z9P3V6D0SV', 'auto');
ga('send', 'pageview');
</script>
<meta name="author" content="Shane Dowling" />
<meta name="description" content="Looking back on this year, many of the lessons I've learned had less to do with specific technologies and more to do with long term career growth. I've been a developer now for 9 years and as a result, I'm starting to think more about longer term goals and happiness …" />
<meta name="keywords" content="">
<meta property="og:site_name" content="Shane Dowling"/>
<meta property="og:title" content="Freelancer lessons – Part 1"/>
<meta property="og:description" content="Looking back on this year, many of the lessons I've learned had less to do with specific technologies and more to do with long term career growth. I've been a developer now for 9 years and as a result, I'm starting to think more about longer term goals and happiness …"/>
<meta property="og:locale" content="en_US"/>
<meta property="og:url" content="./developer-lessons-from-2017-part-1-14c31f45307c.html"/>
<meta property="og:type" content="article"/>
<meta property="article:published_time" content="2017-12-31 19:20:04.741000+00:00"/>
<meta property="article:modified_time" content=""/>
<meta property="article:author" content="./author/shane-dowling.html">
<meta property="article:section" content="Productivity"/>
<meta property="og:image" content="/images/logo.png">
<title>Shane Dowling – Freelancer lessons – Part 1</title>
</head>
<body class="light-theme">
<aside>
<div>
<a href="./">
<img src="/images/logo.png" alt="Shane Dowling" title="Shane Dowling">
</a>
<h1>
<a href="./">Shane Dowling</a>
</h1>
<p>Platform Engineering Manager</p>
<nav>
<ul class="list">
<li>
<a target="_self"
href="./pages/contact.html#contact">
Contact
</a>
</li>
<li>
<a target="_self"
href="./pages/now-page.html#now-page">
Now Page
</a>
</li>
<li>
<a target="_self"
href="./pages/statuslog.html#statuslog">
Statuslog
</a>
</li>
<li>
<a target="_self" href="https://hybridcloudshow.com/" >podcast</a>
</li>
<li>
<a target="_self" href="https://pemonthly.com/" >newsletter</a>
</li>
</ul>
</nav>
<ul class="social">
<li>
<a class="sc-github"
href="http://github.com/shano"
target="_blank">
<i class="fa-brands fa-github"></i>
</a>
</li>
<li>
<a class="sc-mastodon"
rel="me" href="http://social.lol/@sed"
target="_blank">
<i class="fa-brands fa-mastodon"></i>
</a>
</li>
<li>
<a class="sc-linkedin"
href="https://www.linkedin.com/in/shanedow/"
target="_blank">
<i class="fa-brands fa-linkedin"></i>
</a>
</li>
</ul>
</div>
</aside>
<main>
<article class="single">
<header>
<h1 id="developer-lessons-from-2017-part-1-14c31f45307c">Freelancer lessons – Part 1</h1>
<p>
Posted on Sun 31 December 2017 in <a href="./category/productivity.html">Productivity</a>
</p>
</header>
<div>
<p><img alt="" src="images/1__T29vR6I4G8K__edEp81oWCQ__2x.jpeg"></p>
<p>Looking back on this year, many of the lessons I've learned had less to do with specific technologies and more to do with long term career growth. I've been a developer now for 9 years and as a result, I'm starting to think more about longer term goals and happiness. As a result I made the decision to move from contracting back to full time work towards the tail end of the year so a lot of my reflections are tied around the costs of short term thinking and contracting in general.</p>
<h3>Money isn't everything</h3>
<p>So this is an obvious one, but it was a lesson slowly learned for me. I've been a contractor for the past few years and while it has had some highlights and excellent roles there is definitely a price to pay being a contractor. At the end of the year I dropped my contracts and have moved back into a full time position. There were several reasons for this, many of which are outlined below. It was tough to leave the contractor lifestyle, it will almost always pay better than full time work, there's a certain flexibility to it, you hop between multiple projects and that can keep things interesting. The key takeaway this year was that most of those benefits were slowly getting outweighed by negatives and the only thing keeping me contracting was high day rates and in the end I had to make the call to leave, money wasn't worth the overhead.</p>
<h3>Keep it to one company</h3>
<p>For the last three years I have been contracting for either two or three companies simultaneously. I tended to draw higher day rates when I split my week between clients. Often clients simply need a top-up developer to help out with smaller projects while also not becoming an irreplaceable member of the team, it makes sense in terms of managing contractors. However there are issues with this setup.</p>
<p>Firstly, the cognitive overhead. Swapping 2 or 3 times a week between not only different tech, different team members, processes, documentation, heck even different email providers and ticketing systems has a higher long term cognitive overhead than one might expect. Initially, there might be no issues with such a setup, but over time the constant churn of swapping will create a productivity hit. There's simply too much variability to focus as effectively on what your being hired to do. It also has the cumulative effect alongside the huge gaps between work. I might be halfway through a task and not get a chance to return to working on it for another 5 or 6 days, between which I've worked at multiple locations on different teams in different companies all likely with different tech. Anyone who believes there won't be a cognitive cost(I include my past self in that group) is deluding themselves.</p>
<p>The second major issue is that clients bleed into one another. Be wary of clients where you're the only subject matter expert for a particular technology. There can be definite expectations that when an issue arises you'll take care of it despite working for another client that day. The stress levels of managing such a situation can be high, as you try to manage the expectations of multiple clients at once, and again this takes away from your focus on the job, which is not what you want when you live or die based on solidly productive days to justify your day rate.</p>
<p>There is further more subtle issues that arise with simultaneous contracts, but these are the main ones that lead me to believe that if your want to stay more focused, have a higher output and be day to day happier try to focus on one client only if you can.</p>
<h3>The team matters</h3>
<p>One thing about contracting is that you may end up working for companies that might not have the best team structure. That they need contractors to supplement their internal resources may indicate a staffing issue which can be for various reasons, there are plenty of exceptions to the rule and you can also certainly work with poor teams while working full time, it's simply that there can be a tendency to prioritise the higher payoff over good working conditions.</p>
<p>The single thing I focused on when moving to a full time position was working within a good team and getting a good feeling from technical and non-technical leadership within the company. This was simply the most important motivator for me and I highly doubt I'll ever regret using this as my barometer for finding my current position or future positions for that matter.</p>
<h3>Temporary decision-making leading to long term costs</h3>
<p>I have never had a client end a contract, it was always on me to move onto something else. As a contractor you might expect to work a 6 month contract, have it end, then move on. This belief can lead to short term decision making. For example, when you literally have a choice between a good and a bad team but there's a twofold increase in your day rate, sacrificing your day to day happiness is a legitimate option as these decisions all to some extent feel like temporary measures. The problem is, it has never played out like this for me. Despite taking many short term contracts, the clients always ended up wanting to renew. In a way this makes sense, it can be a pain to replace contractors who have decent internal knowledge, or perhaps the hiring managers plan to replace you has gone awry or it's simply just hard to find reliable developers.</p>
<p>The problem is that you might be making bad long term decisions while believing them to be short term ones and it can be easier to stick around somewhere because your comfortable and perhaps don't have the energy levels to make a switch right now. The lesson here is simply to be wary of short term thinking, as it can easily play out over the long term.</p>
<p>Up next, <a href="https://shanedowling.com/freelancer-lessons-part-2-e5700002d8b">Part 2</a>.</p>
</div>
<div class="tag-cloud">
<p>
</p>
</div>
</article>
<footer>
<p>© </p>
<p>
Built with <a href="http://getpelican.com" target="_blank">Pelican</a> using <a href="http://bit.ly/flex-pelican" target="_blank">Flex</a> theme
</p></footer> </main>
<script type="application/ld+json">
{
"@context" : "http://schema.org",
"@type" : "Blog",
"name": " Shane Dowling ",
"url" : ".",
"image": "/images/logo.png",
"description": ""
}
</script>
</body>
</html>