I delivered a talk about on technical debt at NDC Sydney yesterday. In it I talk about the problem with bad code is not the code itself, it’s us. The people who create it. I also talk about the fact that we need others around us to help us spot the problems we don’t see, and to hold us to task when we get lazy, or take shortcuts as a response to pressure. I talk about how it’s important to stay open to learning and to get your code reviewed by others, preferably in real time via pair and/or mob programming.
It’s a fun talk and hopefully gets people thinking about the biggest problem in software development; ourselves.
One of the people who was in the room caught up with me later in the day while I was chatting to Brendan Forster (@shiftkey) and asked for advice about a scenario that we hadn’t really considered before.
He’s the only developer in a small company of seven, living in an Australian regional town. He has no other technical people to work with. No one to point out when he’s writing bad code, or when he’s responding to pressure by taking shortcuts. He has no one to do code reviews with, and no one who he can learn from and with. Additionally, while there are other developers in the area, there’s no local developer community and attempts to start a user group have been short lived, at best.
So what then should he do?
We talked about options but I don’t think we came up with any great answers, and it’s been bothering me. So, I thought I’d put this out there and see what you all think. What we did come up with was to try a mix of some or all of the following and see if anything works.
1. Use codereview.stackexchange.com
CodeReview has a pretty friendly community that is always willing to look over your code and provide thought about it. As a solo developer, posting code there can be helpful in rethinking the way your code is written and can help you uncover your blind spots or identify gaps where you need to do some more learning. CodeReview isn’t the same as pairing, but it’s going to be better than never having anyone else look over your code and give you feedback.
2. Start a local developer coffee club
User groups in small regional centres tend not to struggle as it’s hard to get speakers and fresh content. Organising them takes effort and the turnout is small. They tend to die off quickly as a result.
We suggested that maybe it’s worth trying to get people together for coffee (or covfefe!) in a casual, unstructured environment. If people crack out their laptops and share ideas or look at each other’s code, that’s great! If they just talk about the different challenges they face or what’s happening in the industry, then that’s great too. As a solo developer, some form of community connection is going to be better than none, and meeting over coffee is a low risk, low commitment way to do so.
3. Try to find a mentor
This one is a little more out there. Run a quick search in your favourite search engine and you’ll find a range of different developer mentoring services. I’ve never used them myself and I don’t know people who have, but using one might help you find someone who is willing to help you improve, even if it’s only part time. Obviously in small companies with limited budgets, this might be hard to arrange, but it’s something to look into.
…And that’s all we came up with. Hmmm. As you can see, that’s not a huge set of options and, at least to me, nothing really jumps out as being a good way to help solve the challenges of being a solo developer in a small town.
If you’ve got better ideas, or know of approaches that have worked for you or someone else, send me a tweet Tweet to @rbanks54 and I’ll update this post with your ideas.