By calendar time, this little coding adventure is more than half over. That is largely because of my trip to NYC. The trip itself, plus all of the personal errands I had to do before and afterwards, cost me 14 days. Worth it, I supposed, since I did manage to find a place to live. On the tail end of this thing, I've calculated that I will probably lose 10 days to the move, since I didn't take that account when I came up with my estimated amount of time.
Work continues to go slower than I'd like. When I first began this I thought I had a real shot of getting this feature complete in 84 days. I...under estimated the amount of work. By a long shot.
Now, as far as my performance goes, I have noticed the following two things provide the most benefit, by far:
1. caffeine
2. not working on the stupid fucking database
Caffeine is an incredible, performance enhancing drug for the programmer. It's not good for you...not in the amounts that I'm using. But it sure as hell gets me going. I can plow right through distractions, tangential but pre-requisite tasks, tech debt, design decisions...anything. The obvious downside are there, of course...tachycardia, sleep impairment, nighttime and daytime teeth grinding, a sort of global jittery feeling and the sugar is sabatoging my efforts to get in shape. However...the amount of work I can get done makes it worth it in the short run.
Not working on the stupid fucking database...I don't know what happened. All of the sudden, I just can't stand dealing with relational databases. There's nothing inherently wrong with them--when you have a relational problem you need a relational storage layer--but I just don't like them. Everything is a giant fucking chore. You have to mess with the schema. You have to--sometimes--create a stored procedure to protected the schema. You have to use a database access library in your language of choice, and database access layers are a fucking field day for people who enjoy over-designing things. The greater majority of the times I stop work and start procrastinating are because I realized I have to deal with one of the database layers.
In other news, I sold my TV and while I did buy a ridiculously expensive projector, I haven't really felt like using it yet. So possibly the lack of TV watching is also making me get more work done.
Also, I am currently vetting two more android coders. I found them by posting a small teaser project to craigslist. Learning from my experience last time, I chose not to reveal my personal expectations of what a programmer should be capable of, and left the price open ended. I got about 20 responses, and two of them weren't idiots.
I haven't let them touch the main codebase yet, but I have had them prototype some of the features on the back log. Given the cost of hiring other programmers, I am optimizing for highest efficiency (as opposed to getting as much done as possible). So far it seems like the best thing they can do is track down tangents (e.g. go find an android QR code library that actually works and write test code) so that I don't get distracted from the heavy lifting.
I will probably let at least one of them start editing the main code base. I'd like to see if he is capable of working on bugs/tech debt, and also writing unit/integration tests. I feel like as soon as I have him touch the made codebase, though, I lose "bragging rights" to say I wrote the whole app myself. However, a finished app makes money; bragging rights do not make money. And its not like my ego needs to be fed.
Subscribe to:
Post Comments (Atom)

No comments:
Post a Comment