Last week I published a post about my plans to refactor an old project I haven't touched in about a year. The refactor I have planned is extensive, but there's no hurry - the tool works fine right now.
Of course, though, we live in a mysterious world, and a few days later the admins call me up and ask if I'd be willing to work with them on an entirely new feature. Why now, after so long, I don't know. I can only assume divine intervention.
In brief, keeping the classrooms appropriately staffed throughout the day is a non-trivial problem, and keeping staff around the building updated on last-minute adjustments is even more complicated. They want a UI that will allow them to build these schedules that's aware of staff-child ratios and generate individual staff slips for the day. Then the staff could just navigate to a webpage to see the current status, instead of relying on a big game of telephone over the walkie talkies. Anything to cut out chaos.
I'm unexpectedly torn.
Pros:
- I was already planning to dig into this codebase anyway.
- I believe they've correctly identified their problem, and their proposed solution would greatly help.
- I've remained friends with these people since leaving that job - we help our friends.
- I want to do it. It's a neat, interesting problem, and since they've asked me my brain has been firing on overdrive about it. I already have a good idea about how it's gonna work.
- It's a project - you usually learn stuff doing those, and then have a bigger, more impressive portfolio.
- One of the admins is learning how to code himself and willing to contribute and learn in the process.
Cons:
- It will involve a major time commitment.
- I will not be compensated for this time.
- The aforementioned learner is really, really new and likely won't affect the total build time by a lot. This is more "neutral" than a con, and I think a project like this is a great way to build skill anyway.
Really, that's it, but I'm worried the time commitment outweighs the pros. I'm just not positive how to quantify it.
The way I see it, time I spend building software does have some inherent value to it, but it's hard to pinpoint exactly how much. For starters, I've never been paid a single cent for any code I've written. Going on historical precedent alone, my time is not worth anything, but I know it's not as simple as that. I am capable of creating value via software, because software I've written has freed up paid employees to spend more of their time on tasks that computers cannot do. There is intrinsic value there.
Who cares, though? Knowing I'm doing a favor doesn't make the favor not worthwhile, and if I'm not currently getting paid to write any of my code, why should I care that I'm not getting paid to write this code either? I deeply enjoy coding, I choose to do it as a pass-time, so why worry about value.
However, my time is also not infinite, and there are other things I use it for. I know myself, I'm going to want to get this done for them, and it will necessarily take time away from other endeavors.
I don't feel overworked, in fact, quite the opposite, but when I start to break down how I spend my week it starts feeling a little tight:
Hours/week: 168 (7 days * 24 hours/day)
Activities by hours:
- Sleep: 56 (ish, I do strive for 8 hours/night but sometimes fall short)
- Full-time non-tech job: 44 (including commute)
- College classwork: 15-20 (varies by week)
- Tech job hunt: 10-12 (resume tweaking, listing searches, cold emailing, interview practice)
- Errands: ~3.5
- Physical exercise: ~3.5
These are the non-negotiable items, and the using the higher bounds net me 28 hours a week of time for other stuff I want to do, or 4 hours a day. This actually sounds pretty cushy, but disappears quickly - I have a number of side projects I'm working on, I have a girlfriend who would be annoyed she places under "side projects", I like playing long board games and going on big hikes and stuff - and I do feel it's pretty damn important to not let these other aspects of my life slip. The list above is full of "Ben is sitting at a computer", I'm not thrilled about the prospect of sitting at a computer for the rest of my week too.
I'm probably going to say yes with the caveat that it won't be quick, but I'd be curious to hear how all y'all handle requests like this. Did it change between when you were an amateur and when you went professional? Would you say yes to this project?
Photo by Djim Loic on Unsplash