Too Much Work, Not Enough Energy

May 24, 2017

It’s not like I haven’t wanted to write more in this blog, but this all consuming project of the past 16 months has taken all of my time and energy. So far this year I have worked most of the days including weekends until recently.

Yes I wrote I wouldn’t do that. But there isn’t much choice given the high profile nature of the project, the complexity of everything, and especially that the team I work for being the lead team for something with more zeroes in any budget I have ever seen. Despite the grandiose budget our team is usually tasked with more work and less money given a budgetary process that makes no sense to me, and we all tend to get it done anyway despite whatever is expected of us.

Also they pay me a whole lot which makes it more palatable.

Not only have I worked on the iOS public facing app addition for 16 months, which is the longest I have ever worked on anything in my 36 years as a programmer without shipping anything, but I had a second internal app to do as well which I generally built on weekends. I don’t work crazy hours but the grind of every day is still tiring.

Everything in this project has changed continuously over the lifetime of the project, and besides has hundreds of different configurations which can be turned on at will making testing a nightmare. I can surely say I have never seen anything as complex as this project has been.

We are close to finishing, and when it does ship it will look good on my resume, since it will be easy to explain, and it won’t ever vanish like everything I did at the travel company two jobs ago (where our parent sold the brand and tossed everything else) and my last job with all internal apps no one will ever see. My manager at the travel company before he left to come here asked if he could get a role for me would I follow; it took 18 months but it was the easiest job I ever got, basically all the interviews were “please please move here”.

Given the insane nature of this project, the ridiculous processes, the 6+ team deep service stack, living in an app environment built out of 80 repositories by way too many mobile teams, the large number of contractors including all the testing folks being offshore, the fact that this project was the highest profile one in the entire division (which by itself would be a giant public company if that made any sense), and that our iOS team is me, my partner in crime who is half my age, and a single contractor I was able to hire, it’s a good thing I did come.

I’ve never worked on anything remotely this complicated in my life; I’ve always favored small teams, even when building large projects previously. This crazy process driven place, many of which are actually counter-productive, and equally ridiculous decision making environment—no one is actually in charge of the whole project, it sort of lives under an army of people and coordination is haphazard at best—can try the patience of the most patient person ever, which usually I am not. I surely hope this company and its issues are unique and where you work is normal and sane!

We aren’t a technology company, yet we depend on technology especially throughout the business of this division. We can be clever and inventive and yet at the same time backward and clumsy. Often we excel at being penny wise and pound foolish. There are amazingly talented people on the team with me, but overall the division has way too many contractors, onshore, offshore, direct, indirect, and every kind you can think of. Just keeping all the people, teams, responsibilities and of course the politics straight is hard. I spend much of my day sometimes going from Slack channel to Slack channel, seeking and moving information all over the place and yet my job is ultimately writing code, so it's hard to balance time. We have achingly stupid problems like a CICD environment that breaks continuously (yes that's a pun), testers overseas who seem to test nothing, insanely edge case service issues because there are so many business complexities, and other things I won’t mention that make the overall project lurch into the future like a bad version of Thriller.

Our iOS code is only part of the public application, but it will be the largest part of it, and the entire project will be the largest software project this division has ever done that will be launched in a single day.

As in an airline, where the product is a moving seat, and the application is not the product, so is it with us. The mobile applications are very important and most people use them, but unlike something like Facebook it isn’t what people pay for (if you think of paying for Facebook by being inundated with ads). To keep with the airline metaphor, this project is like an airplane, to get anywhere every single thing has to work at the same time. No matter how good your plane parts are, if the tires are missing you are not going anywhere. if the controls are not in you can’t take off. Our project either works entirely or not at all. It’s a scary thing.

So my brain has been pretty dedicated to remaining afloat in a sea of complexity and not much remains to write or even work on anything at home. Assuming we get this sucker out soon maybe I can write all those ideas I want to put down in this blog; maybe I can even take a vacation (none since Dec 2015).