My AX 2012 Upgrade Project Plan - Development Phase - Data upgrade
On my last blog, I shared with you the code upgrade part of the upgrade project plan. Of course, you will have your own code areas and you should make sure to have a task for each major code area of your application. I also found it quite beneficial to have your development team do some planning poker around each of them, discuss their estimates and concerns. I used a lot of those discussions to populate my risk register!
Before we start on how we addressed the data upgrade, MSDynamicsWorld published a summary of 4 key steps to world class upgrade as recommended by Andrew Jewsbury from Microsoft, whom I had the pleasure to present with in last year's Convergence: 4 Steps to Completing a World-Class Upgrade to Microsoft Dynamics AX 2012 R3.
Here is my part of the presentation about our upgrade from Convergence last year if you are interested. It's 40 minutes or so, comments welcome :)
Ok, as you can see from my project plan section for the data upgrade, we have pretty much followed best practices, and initially we planned for 3 upgrade iterations before we believed we were going to get it right. We needed to understand the durations of each step on the checklist as this needed to fit in a weekend, including validation! We actually did run an iteration 0 first. And actually ended up doing 9 full upgrades before going live!
Critical success factor: Our Iteration 0 taught us a lot about the checklist and we were able to scout the terrain ahead so we were able to start understanding the process, wrote down new risks, listed out items to further investigate etc. It took 3 days or so, but the lessons well worth it!
In an iteration 0, we do not care about errors, we jump over them to see what's next and so on until we have completed every step of the checklist. All of which we enhanced with our comments and findings.
The fourth step in Andrews recommendation talks about user acceptance testing. We knew this was going to be most critical. We were really in the middle of a change management project, so early user acceptance was critical. Historically, UAT had a bad reputation so we invented a new name and practice for our UAT: Parallel processing. Probably, the hardest test process I have ever been part of (technical team and business users impacted alike), but the most beneficial also. If you have time some day, lookup management best practices around minimizing rework to avoid the secondary impacts of unplanned errors. Parallel testing for us, really flushed out early issues of the code and data upgrade and also hidden errors never found in AX 2009! Funny looking at the duration of UAT on the original project plan, 3 weeks ... it took us 9 weeks!
Here is how it went:
- Monday to Friday we finalized code refinements and communicated with the business that Monday would be a parallel processing day.
- Friday night we started the upgrade on our Migration servers. We did have source to target migration servers so as to not impact PROD.
- First we took a backup of PROD after the business closed and restored in the AX 2009 Migration server.
- We had an initial checklist of our own, apart from the data upgrade checklist. Our first list had 25 items. The go live checklist had 127 items! We used the list throughout the weekend as different team members had different tasks to complete.
- During Sunday, the upgrade would complete, and our functional team did financial statement and trial balance validations.
- Monday morning, the business would process all their tasks until 12:30 PM, but keep notes and all their backup.
- From 1:30 to the end of the day, they would repeat the exact same processing in AX 2012.
- Throughout the day we would record data or code issues and work on our fixes.
- After the end of processing, we would balance and decide if we could repeat on Tuesday.
- The most we did was to reach to a Wednesday, which was good as we got lots of issues to fix and a couple of days before the next upgrade.
We had CFO support, which really helped in making sure the accounting business users would do the hard work of parallel testing. Also, our technical team was very committed and worked through weekends to be ready for the Mondays of parallel testing.
Anyways, hope this is an idea that may help you, and please do feel free to reach out if you have any questions or comments :)