This national supply chain provider was looking for expert help upgrading their Django 1.7 and Python 2.7 systems. The group had initially tried to perform the migration on their own but lacked the capacity to handle the project while also developing features for their existing infrastructure.
Eventually security and regulatory compliance identified the outdated versions of Django and Python as serious threats to the company's business operations and it was decided that the upgrades needed to happen on a swift timeline, which is when Six Feet Up was tapped for help.
The project began with a review of the client's existing systems and infrastructure through assessing the client's network and source control repository. The review identified not only the upgrade from Django 1.7 to 3.2 and Python 2.7 to 3.8, but also the need to modernize the client's local development story to utilize Docker and Docker Compose.
A lack of unit testing was also unveiled. Through discussions with the client, it was determined that the best path forward was to reinstate and extend old unit tests in the project, and port to utilize a modern test runner such as Python.
The upgrade was not without hurdles. A severe lack of documentation lead to numerous questions on:
The two teams collaborated to identify the moving parts in the project and utilize the team's existing knowledge and expertise on how a standard Django project is structured to continue moving forward.
Upgrades began incrementally, with a heavy emphasis on unit test coverage. Without good unit test coverage, it would have been impossible to identify what parts of the application were breaking after upgrading core and dependent packages.
Upon completion of the upgrades, a holistic handoff process took place with the client. Documentation was provided to present the work that had been done, and also describe how the client's internal team could best maintain the new systems. The goal was to allow the client to be self-sufficient and review what steps may be needed to future-proof the infrastructure.
An up-to-date Django and Python application was ultimately delivered on time and under budget. The Six Feet Up team documented its findings and identified opportunities for automation in the build process to cut down on local development setup for future upgrades. Partnering with an outside consulting company allowed the client's internal team to focus its efforts on critical business efforts and feature upgrades.