Eight weeks ago I concluded my 16th contract, yes, I have been contracting for a while, over ten years so far.
I enjoy contracting; I continually meet new people; additionally, by moving around, I have been fortunate enough to be exposed to numerous business domains, frameworks and tools.
We can’t ignore the elephant in the room, contracting pays well, especially when you have over 20 years of experience.
In April, my Wife had our second child, Niall. When we had our first child, we realised that the best way to provide the support my Wife needed was to take time off, there were so many positives with me providing the support rather than getting in professional help. Well, with Niall, we are going to do the same thing, I’m going to take at least a year off, primarily to help my Wife raise our brand-new son, secondly, to try and get the Costs to Expect service off the ground.
Costs to Expect is a project I had been considering for a while, during the summer I released the first version of the API; I plan to develop the MVP of the service during my time off.
Twelve months is not as long as you think, especially when you are a single developer. I’ve used Pivotal Tracker for years; it has become scarily accurate at predicting what I will be able to accomplish during a two-week sprint. I usually have two or three sprints worth of work in my backlog, according to Pivotal, it is going to be quite difficult to get enough of the service ready in 12 months, hopefully, if I plan well, I should be able to do it.
When I published the Costs to Expect API I was initially bemused, none of my OPTIONS requests worked, they all return “405 method not allowed”.
After searching, I diagnosed the problem. The HTTP OPTIONS request fails because the default PHP-CGI handler does not handle the “OPTIONS” verb.
The fix is simple, update or add the handler in web.config.
<remove name=”PHP72_via_FastCGI” />
<add name=”PHP72_via_FastCGI” path=”*.php” verb=”GET,PUT,POST,DELETE,HEAD,OPTIONS” modules=”FastCgiModule” scriptProcessor=”PATH\To\File\php-cgi.exe” resourceType=”Either” requireAccess=”Script” />
As I have mentioned before, I’m lucky enough to be able to take time off during the year to work on my projects, every time I take on a new contract my schedule goes out of whack.
When I’m not contracting, outside of real life commitments, I try to dedicate as many as 30hrs per week to work on my projects, when I’m contracting that isn’t possible, a 40hr week with travel doesn’t leave much free time.
The last two weeks have been an adjustment, I managed to log 5.5hrs the first week and 7.5hrs the second week, I’m on track for 10hrs this week.
Is this a real problem, no, the first world called and wants a tissue, the issue is expectations, during my summer off I steamed through my work, with reality hitting, productivity takes a nosedive. Eventually, Pivotal Tracker will update to show more accurate completion times; once I’m three sprints in, until then, it is frustrating looking at completion dates that are optimistic.
Why am I blogging about this? As the site byline says, I was musing.
As a contract developer, I’m lucky enough to have I have the luxury of choosing when not to work, I’ve just finished a six-month contract and rather than find a new contract immediately I am taking the summer off to work on my projects.
I have many personal projects, the big one that dates back years and then lots of small projects, one of which has become far more popular than I ever expected and is keeping me busy.
What does a summer off mean?
Outside of social and family commitments, it means I have a bit more time to focus on my projects. I always manage to find time to work on my projects, being a night owl, but it is nice to have the extra time, makes it easier to solve the more significant problems that you can’t entirely get your head around when you only have a couple of hours at the end of a long day.
In no particular order, I am going to support and improve my open source projects, learn Swift, write a simple app to interface with a RESTful API, develop the API and if I get time, work on my long-term project and do some charting and graphing work for a new website.
The above is a tall order for six to eight weeks; we will see in September/October how far I got.