The next chapter - we’re moving…
For those who haven’t heard yet, this year my family and I will be going through some big changes. This week I received confirmation from New Zealand immigration services that my work visa has been approved. Early next month I will be joining MYOB in their Auckland offices to work with fellow South African Martin Cronje as well as a bunch of other great people.
Moving to the other side of the world with a young family is no small decision, to put it bluntly, it’s been an emotional roller coaster ride. The hardest part of the move is the realization that we will be leaving family and friends we love behind - some of whom we may not see for a long time if ever.
While we are sad to go, we are also excited. Having spent a brief time visiting New Zealand, we are looking forward to raising a family there. New Zealand has it’s own set of challenges and opportunities - but this post is not going to be about that. Today I would like write about some of the things I started that I have already or will soon be saying goodbye to.
In 2001 I started a small software company creating manufacturing software for the kitchen industry - we called the company Maxima Software. At the time I was young and naive with aspirations of making my millions. This month I stepped down as managing director of Maxima and sold my remaining shares in the company bringing to an end a 15 year involvement.
Did Maxima achieve what I wanted it to achieve? Well, I never made my millions from it if that’s what you are wondering - I did however have a bunch of experiences that have made me a better person.
Without Maxima I wouldn’t have had the opportunity to fund a 2 year sabbatical to serve as a full-time missionary for the Church of Jesus Christ of Latter Day Saints - an experience that has had a major impact on my life, who I married, my children, education and what I value. If you are interested in finding out more about my experiences as a missionary, I would recommend you watch our SACTM videos - it gives you a glimpse into what the day and a life of a LDS missionary is like.
One of the valuable experiences I had at Maxima was learning the end to end life cycle of a software product. From conception to development to marketing to supporting - because of the size of the company I had to be involved in every aspect. Maxima has taught me some of the principles of the business of software that I hope to leverage going forward.
Another great experience I had with Maxima was the opportunity to serve for two years on the Gauteng board for the Kitchen Specialist Association. While on the board I got to see how some of South Africa’s kitchen industry leaders think - working with directors and representatives of Easy Life Kitchens, Sonae, PG Bison, Show Cupboards, etc. Many of the lessons I learnt from being on the board of the Gauteng KSA bled through into how we structured the DeveloperUG.
At Maxima I also had the opportunity to work with some great people. The first full-time software developer that Maxima hired (barring myself) was Brendon Page - I had the pleasure of working with Brendon for ten years before he eventually left Maxima. I still enjoy touching base with him and finding out how his career is progressing. My biggest take home from Brendon was his passion for creating software and his love of sharing that knowledge with others. He is a true talent.
A couple of years into working with Brendon, his brother, Jayd joined Maxima as a software developer. Jayd is the polar opposite to Brendon in so many ways, but is also just as talented a software developer and someone I have loved working with. My biggest take home from Jayd is his sincerity in seeing people as people first.
I also had the brief pleasure of working with my brother Jonathan - when I left Maxima full-time as a developer, Jonathan had just joined. While I wished we had more time to work together, I’m excited that Jonathan is going to carry on with Maxima when I am gone and has also taken up involvement in the DeveloperUG as one of the current organizers.
In late 2011 after having moved up to Johannesburg from Durban I wanted to be involved in the local ‘software’ community. My first experiences with the community were at ERDUG (a small community organized by Andrew Jackson). ERDUG met occaisonally on Saturday mornings and while I loved being involved, it was a challenge to give my Saturday’s away (especially with a young family) and the travel.
The DeveloperUG originiated as an attempt to form a group closer to where I lived that met and on a week night (which gave me my Saturday’s back). The group was originally called the ‘Programming Languages User Group’ however we soon discovered that ‘learning’ a language as a user group was not something that promoted a group to grow or embrace new comers. So after several months we renamed the group to the DeveloperUG - made it focus on more general topics that were still of interest to software developers - and hosted the events on meetup.
The success of the DeveloperUG has been surprising. From a small group (5-7 people) that met once a month, the group has grown and grown. We still meet once a month, with the original group meeting in Bryanstan at Microsoft’s campuses and a off shoot group which started about 8 months ago meeting in Pretoria. Total membership of the DeveloperUG currently stands at 1750+ members with an average attendance at the monthly meetings ranging between 50 to 100 people (depending on what month of the year and who is speaking).
One of the great experiences I had with the group was being involved with the other organizers. Not only have I had the privilege of working with other talented and passionate people (Terence, Robert, Candice, Bryan, Botha & Sean) in organizing the groups events, I have also had the privilege of forming some great friendships with these people.
With Robert & myself leaving in a short space of time there is some concern about the future of the group. I’m not too concerned. Firstly, we are welcoming new members into the organizing committee (Jonathan Pearl and Bradley Van Aardt) who will continue to support the seasoned organizers (Candice and Terence) for the Johannesburg group. Where the group goes forward is up to them. My advice to them is to keep it going until it stops becoming fun - at that point find others who share the values and passion for the group to carry it on, or if unable to, put it to bed.
The foundational principle of the DeveloperUG is to do what’s in the best interests of the local software community. As long as the organizing committee keeps this as it’s core measure they won’t go wrong. For me this includes providing a safe place for software developers to meet, learn new things and interact with other software developers without being suspicious of whether there are ulterior motives of hiring or selling a tool. Another responsibility I have always felt the group had was to grow new ‘speakers’. Personaly I have learnt a ton from speaking at conferences - and before one speaks at conferences it’s important that there is a place where one can get speaking experience - I see this as one the DeveloperUG responsibilities.
One personal goal that I never had an opportunity to properly pursue with the DeveloperUG was to connect South Africa’s different software communities spread between the major cities in the country (Johannesburg, Pretoria, Cape Town and Durban - I understand that there are other communities not in these cities but I feel this is where the major software developer groups are).
We were slowly getting to the point where we had raised enough funds and established enough relationships with other groups to fly speakers from different cities to present at other groups - in essence creating a speaker circuit. If I look at the effort it takes for a speaker to prepare decent content it seems a shame not to be able to present it to multiple groups. I’m hoping that at some point this is done by someone - unfortunately I just ran out of time.
Through our interactions in the DeveloperUG - Robert, Terence & myself had for several years been threatening to organize a large developer conference. All three of us had missed the “TechEd” style conferences that used to happen back in the days - and while we really enjoyed the existing community conferences like JSInSA and Ruby Fuza - we felt there needed to be something that focussed more on ‘corporate’ developers that was NOT vendor owned - say hello to ‘DevConf’.
Originally DevConf was going to start small - we were confident that we could get 100 people to pay for tickets for a one day conference. Looking back we made several great decisions by accident including…
- Paying a logistics company to handle the physical organizing (Michelle & Celeste from Fizz Marketing were brilliant)
- Approaching the right key people for sponsorships (BBD were the first big guys to support us and once they signed up we knew it was going to happen)
- Making the conference a one day mid week event (This legitimized the event and got the audience we wanted)
- Marketing for speakers and attendees (We had an amazing response from talk submissions and from people buying tickets).
In the end DevConf ended up being a lot bigger than we originally planned - I seemed to remember us capping tickets at 480 attendees and still having enough requests coming through that we could easily have sold another 200 tickets had the venue allowed for it.
DevConf was by no means a perfect conference. We had issues with air conditioning, sound in rooms, etc. - but it did prove that there was a need for this type of conference and we were able to raise enough money from the first conference to put down a deposit for next year (organizing a conference is very very expensive).
Sadly I’ve made the decision to not be involved in DevConf going forward - organizing a conference from the other side of the world is more than I can bite off right now. Luckily Robert is still keen to go ahead with DevConf for next year. I am hoping to be able to attend some time as a speaker.
Driven Alliance (aka Driven Software) has been an integral part of my life for the last 4 years. In August 2012 I was approached by Garren Smith to see if I was interested in replacing him at Driven as he had decided to move on. Garren was as far as I know employee number 1 (barring Kevin who owned Driven and was employee 0) - I joined Driven as employee number 2. What attracted me to Driven was Kevin’s intense desire to form a company that put people first and focus on mastering writing software. From day one it was all about the people.
When I joined Driven we had an in with a team at a large financial institution. My first engagement in Driven was as a ‘scrum master’ for that team which went by the name KeyBlade (it was a little fuzzy what my exact title was or what I was meant to do in the team - I think I was a scrum master, I’m not really sure - we didn’t get stuck up on titles too much - if something needed to be done we did it).
Since I was new to the ‘agile’ stuff I figured the first thing I should do was find out what ‘scrum’ was. I read books, spoke a lot to Kevin and went on a course with the ladies from Growing Agile. A few weeks into the engagement we realized that scrum was not a great fit for where the KeyBlade team was at the moment and moved to a more Kanban style of process flow.
This led me to having my first real exposure to pair programming. I remember the first day I paired with Kevin - it was like someone who was used to driving go-carts having a chance to ride in a formula one car for the first time. I was shocked at how good Kevin was - he was incredibly fast on the keyboard, tools and IDE. That day was the start of my focus on mastering my tools - something I’m still focussing on today.
While Driven did not start my interests in the community (the DeveloperUG had already started) - it definitely supported it. In the four years I’ve worked at Driven there has never been a conversation about the time I have spent on non-billable items or community events - it is just something Driven people do. And while I have tried to put reasonable billable hours in and spend after hours on community things - there has been some overflow into Driven time and I’m incredibly grateful that Kevin and Driven as a whole has supported it.
Some of the most memorable moments at Driven included
- Hosting the first Gauteng Code Retreats - something we are still doing four years later.
- Having my first introduction on how to practically implement TDD, Pair Programming, Continuous Integration etc.
- Organizing and facilitating a series of Software Craftsmanship Sessions.
- Being introduced to the power of retrospectives.
- Attending the annual Drivinci Unconferences.
- Being a full-time ‘Developer Coach’ for several teams.
- Most importantly, learning and interacting with other Driven people.
Moving to New Zealand has sadly meant that my involvement with Driven as a full-time employee will come to an end shortly. Up to now, other than Maxima, Driven has been the only other company that I have been an employee of for any length of time. It has had a profound impact on my career - I’m really going to miss them.
As a closing to this post I want to make special mention of the KeyBlade team - the KeyBlade team was the team I started with when I joined Driven and aptly the team I will finish with. When I started at Driven I spent a year with KeyBlade before moving into a developer coaching role - had I not been in KeyBlade I don’t think I would have endured as a coach for as long as I did (when things were tough I would remind myself that what I was saying wasn’t just theoretical - I had seen the KeyBlade team do it before).
After two years of coaching I re-joined the KeyBlade team as a full-time developer to try new things and push the boundaries. Coaching was an amazing experience - but being part of a team where you have skin in the game is even more amazing. Over the last year we have:
- Experimented with killing meetings
- Experimented with mobbing
- Got to a daily deployment cycle
- Had fun
Sara Mei once said you only know what a functional team is when you have worked in one - and when you have that opportunity you never want to go back to a non functional team. For me, the KeyBlade team is the functional team I had the privilege of being a part. Thank you to everyone who has been in that team for the impact they have had on my life.
With that I look forward to the next chapter. Happy Coding!