Everyone from your Grandmother to friends that don’t have children will tell you that having children will change everything. They are right. Since my beautiful daughter was born three and half years ago my family and I have moved forty minutes outside of London, I have changed my working hours to work around childcare, added a beautiful boy to the family and at times have been the sole earner in the family. I could not be happier but it has brought new challenges for my wife and I including finances, managing work schedules, childcare and handling unexpected expecteds like chicken pox.
The bus factor on a project is the number of people that need to be run over by a bus before software has a major problem. If your bus factor is one then you have a major problem in your project. In the context of having a family the bus factor on a project is important in that if you are the only one who knows how something works you will get phone calls in the middle of the night. If the bus factor is three or four you might well still get a phone call but you will be able to manage things much more easily. The fact that this makes a project more family-friendly is a happy side effect of good software practices. A healthy bus factor is good for a project in general but as a parent it can help when you need to drop everything to pick up a sick child from nursery.
The reason I love our industry so much is the need to reinvent and learn new skills all the time. I have over ten years of experience of programming now and in that time I’ve covered the whole stack from tweaking kernel settings for optimum performance to making pngs for the UI layer. I’d estimate that every two years I have learned an entirely new language sometimes from scratch. I love this.
Before children I used to hack a lot at the weekends. I would explore new languages and play with technologies. This has become more difficult with swiming classes to attend, washing to hang out, and food shopping to buy. But there is still time in the day when the children are in bed to open a laptop and explore. I don’t consider this work. It is just something I do and something I need to do. It seems to work for the relationship my wife and I have too. Equally she needs personal time.
Playing an active role in technology communities is really important to me. Before children and moving outside of London I was a regular attendee at LRUG and a sporadic attendee at LNUG. With childcare and living outside of London attending meetups and conferences it has become more difficult. I still manage to get to about three or four conferences a year and a few meetups but each one requires planning around childcare and my wife’s work schedule.
For me what works is to increase my interaction with community asynchronously. Increasingly meetups stream or record talks and this is invaluable for someone like me. There are a huge number of podcasts, mailing lists and news aggregation sites available and these help me stay on top of what’s happening in my interest area. If I ever do get the chance to meet people face to face I grab it wherever it is.
In my experience our industry is full of open-minded progressive minds. We are not stuck with processes and protcols. In fact we are tearing them up one by one. Management structures, working practices and locations are all being disrupted by our industry. The idea that you can operate a results-only workplace is great for a parent. Providing you do the work it doesn’t matter where, when or how you do it. My generation is redefining how we work and if governments don’t want to make workplaces more family-friendly we can just do it ourselves. Most online businesses I know have a remote working policy defined in a large part by employees.
In all of this my parents inspire me that this is achieveable. My father worked as a lighting designer in the theatre, a job that is far less family-friendly than mine. He worked on London’s West End, Broadway and was often away in Europe working on shows and spectacles. During that time my mother managed to look after us as well as having a full-time job. We had a really happy childhood and it makes me determined to do the same for my children.
Being a good parent and working in technology is not mutually exclusive. If you are developing software in a way that is sane and maintainable it should require only an employer that supports flexible working for it to work. We are lucky to work in an industry where people are open-minded and in my experience if you deliver results employers generally don’t care how or where you work. I have found our industry to be family-friendly and I see no reason why you can’t have a full family life. Most of the changes that I have made to my working practices are simply just good software practices and good time management. In return I get to see play a big role in bringing up my children that in the grand scheme of things will always be the most important thing.
Have an update or suggestion for this article? You can edit it here and send me a pull request.
Build your own Vim statusline
Statuslines in Vim are not hard to create. Making your own means one less dependency in your life.
Custom Vim Bindings in tmux 2.4
tmux 2.4 made a significant change to key bindings. Here is how to support custom keybindings for versions before and after tmux 2.4
Using template files in Vim
Vim templates or skeletons, allow you to specify a template to be used for new files with a certain extension.