Before to start

Before to start it’s important to clearly define the goals and the conditions to follow.

Here are my exit criteria:

  1. Time-box: 3 weeks to have a complete and working prototype, with a retrospective every week.
  2. High fidelity prototype: in this scenario a complete prototype consists in a working Umbraco installation (in the latest release) based on a migrated legacy database and most of customized back-office features verified. So, from prototyping point of view, what I want to reach is an high-fidelity prototype, that could be the starting point for the complete upgrade process.

The official Process (and the first failure)

Initially I tried to follow the official upgrade path described in the Umbraco documentation or in other articles in the web. The process is pretty clear and it consists in a gradual upgrade throughout all the most important releases since the 4.7.1 to 7.1.8.

But my scenario was a little more complicated, because we had customized a lot of back-office functionalities as:

  • admin login
  • admin back-office presentation
  • rich text editor with new custom buttons
  • custom “Insert Macro and parameters” management
  • custom data types
  • a lot of back-office extensions: navigation tracking, user research, orders research and tracking, and so on…

So, I’ve spent a day following the documentation and try to upgrade Umbraco from 4.7.1 to 4.7.2, but I’ve realized that there were a lot of comparisons to do (configuration files, database, code), and that these comparisons should be repeated for each upgrade step…

No. Stop! That’s definitely not my way.

First failure. And first hard decision: leave down the proven task list and create my own.

Getting Things Done

GTD. Good principles always have an acronym! Out of my mind, my approach was:

  1. Manual upgrade of legacy database: to do that I had to compare a legacy database with a "to-be" database, so this task was divided into
    1. Installation of Umbraco latest release from scratch
    2. databases comparison: the comparison was realized thanks to Schema and Data Compare features offered by SQL Server Data Tools (SSDT) integrated in Visual Studio 2013. The goal is to create a SQL script to migrate database schema and data from Umbraco 4.7.1 to the latest release
  2. Software merge, that consists of
    1. check and merge of web.config and other config files
    2. check and merge of customized legacy code upon the new Umbraco codebase

I’ve made a Trello Board so that I can always visualize my list and see where I am and I’ve started documenting almost everything I did.
That is important for me, because I’ve to do a lot of context and task switching during the week and having a clear situation to see, allow me to unload my mind of remembering what I was doing and how.

So…let’s prototype.

Comments