Renovate and Refactor
In this blog
We just finished our high-performance team kickoff and are excited to learn more about the system. Building on the relationships and connections created during our kickoff, we begin our journey of learning with a demonstration of the system from the perspective of the system's end users. Viewing the system through the perspective of its users provides important context about the system's role in the business processes. We're not just migrating systems; we're migrating business outcomes enabled by refreshed, renovated, and refactored systems.
Following the demonstration, the team swarms on our first production delivery. Our first delivery to production will be small and light, but it will be one of our most complicated because of the many little details and one-time setup tasks. We chose to do this work as a Hackathon to amplify learning and shorten feedback loops. We already have the date of the Hackathon on the calendar, and it is just a few days away. We are working collaboratively with the system's technical lead to dive into the technical details and identify the module to migrate first and the details and engineering practices we will use to migrate this system progressively.
Technical analysis
The team started with the documentation provided and compared it to the reality of what is currently in production. We use typical architecture and system metaphors to describe the components or sub-systems to make it easier to visualize and discuss the domain. Via our technical analysis, we documented nine groupings, or modules, of features and functionality. We know the system communicates information to a single downstream system. During our deep dive, we learned that the system communicates three unique types of data to the downstream system, so we updated the high-level overview to reflect what they discovered and socialized the updates with the team.
Getting a better look at the code and the two pre-production environments, we confirmed the existence of a significant known issue impacting the reliability and stability of production. It also revealed an unknown issue likely contributing to the current known issue or causing unseen problems elsewhere. During the system demonstration, we learned that the unknown issue has likely remained hidden because that portion of the system is rarely used. Since that module is nearly unused and has a problem, we asked for and received approval from our Product Owner (PO) to set this module aside until the business decides if we can exclude it from the migration. This decision cleared the way for us to begin the migration of the first module for the highest priority workflow, workflow #3. Let's put it into production.
Hackathon
It's still early in the life of this project. The second whole week of the project is the target for our Hackathon. At the beginning of a migration project, several one-time tasks are necessary to clear the way for the team, such as onboarding and account creation, authorization to computing resources, source repositories and solutions setup, integrated development environment (IDE) configuration, build pipelines, etc. Information Technology organizations distribute ownership of these responsibilities among their departments for operational efficiency. Therefore, when it is time to start a new project, we need participation from people in roles across the IT organization. We will follow our customers' rigorous and disciplined ITIL and ITSM processes to request, track, approve, and monitor secure and responsible access to our customers' computing resources and intellectual property. With some planning, we ensured that we had everyone and everything we needed to make our first delivery to production during the Hackathon.
During the Hackathon, employees from across the IT organization come together (virtually or in person) to collaborate in real-time to complete the first production delivery. Sharing this experience across the IT organization creates a sense of ownership and investment in the success of this significant project. In the next installment, we will see how the team worked together during the Hackathon and what was delivered to production.