Thursday, October 23, 2008

12 Days: Cut Early

When I built Puzzazz, I built a mobile version of it, with pages specially designed for small screens. I also let you switch which version you get if you prefer the desktop version on your cell phone. Building the mobile version of Puzzazz took me, literally, a few hours. A fair number of users visit Puzzazz from their mobile phones,when they have a minute or two and decide to solve today's puzzle.

For Groupthink, I think mobile usage will be even more important. However, because Groupthink relies heavily on client-side code in JavaScript and many cell phones don't support JavaScript, supporting mobile browsers properly is a lot more work. Among other things, the mobile version requires more (and different) server support.

Today, I decided to cut the mobile version for my first launch. It's a cut that I hate to make, but it's the right time to make it. So far, I have written almost no code for the mobile version and none of the code that I have written is a problem -- it can all remain unchanged. It's one line of code to cut the mobile version, but, by cutting it, there's a bunch of new code that I don't have to write yet. And, the desktop version will still work on many mobile phones, so I'm not abandoning those users. In the meantime, I'll continue to note places where I have to do a mobile-specific branch and I may even write some of the code, but the big piece of work -- the mobile-only work -- I will defer.

Far too often, particularly at large software companies, cuts are made helter skelter. They have 5,000 features they want in the application. That's a problem in the first place -- they're looking at feature lists instead of the big picture. They pare that list down to "only" 500 features, which they start to implement. A few months in, they realize they're behind, so they cut some features that are half-implemented. They repeat this process a few more times. By the time, they're done, they have 400 partially-implemented features that they've tossed and a 100 actual features they plan to ship. Now, if they had back all the time from those 400 killed features -- if they would only cut features before they start implementing them -- they could have made the features they actually did ship better.

I really want to launch on time and I know that time is tight. I'm not positive that I actually need to make the cut, but I'm being conservative and I'd rather cut it now than cut it later. By cutting it now, I'm freeing up time to finish everything else. I can use the remaining time that I have more wisely and I don't feel too bad about the few hours that I've spent on it so far. And, it's a clean cut, with no repercussions in the code. And, just to be clear, Groupthink will absolutely have a mobile version -- it just won't happen as soon as I'd like.

Family First

Speaking of the time that I have, I'm going to be absent from this blog for a few days because of a family obligation. Tonight, I'm flying to Michigan to help move my father-in-law to an Alzheimer's care facility. It's sad that we have to do it, but the time has come. Originally, we had thought that my wife could do it on her own and I would stay here and work. But it became clear in the last few weeks that she couldn't do it without me. And, even when I'm in the midst of a crazy 30-day project, family has to come first. I'm taking my laptop with me and I will try to work as much as possible. Unfortunately, I probably won't have an internet connection (and the 15" screen is no match for the 24" one I normally use).

I get back on Monday, but may not blog until Tuesday.


Post a Comment