It's often the case with me that I look for a big solution to what I perceive to be big problems rather than the small solution.
The client upgrade
Take for example an upgrade I'm doing for a client. There's a number of steps that I always take when it comes to upgrading web applications for clients, but in this case the steps didn't go as planned.
For a few hours I was banging my head against a wall because of an obscure error. Stepping back I decided to go through the application in more detail. After just a few minutes I finally found the problem and made the change to ensure the upgrade process was working. The error itself was a bit of a red herring, but the obscurity of it had me thinking that I had to do something more to get move forward with the upgrade.
The change to get the upgrade was to update an obsolete library to the latest version and then the client's application was working again. I've updated my notes for further upgrades I do for clients so that the same thing doesn't happen again.
The same thing happened with Ethan last week.
The golf swing
Last week, Ethan had an playing lesson with the club pro, Andy. For a couple of weeks now, Ethan's game has been slipping. It was frustrating to watch as I don't know what to look for in his swing when things go wrong other that what he has learned in the past from his coaching. Heading out to the first tee, Ethan got setup, did the usual pre-shot routine and then Andy chipped in with a little nugget of wisdom, "Stand back further".
The change was instantaneous. The drive went right up the middle of the fairway. Through the lesson the recurring theme in Ethan's swing was that he stood too close to the ball and needed to go back a few inches in order to get the ball going in the direction that he wanted. Whether it was a driver off the tee, a hybrid or iron from the fairway or even a wedge leading up to the green, Andy's advice was always the same, stand back further from the ball.
The small (and effective) solutions
Ethan's focus now is to start including a small check in his pre-shot routine that ensures he's the right distance from the ball. Checking the distance between his belt buckle and the end of his club and making sure he can fit a hand span between them is enough to ensure that he's the right distance from the ball.
In both cases the problem was significant, and yet the solution to each problem was the smallest change imaginable. I wouldn't have thought for one second that an out of date library could have had such an effect on upgrading a web application. I also wouldn't have thought that such a small change in Ethan's swing would have such an effect on the resulting shot.
What this has taught me though is that the smaller solutions should be the ones that we look towards first. Using tried and tested approaches and notes on previous upgrades, I've managed to stream line the upgrade process for a clients web application so that in most cases it takes days rather than weeks. Eliminating the small problems ensures that I'm always working towards a functioning upgrade.
It doesn't always work this way though. Every client upgrade is different and there are exceptions to the rule, although there shouldn't be that many. Most of my clients have similar technology environments when it comes to their web applications so upgrades should fall into the timeline of taking a few days, a week at most. Any number of issues can stall an upgrade and due the technicalities of it, it's not always the case that a simple solution can move it forward.
Keep notes on those solutions
It also doesn't hurt to document your experiences. They're all different but from the notes that I have built I have a process in place that eliminates most the of the problems I encounter when it comes to upgrading client's web applications.
As for Ethan's golf swing, he's determined to use the time over the summer to practice more. Ethan has a full summer of lessons, competitions and medals to play for so that he can keep working towards lowering his handicap. To do that he'll need to remember the small fixes that can have such a positive effect on his swing and resulting shot. He's keeping a notebook of his yardage and his lessons so that he has something to go back to and review.