Some reflection

I finished citibank-statement-to-sheets a while ago (GitHub tells me the last commit was on August 10th) and have been putting extra hours into One Model in the time since. I have some projects in mind that will help me organise and manage our code base, but until now I felt other priorities were more important to complete. Tonight I was excited to start on the first of these projects Ef6Uml, an app that will allow me to generate a class diagram of our entities on demand. I created the repo, put some details into the README and then started to create the solution and projects when I realised I still need to install update 3, which is how I ended up writing this.

The twelve months that have passed since last September have flown by. On the personal side I got married and took some time off for the wedding and honeymoon. Professionally One Model has grown from just a single developer (me!) to a team of 3 led by me. My role has changed from being the lead developer to managing the team and ensuring they are setup to deliver. I am also a director of the Australian subsidiary and have to manage the administration it requires. One Model is in a good place, both the business and the software but for this I am going to focus on the software.

I feel that we are getting the balance of quality to speed right. There are pieces that could be better, but there are pieces that could be worse. In AWS we have a dev environment that developers are administrator’s off and have full control of. This can mirror production, and with the exception of the data it does. This environment and AWS allows the team to operate with DevOps principles. Our infrastructure is scripted (CloudFormation and OpsWorks). We have continuous integration and delivery (deployment to dev is automatic) through AppVeyor and Octopus deploy. We didn’t start with all this, we grew from using Elastic Beanstalk and basic deployments directly from AppVeyor, but have built it up over the year and it now allows us to get features and fixes out quickly. This is also not the final destination, we will continue to improve, but it’s where we are at now.

Going forwards I think the next area of improvement for the team is UI acceptance tests. We have a good suite of unit tests that get run as part of the build, but are lacking acceptance tests to ensure the units work together as expected.

A lot of my own personal development has been in managing the team. I’ve been the technical lead before, but not directly responsible for management. Luckily I’ve had a couple of good managers who have inspired and shaped me and have been reading plenty of blog posts on various topics. I have read Managing Humans, but my goal is to read more literature on the subject. That said the team is still small, so I don’t spend a lot of time managing them. Most of my time gets spent in more of a product owner/business analyst role ensuring that features are ready for the team to start on and have been fleshed out to more than the 5 words on a card in Trello they tend to start out as.

The hardest part of my new role has been hiring. Other than sitting in on a couple of interviews I had no experience in this area. There are a lot of resources on the subject (even specifically on hiring developers) and over the last year I have been developing my approach. I am still having trouble filling the start of the hiring funnel and am relying on recruiters for candidates. I don’t think this is ideal (recruiters aren’t cheap) and candidates are still hard to come by. We need to do more brand awareness. A blog would be good and some more effort into our open source projects wouldn’t hurt. I also attended the AWS developer day in Brisbane and noted a lot of other local companies and startups had everyone wearing branded shirts. That was a missed opportunity for us. I also attend a lot of meetups and can probably put more effort into spruiking One Model there.

I was going to write a little bit about the meetups I have been attending, but this has turned into a pretty long piece already and it is getting late. I am already behind where I want to be on my Ef6Uml project. All I did tonight was create the repo and the solution. Fortunately there is a long weekend coming up to work on it.

Some reflection