I think I might be having a bit of a mid-life crisis. It’ll be my 35th birthday this year, and I’ve started to realise that I don’t really want to do much more of the Open Source’y stuff that I’ve been a part of for the past 10 or so years.
Don’t get me wrong. This isn’t me saying I want to hang up my linux user hat, put away the android phone, wipe the PHP manuals from my kindle or return an HTTP 410 code for everything I’ve ever published… but it’s getting close.
The rot has been setting in for some time.
November 2011 was the “first birthday” of CCHits.net – I’d planned to have my site-wide re-write of the whole code base ready for the birthday, but frankly, I’d massively underestimated the amount of work involved, so it wasn’t ready for November. As it was, a critical failure on my web host prompted me to “make” the rewrite work in April – nearly half a year after it was supposed to be in by. I’m not at all happy with the site layout, the way the tracks are build, the lack of adoption of the service by any other podcasters than the three who currently submit to the site (no criticisms there for anyone else, just a frustration really) and, well, the fact it never really achieved the vision I had for it.
In April, I helped to organise UCubed – a one day unconference about Linux and Open Source [1], held at MadLab, Manchester. We put less effort into organising it than we had the last few times, I pretty much wimped out on the day, taking my son to his swimming lesson (which meant leaving two hours after the event started, and returning an hour before it finished), and after the event, I felt like all I’d done was go to get the refreshments.
In July and August, I pulled a lot of 2 and 3AM finishes to get CampFireManager ready for OggCamp. I had some solid support from a guy called Jack who committed a load of great code to the project, plus loads of encouragement from the organisation team for OggCamp, the big day came, and, well, let’s just say there were issues. Quite a lot of issues really. I missed all of both mornings of talks because I was fire fighting those issues, and on the second day, I was held up as an example of “why not to code something instead of just doing it”. I had a top notch PHP engineer [2] sitting next to me while I was looking through issues, and even though I’ve gone through the theory of how the site works with her before, she couldn’t get her head around it. OK, I was skimming through the code pretty fast and I know most of it like the back of my hand so I knew roughly where code had gone and was going to next but still… code is code, right? Not if it’s crap code with unusual structure, insufficient testing, incomprehensible logic and, well, it’s just crap…
Before OggCamp, I inadvertently became the project lead for something I still don’t fully understand (although I’m a lot closer on it, to be fair): MOTP-AS. An implementation of the Mobile One Time PIN algorithm, written in PHP, tied up to a FreeRadius Server with a pretty web UI to give something a bit like RSA SecurID Authentication Manager server. Essentially, I made some suggestions on how to improve the code, and was told “Well, actually, we were pretty much going to kill off the project after the next release – do you want to take it over?” and I, in hindsight, stupidly said “Oh, OK”. I said that from October, I’d have “loads” of time, and was going to re-write the code base using Object Oriented principals, was going to roll in Unit Testing, PHPDocumentor and, theoretically, move to using a sensible framework to render the whole thing.
The hindsight thing I mentioned there? On the 28th August, my father passed away. I’ve not really talked about it much on Social Media. It’s a pretty hard thing to do, as it may mean airing an awful lot of dirty laundry as a result, but I guess the outcome of that was that I’ve been spending a lot more time away from my home, staying instead at my fathers home where I have been clearing it to sell it, and when I’ve not been away from home, I’ve wanted to spend more time with Jules and Daniel.
The first couple of trips down to my Dad’s house were on the train. I tried to break open a text editor and start turning out reusable PHP which I could form into something in MOTP-AS, but let’s be serious about this, it was like trying to read a book in the same circumstances – you just keep reading the same page over and over again, but nothing “right” comes out the other side. I’ve not had the enthusiasm to even start to look at that project since then.
Everyone I was working with – CCHits, CampFireManager, MOTP-AS – all knew I was offline, and would be “for some time”, but the funk that set in on that train hasn’t shifted yet, and I still can’t work out if it’s something to do with my Dad, or just the fact that I’m not really feeling the code right now.
At a recent PHPNW session, Lorna said (although I am paraphrasing) that most of my bad practices come from a lack of exposure to other PHP developers, and that working as part of a team towards something would help. My day job has nothing to do with coding (and there’s no scope to bring it into my role, and the few times I’ve tried to bring it in, it’s caused me more issues with my work than if I hadn’t) and 5% to do with open source software (the 5% is due to the OS that many of the devices we support are RedHat, BSD or Solaris based). I don’t want to, and can’t afford to make a career change now (aside from anything else, I still love my job, especially what I’m doing at the moment) to get that experience, and I’m getting closer and closer to burning out on the projects I’m involved in – just because there’s no one else who understands it like I do… which is sad.
When I do start to code in the evenings, what I tend to do is think of something I’d like to write (yep, starting a new project will fix *everything* Jon!), open my IDE, try and work out what I want to learn to use this time, and start reading the documentation for it… and not actually start working on the project. And then 2 hours have passed, I’ve done nothing, and frankly I could do with going to bed.
So, how do I beat this apathy folks. Is there anyone out there who can help?
I think if I’ve not sorted something out by June, I’ll close down CCHits.net. It’s been a great blast, but I’m so nervous of something going wrong with the system and it collapsing like a pack of cards… which is a real shame as HPR [3] have just said they’ll be running the daily shows in their Icecast server when “real” feeds aren’t being streamed, that and I love discovering, or re-discovering the music which is played through the system.
Likewise, I think I’ll probably try and find someone to hand CFM over to during OggCamp this year, and if I can’t find someone to hand it over to, I’ll shut it down. Again, it’s been fun, but I don’t need 2 months of sleepless nights and 2 days of sheer panic for something which ultimately could be replaced by a sheet of paper and some post-it notes.
Of all of the projects I’ve mentioned, the MOTP-AS part is most likely to be something of use to me in my day job (which was, in fact, how I came across it… for our lab network), so I might make more of an effort with that, but again, I really can’t see me being happy with it at the end of it all.
[1] It used to be about more than that, but frankly, it’s what it turned into.
[2] Plug for that top notch PHP engineer who, fortunately for me, was happy (or if not actually happy, appeared to be happy enough) to be an observer, a person to bounce ideas off, a muse and cheerleader (sort-of) for those two days of hell – http://LornaJane.net
[3] HackerPublicRadio.net – a podcast network made up from individual posts by the community.
“So, how do I beat this apathy folks. Is there anyone out there who can help?”
Don’t know if it helps for me to say this, but it sounds like you need to take the weight of responsibility for these coding projects off your shoulders. Sometimes it can be quite a relief to make the decision: “This is the end for project x”. It’s different to “I’m busy but I still feel guilty about it and so I *might* get back to it later.”
Don’t get me wrong – open source projects are awesome, but I know for myself that sometimes I simply need to reduce my commitments and focus on the big, important aspects of life. I’m sorry to hear about your father. Dealing with a loss like that takes time, and I think it’s important to be okay with that.
And hey – when you need a little distraction, I reckon that opening your IDE for an hour, reading some documentation, shutting down the computer and going to bed is just fine.
Apologies if this wasn’t really the time for a random stranger to drop by and put in his 2p!
Thanks for the feedback AndrewK. I think having read some of the reactions, and had some discussions with some of the communities around the projects, some of these are going to be “I’m busy and I won’t be doing anything with these projects” rather than “It’s the end”, but… I’ve seen so many projects stagnate and I don’t want to give people false hope that I’ll be making a huge commit when the reality is that I don’t know when I’ll be able to do that.
So… it was the perfect time to drop in your 2p :)
First of all, despite the issues, you did a brilliant job with CFM (several times over!), thank you.
I’d agree with Lorna. It can be hard to keep up the enthusiam to work on an open source project which by its nature is meant to be a collaboration, if you’re not collaborating with anyone. I maintain quite a few small open source projects, and the thing that motivates me to come back to work on them is when people send patches, report bugs and ask questions. If you dont think you’re getting the validation you need from a particular project, it’s just a drain on your time, effort and morale, so it’s right to stop it.
If and when you get a hankering to write some code in the future, perhaps look at contributing to a well-established project with a big community. The projects I maintain are all Moodle plugins, which gives me a great community of developers and users to draw on, even when my project’s just started.
Hope you’ll still be at the next OggCamp, and it’ll be more enjoyable for you than before!
I can’t imagine I said “bad practices” but then I’m not renowned for my tact! I stand by my point – I think you’d get a lot out of open source especially dipping in and working with other people, and if the projects you worked on weren’t things you personally were responsible for. Shut down what you have, take time to do other stuff, family/technical/off-the-wall/whatever things. Then see if you get hungry for more.
Also: campfire manager was a damn good idea with some really awkward bugs on the day. I’d like to see someone make something like it (but maybe simpler! This project always blew my mind a bit) at a hackathon, and am filing that thought for later use.
Yep, in hindsight, it wasn’t “bad practices” you said, but that’s how I interpreted it, because I think we both know my code is a shocking mess of a bundle of bad practices all ready for me to knock all the edges off… it’s just how to get to that point!
Realistically I need to stop writing stuff anew, and just contribute to something to start learning better practices… whether that’s code standards, testing, or whatever… I just need to stop working in isolation, otherwise I’ll never get any better at this.
Dude,
Seriously, if you think your coding has bad practices what does that make all of my code? :)
I was saddened to read the above post but whole heartedly agree with everything you said on it.
You have to put family first, otherwise you will miss the point of having them :)
As another poster said, how about hanging it all up for a few months and see how you feel? Maybe just taking one of them on board if you still want to do stuff around the coding arena?
Always here if you want to chat buddy :)
– Antony
Thanks for that Antony. Your code is a little like reading Olde Englishe :) Legible, but sometimes difficult to understand how you got there ;)
But yes, this was a year old, and at the time I wasn’t in a very good place for all sorts of reasons. I took support from the responses at the time and I’m now starting to pick things back up at an appropriate pace without letting it get to me. I do realise I’ve got a bit of a todo list (and yes, your project is on there ;) ) but it’s not a big issue because I know I’m not in a huge rush to get it all done, and I’m OK with that.