2020 Personal year in review - Theme: "Unprecedented times"
Introduction
This post is a little late but the more I thought about it, the more I thought I should do this. In addition, a little prodding from a friend on twitter (thanks Miguel) helped to push me along. Last year, I wrote a post detailing my personal 2019 year in review. As I read it, a lot of it related to many of the same things for this year. While 2019 was a little tough personally, 2020 (as you are well aware) expanded that on a global scale (yeah thanks COVID). So here goes.
Technology
2020 forced us all to rethink how we do things. For me (at least in the technology space) this made me pivot in a few areas. Here are some of the things I focused on:
- In previous years, I concentrated on augmented reality and this hasn't changed but there has been a huge growth in remote collaboration due to COVID and the restrictions that imposes. Dynamics 365 Remote assist is something I have been helping quite a few customers adopt this year. Particularly with the use of the Hololens. I am still active in developing bespoke solutions via augmented reality but remote assist really has dominated a lot of my customer conversations and allowed me to get to know it very well. This includes its limitations.
- Software/architecture fundamentals
- This is not something I had specifically intended on looking at but the number of times that I found customers requiring assistance here was very large. Now this is anecdotal and only based on my experience but a lot of it came down to microservices. Microserices are the answer, monolith is bad. Go forth and decompose.
- Definition of service boundaries, ownership of data, replication of data, performance in an async world, transactional consistency in an async world, decomposing a monolith, deployment dependencies ..... this list goes on. Many, many customers go down the micoservice path and and a huge percentage of those cases end up with simply a different problem, sometimes one that is very hard to go back from. Software, architecture, and design fundamentals have not changed in a long time, but often are forgotten in a rush to a design for what appears to be "the solution to our problems".
- Again, these are simply my observations. I have run many workshops on the principles above, how to apply them, how to work through some of their problems as a result. Not all customers or experiences are like this but I do find a majority end up like this. Would love to know if you see the same.
- Key take away: Going from simple to complex is much easier than going from complex to simple. Try to keep it simple.
- Sidenote: After re-reading last years reflective post, this seems to have not really changed.
- Github: Like most developer type people, I use github a lot. However, for enterprise scenarios and more complex things, I often use Azure DevOps. 2020 was a year I used Github in anger for things I normally use Azure DevOps for. Project/Issue/Work item management, advanced Github actions, security scanning, and others. Github is a wonderful tool and still has a way to go to meet the enterprise needs when compared to more mature tools but I'll be continuing to focus in this in the future and direct a lot more energy in this space.
- DevOps/DevSecOps: This has been a constant in the past few years in terms of focus and this still has not changed. I was made DevSecOps domain lead for Telstra Purple in 2020 which was a good step for me. I am following the development of 'Bicep' which is a DSL (Domain specific language) intended to make writing Azure ARM templates simpler. To really get to know it, I worked on an issue, submitted a PR which has been accepted and rolled into the product. That was a good experience and helped drive knowledge not only of Bicep itself, but how the pipeline tools for the development of Bicep have been setup. That was particularly interesting.
- More courses: As a principal consultant in Telstra Purple I often help steer or advise on professional development (PD) for others. This was more prevalent during the pandemic when we are all working from home and the professional services industry has taken a hit. This often means I do not get to do many of the PD type activities as we help drive the business and the PD of others. In the latter half of this year, I made a concerted effort to do more for myself. Courses on Azure, GCP, Unity really helped the technical part of my brain remain engaged. Sometimes, I would start up a relatively basic course just to see how others work. In a few scenarios I learned about utility tooling that I had not known about before that had not much to do with the course content itself. These ones are easy to let roll in the background, say on another monitor as you work on other stuff.
- I hardly did any web development at all. A little but not much and I did not miss it. Most of my dev time is in cloud architecture, serverless, API's, messaging, storage, automation and areas that did not require web focused work. Additionally, I worked with people who prefered web work so this balanced well. Interestingly the same 'you should use {framework}' type arguments always popped up, without exception. I had better things to do with my time than argue web frameworks and approaches. I keep across most of the latest and bounce into web dev from time to time using pet projects and some customer engagements but I really did not get too much into it. This was not a conscious effort on my part, but just the way it panned out. I did notice the prevalence or at least emergence of more tools that build upon frameworks, providing further abstraction, to provide greater ease of implementation or usage. I see this as a future facing direction where tooling begins to create far more sophisticated implementations, going into building actual solutions from which we modify. This has been happening for a little while now but I do see it becoming much more mainstream. ie. If you are writing line of business CRUD apps, you may find that role becoming redundant.
Challenges
Like everyone, life is not without its challenges. Here are some of mine for 2020
- As already mentioned, the COVID pandemic forced a lot of businesses to pull back, and the professional services industry took a hit which affected our business. We needed to re-invent ways of working not only with customers, but also internally. All the while, still helping to drive business value even if not on a paying engagement. Keeping our peeps engaged, productive, happy, communicative and confident in the future is not always an easy task.
- Some very sudden and unexpected deaths drove home the mortality factor for not just myself but the whole family. As you can imagine, these are always hard and often force you to pivot in the way you think on things.
- Remote/video calls. Now, these are normal business while a lot of us are working remotely. However, being on multiple video calls for a majority of the day is mind numbing and can be very tiring, especially if they are scheduled "back to back". If you are facilitating these meetings then it can be very challenging to maintain energy levels as it is much harder to read the room. Not impossible, just harder. I started being very strict on scheduling, ensuring breaks in between and sometimes saying "no".
- Working on things I love. I love technology and I love working on customer solutions from a technical perspective. 2020 made it very hard to do that while we worked on business initiatives during the COVID pandemic to ensure the business kept going. We got through it for the most part and in the latter part of 2020, injected myself into customer engagements on a technical level. In addition, some customers started to re-engage so the end of 2020 was much more satisfying for me on a technical level.
- Trying to procure an XBox Series X :-) I still haven't been able to find one as they are still mostly sold out but I'll get one eventually. My love of gaming has not changed at all.
- Trying to buy toilet paper amidst the height of the COVID pandemic. It is laughable now but people can literally be arseholes. Buying up stocks of toilet paper and other things, usually at the expense of others. This is obviously not my challenge specifically, but more about my mental picture of the world and how to frame it internally.
Positives
- An augmented reality application that we have worked on was used as part of the NAIDOC week as a Mincecraft education challenge (National Aborigines and Islanders Day Observance Committee) and featured on Microsoft press releases as well as a segment on ABC TV.
- COVID was (and still is) a global issue. However it forced everyone to rethink how we work. It means a lot of people, myself included got to work remotely pretty much all the time. For me, this saves me approximately 4 hours of commute time per day. This is huge for me and means I can be more productive, rather than less. Just as importantly, it showed that remote work can be effective and will affect how companies operate from this point on.
- When working from home, I get to spend time with my grandkids much much more (my wife looks after one of them most days a week). This has been great. In addition, I usually have a routine of helping to cook dinner at specific times of the evening with my wife. Previously when working from the office, the grandkids were already home and dinner often ready or mostly done by the time I got home. If I wanted to fit in some gym after work, then I was home way later.
- We sold one of our investment properties towards the end of 2020. We figured 2020 was a bad year for selling/buying and were going to hold out for a bit but it actually worked well for us. This is one of the steps that works towards our retirement plan which is well underway.
- My youngest daughter turned 21 and was able to celebrate a low key birthday party amid all the COVID related restrictions with her friends. It worked out really well and was great to see.
- I had the opportunity to mentor a few people this year. I loved this and learn't as much from them as I hoped they have learned from me. Watching them adapt, change, progress and succeed has been wonderful. I hope I am a good mentor and love watching people succeed in overcoming their challenges.
- At this time of year, I often do a bit of a home office cleanupas I mentioned in this twitter post. In that post you can see one award that goes back almost 20 years when .Net was in Beta. There are a few more similar items but the point is that I have been extremely lucky to be in an industry I love, for so long, to have worked with and continue to work with smart, nice, awsome people. Yes, that means I am old :-)
What did I learn / conclusions
This is by no means exhaustive but some of the key things I learned along the way are:
- When a pandemic hits like COVID, people do try to help each other, except when it comes to toilet paper :-)
- I wish I could have earned a dollar each time a news story mentioned "In these unprecedented times". I could retire early :-)
- It has been 1 entire year since my last blog post which was around 2019- year in review. I will change that this year and blog more.
- Continue to focus on software fundamentals. There are always new ways to do things and these should be investigated, sometimes learned, as long as they adhere to basic software fundamentals or principles to make better software. Step back and objectively question. Seek some opinions. What does it mean for all parts of the software delivery lifecycle within your team or organisation?
- These last 2 years have allowed me to see patterns both in myself, in the tech industry and in the business I work for. This will factor in heavily as I plan out my years "focus items" which I do at this time every year. This usually involves listing technology related items to work through, future trends I need to watch and also personal/family things to address. It is a fluid list but does provide me he ability to revisit every now and then. "Step back", so to speak and look at what I had originally thought about. Am I lost in the weeds/details and need to refocus on more valuable things?
- Working on pet projects, especially open source even if no one else uses it, is still very valuable. I use it to try out tooling, continue to learn aspects of languages, automation, vendor offerings. Stuff like my fluent API for Azure Cognitive services and the accompanying CLI are examples. I dont think anyone uses it to be honest, but it is a great mental playground for me.
- I feel like 2021 is simply something of a continuation of 2020. We haven't got over the things that defined 2020 and in fact are still in full swing. COVID, US politics, trade disputes with China, and then there are the smaller things, but equally important to those directly involved. I do not expect to feel a hard line of delineation between 2020 and the start of 2021 but to me, it feels like 2020 prepared and educated us however painful that may have been, and 2021 is when we really execute. This may involve a big degree of change from organisations and individuals alike.
Sorry for the long post. If you have read this far, thank you and I wish you the best year that it can be for you.