I spent the evening scraping wallpaper off a wall and listening to Hanselminutes Podcast: What do Web Developers Need to Know in 2014. It got me to thinking of my life, my life balance, and what I could do to improve.
Which Project?
My ideal situation would be to spend time building a meaningful project in a technology that I want to learn. Unfortunately, a “meaningful” project = a “useful” one, and it would take far too long to write something useful. (And by long, I mean more than the 3-4 hours I have available in a week). The projects, in case anybody wants to tackle them, are:
- A “Burndown” tracker: Tasks break into smaller tasks, assign cost/weight/left at the leaf levels, keeps track of growth and shrinkage as requirements change, and can track current completeness level. For use in larger corporations where the estimate is “locked”, the ability to lock something down so it always is in the same units, but the % changes, even if the underlying components grow and shrink.
- A “Choreban” board: Like a Kanban board, but tasks have the ability to rewind/repeat, and you can control their buoyancy – how quickly they float up to the top of the priority list. 3 days past due on Cat Litter is way worse than 3 days past due on Grass Mowing, if you know what I mean.
Which Technologies?
There’s also the list of technologies to play with. Thanks to my wonderful workplace, my wish to work with WPF has been fulfilled; I can cross that off my list; however, I find myself lacking in / desire to get experience in:
- Using a Grid system for a web site / styling (Bootstrap3)
- Using some of the JS frameworks out there to write a single page app (Angular, Knockout)
NoSQL- Some kind of Cloud deployment – Azure or otherwise
- Some kind of system with scale – OpenID to log in, lots of users, lots of data.
I crossed out NoSQL, because after listening to Martin Fowler’s talk on it, I realize, it would take a very special problem area for me to find use for one. Neither of my two projects listed above make for good candidates, other than perhaps, “everything this user uses in the system.” Which would be trivial.
When?
Ah, herein lies the rub. Here’s my life, in a nutshell:
Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday | |
Morning | paycheck | paycheck | paycheck | paycheck | paycheck | Friends | Wife |
Afternoon | paycheck | paycheck | paycheck | paycheck | paycheck | House | Wife |
Night | Mentoring++ | Wife | Gym | Recovery | play | Recovery |
Note what is not in my life:
- I don’t watch TV
- I don’t play computer games (at the moment)
The table above is not high enough resolution to show that on most nights, my “productive” night finishes at 9pm, and I consider 9pm-midnight to be my “play” time. Tonight, I’m using my play time to write this post.
I could push myself extra hard, and … no. Not going there. I am currently working at about capacity – pushing myself harder is not doable in the long run. I love that I get to spend time with my own beautiful Wifeling. I love my Recovery meetings. I’ve actually scaled back running a lot, to basically once a week, for the rest of winter. I need space to rest, recharge, play, etc.
I should state that my workplace allows for 4 hours of “self directed project” time. Yet, I find myself unable to use it reliably – My “best” output in a day is about 6.5 hours of coding, so I end up working all 5 days of the work week, and not being able to fit in the self directed project. I’ve tried like heck to raise that number – actually, at my previous job, my best days were about 5 hours of code (and probably 4 hours of meetings) so I’ve definitely made improvements – but no cigar. My brain can only do code for about 6.5 hours in a day. If its a really juicy problem, i can get to 7.5, but then i become less useful the next day. When I hit my limit, I stop billing.
(I am slightly jealous of some of my co-workers. They have this, “sustained focus” – they can work on the same thing for many hours. I, on the other hand, have this frippin “squirrel brain”. I wish it were not that way, but this is what I have.)
I highlighted the Mentoring thing above, because what I could do is go downtown, do the mentoring thing from 6 to 8, and then hang out at the hacker space and use that as “project” time – to work on some of these projects. As long as I get the garbage taken care of on Monday night (Tuesday night is normally garbage night), that should work. I might try that.
Priority
Ah, but if I have a cool little project to work on .. my wife just came up with an idea .. that is where my creativity goes. Not programming, unless the programming is directly related to the project (it would involve some coding on OpenScad, and maybe some work reading in a picture and getting to the pixels)
The Reality
Its not going to happen. (It being, working on using these new technologies in a side project). There’s not enough time to make a project useful, and there’s far too much good stuff going on in my life, that I’m not willing to set aside to spend the time on this.
Instead, what I will do is, continue to learn by watching – being aware of what is out there (queue: we do something at work called “BrainNom” where we gather with lunch and watch instructional screen casts on a variety of topics. This next Monday is Bootstrap 3, and Angular should be coming up soon), and rely on a work project coming up which needs those skills – at which time I’ll develop exactly those skills that are needed.
My True Skills
#1: My ability to pick up on patterns and knowledge very quickly.
#2: Deciphering what people need, and being able to convert those into plans for what the software should do.
#3: A good eye for overall simple system architecture, component reuse, data-flow, and effective UI. (Note I said effective, not pretty. My UI is not pretty).
These, and not my technical-prowness-of-the-week, are what make me valuable.