Annual Retrospective 2022/2023

Author: I like to think differently. My annual retrospective is based on the business year.

Review

Learning

This year I impressed myself with the number of books I read or listened to. It is mostly non-fiction and based on my work life. I did manage to sneak in a William Gibson non-fiction and found Tim Marshall’s series of geo-political books very enjoyable.

Books

  • Barça: The rise and fall of the club that built modern football – Simon Kuper
  • Show Your Work – Austin Kleon
  • The Sell: The Secrets of selling anything to Anyone – Fredrik Ejklund
  • The Clean Coder: A Code of Conduct for Professional Programmers – Robert C. Martin
  • Patterns of Enterprise Application Architecture – Martin Fowler
  • Refactoring – Martin Fowler
  • Continuous Delivery: Reliable software releases through build, test, and deployment automation – Dave Farley
  • Prisoners of Geography – Tim Marshall
  • The Power of Geography – Tim Marshall
  • Divided – Tim Marshall
  • Real-World Solutions for Developing High-Quality PHP Frameworks and Applications – Sebastian Bergmann, Stefan Priebsch
  • Principles of Package Design – Matthias Noback
  • Investments Unlimited: A Novel About DevOps, Security, Audit Compliance, and Thriving in the Digital Age – Helen Beal, Bill Bensing, Jason Cox, Michael Edenzon, Dr Tapabrata “Topo” Pal, Caleb Queern, John Rzeszotarski, Andres Vega, John Willis
  • Extreme Programming Explained – Kent Beck
  • The Checklist Manifesto – Atul Gawande
  • The Peripheral – William Gibson
  • Deep Work – Cal Newport
  • To Sell Is Human – Daniel H. Pink
  • Convolution – Benjamin Walker
  • Making the News – Jon Snow

PHP

My focus for this year was very much on learning PHP, and to a greater extent programming, deeply. I’m sure this can be seen in the array of programming books read outside of the PHP ecosystem. I’ve been spending more time understanding design patterns and how they work in object-oriented programming.

I’ve also been committed to writing more unit tests for my code. Preferably before the code is written, as part of Test Driven Development. This is currently where I am struggling a little. But progress is being made slowly.

WordPress

As has been the focus for the past few years. I am always looking to expand my e-commerce knowledge with WooCommerce.

This year has required me to delve deeper into the Block Editor, theme.json, and the wider Full Site Editor. It has been quite difficult to wrap my head around this new way of working. While keeping the standards in place to adhere to business design guidelines and preventing clients from breaking or making ugly changes, to their sites. I think more work can be done in these areas to keep a separation between an Author’s content and design choices. My view is that the fewer options presented to the author, the greater the chance they have to keep a consistent design and have to think less about how content looks and more about its quality.

Work: Vatu

I completed my second year, in August, working with Vatu.

We started this year by launching the migration and redesign of the Brain Tumour Charity website. This involved the scripted migration of over 3,000 pages of content from Django to WordPress Editor Block, 75 users, and ~7.5GB of attachments. Integrating with their Salesforce CRM platform and setting up page redirections to improve their site structure.

Nine months of my year were spent working with an American-based educational streaming platform. Working on their WooCommerce application. It was an enjoyable project where I was able to add value by implementing my Coding Standards setup and Docker development containers. Improve upon my knowledge of Design Patterns and Unit testing, by pair programming with their experienced lead developer. Some highlights included; Building their favouriting system for videos. Implementing a new 3rd party affiliate system. Developing the migration plan to move over to the new WooCommerce High-Performance Order Storage (HPOS).

Internally at Vatu, I worked to standardize our development process. Setting up our CI/CD pipelines so that as much as possible is automatically tested before it is released for Quality Assurance (QA) testing. With this in place we also built our Automatic plugin update workflow. Letting us update dependencies, such as WordPress Core and Plugins, automatically only after they have passed our tests. This has been invaluable in catching potential bugs when upgrading plugins without requiring manual intervention. As an example. Recently we caught a bug caused by a bespoke plugin depending on a 3rd party plugin that we were removing before it made its way to production (or QA).

Another big push for Vatu has been the advanced testing of newer PHP versions. With the end of support for PHP 7.4, we have been, automatically, testing all our managed sites for compatibility with PHP 8+. Identifying any potential issues with custom and 3rd party code. Allowing us to seamlessly upgrade our managed sites without interruption for the end customer. We will be building upon this for PHP 9. To keep us ahead of the curve.

The year has ended with a new project. This time migrating from Drupal to WordPress and the complexities of integrating with a 3rd-party CRM.

Work: Thoughts & Ideas

Now five years old. Continues to run in the background. Where I did some upgrades and maintenance for clients’ websites.

Wrote a couple of automated workflows to streamline plugin releases for Kathy is Awesome.

Launched Graph-X, an e-commerce site for a friend’s startup business. A basic child theme of Storefront and a 3PL integration. Managed to sneak in some product photography. Which was fun and took me back to my photography roots.

Personal

My daughter is nearly two. It’s amazing to step back and watch how she goes about learning. The repetitive process allows her to understand and master things, such as names, numbers, colours, and climbing on things. It is a lesson I need to take and reinforce in my own learning. It is something I’ve always done with sports but less so with programming. I do think I need to go back and look at coding Katas.

Kitchen/Dining Room © LapalOfTheGods

Our kitchen–dining room project was started and completed this year. It was a great learning curve for me in project management and seeing how other industries work. I was very lucky that this mostly went smoothly with only a couple of minor hiccups. I’d like to claim it was all down to my project management. I think our primary builder played a larger part in keeping everything running smoothly.

It also tied in well with my exploration of the Agile Manifesto.

Welcome changing requirements, even late in
development. Agile processes harness change for
the customer’s competitive advantage.

Agile Manifesto

We spent more hours, yes hours, than I expected to define the position of the lights. Including a very late change to the setup of the downlights above the island. Giving us the advantage of being able to have more, and better, options to source lighting fittings. Saving money and getting a better experience.

Deliver working software frequently, from a
couple of weeks to a couple of months, with a
preference to the shorter timescale.

Agile Manifesto

Being on-site during the project. A benefit from flexible hours and working from home offered by Vatu. Let me check in with the builder multiple times a day where needed. Seeing each section of work delivered and being able to provide instant feedback and decisions. This, I am adamant, allowed the project to run smoother and deliver it to our satisfaction.

This is something I will be looking to encourage more with my client work. Get the project seen earlier by stakeholders and ideally customers. To prevent dissatisfaction and delivering the wrong features.

What I did well

Reading

I don’t remember a time when I read so many books in one year. Reading books has never been one of my strengths. This has been such a positive for me. I can feel the benefit from the learnings I’ve taken away and see where it has improved my work skills.

Time management

Managed my time during the building work so it did not affect my work with Vatu.

What can I do better?

MichaelBragg.com

This website has been left quite a bit. Not just this year but for many.

I’d like to write more on this website. Document and teach what I’ve learnt. As I believe you truly need to have learnt something before you can teach it.

Theme: I removed the old one I’d built for this site intending to rebuild it to work with Full Site Editing. This has yet to be completed. So it is still sitting with the Twenty TwentyTwo theme.

I have restarted this and I’m working towards a Minimal Viable Theme that I should be able to deploy shortly. It is currently missing a site navigation bar.

I aim to incremental improve the theme without blocking it from being on this site.