Back to basics: structure and order push a project across the finish line

3
minute read

Summary

The client, an agency specialising in custom brand and technology design, approached us for help on a struggling project. The initial plan had become bogged down with unmanaged changes to team structure and product architecture. Various teams involved in the project also followed inconsistent practices, compounding the challenge. Our job was to find order and apply structure - and together help usher this project across the finish line.

The Background

The client’s customer, a B2B equipment tracking services provider, runs their entire ecosystem on cloud-hosted web services and mobile applications, so the focus of the project was on optimising app development and release. The initial plan had been to build a cloud-based platform with automated CI/CD, but as the project had started to waver, the customer (let’s call them Company B) had requested to take ownership of all resources. They also wanted to move them all onto AWS cloud, whereas previously repositories had been located across different local servers with only some cloud infrastructure in use. Once location and ownership had been established, our focus shifted to the more technical aspects of the project: 

  • Building an automated pipeline for mobile applications
  • Creating new standardised environments with consistent naming and tagging rules
  • Designing processes for database migrations
  • Setting up monitoring and log aggregation using Dynatrace

The Technical Bit

The bulk of this particular engagement was documentation and file structuring, creating a well-laid foundation for future work. We began with an audit of AWS resources, Gitlab repositories, application structures and access to the various environments in use. We used this information to map repositories to pipelines and resources, and to generate documentation for all this, which had been missing. Newly consistent tagging and naming created an orderly structure for easier locating and referencing, and we ensured that applications with database connections continued to work despite these changes. 

Once this foundational work was completed we turned our attention to optimising delivery. We reconfigured pipelines to minimise the time it takes for full deployment, which was crucial as previously this process had required too much manual involvement to be truly efficient. We selected AppCenter to configure mobile CI/CD automation, another important new feature as this allowed teams to quickly set up mobile pipelines which include building, testing and beta release. We then created a pipeline that automatically moves production data into staging once a week, which helped ensure that both environments would always correspond to each other. 

This was key, because over time, Company B’s staging and production environments had started to diverge, and no longer provided a reliable means of managing deployments of new products or updates to existing ones. We cleaned up both environments and activated the new pipeline to ensure consistency in the future. For all four environments, we implemented Liquibase as a database migration solution. This helped with version control and further minimised manual involvement. 

The Results

Not all work is flashy or showy - one of the most important contributions we sometimes make is creating a solid and well-laid foundation on which clients can build and grow. This engagement was such a project. Eight weeks of collaboration between three teams resulted in:

Improved consistency

  • Resources in AWS now follow a naming standard and are tagged with the stack and environment which they are part of
  • Staging and Production have the same infrastructure properties and data
  • Mobile applications are configured according to each environment 

More effective automation

  • Using Dynatrace, either the client or Company B can now easily debug and monitor application performances
  • Using the Liquibase pipeline old manually applied SQL scripts can be migrated into a solution that automates much of the work
  • Finished mobile applications can now rapidly be pushed to Google Play and App Store as builds are automatically sent to the stores

Better quality assurance

  • Mobile applications are now easily tested through AppCenter email distributions (Android) and TestFlight (iOS)

Final Thoughts

Even with products already in use it is never too late to implement cleaner processes and better productivity and project management tools. Similarly, good documentation is crucial for the long term and to avoid legacy issues further down the line - so it is always a good time to start with that. 

Have a project in mind? Let's talk.

Contact us