A collaboration iteratively evolving
The Client:
MediaSpecs is a startup founded in 2008, in Belgium, while its most important vision was to make media information more transparent, easy to search and easy to use. The company provides a unique database and web application for advertisement and PR teams with a detailed, searchable, scaled structure of all media elements in Belgium, Luxembourg and France.
The Challenge:
Going to production in a safe way. We were asked to collaborate with the team after a couple of months of active development to focus on the safe production release of the application. The most important requirements and tasks were:
- Had to meet a hard deadline, because this domain is very season-specific and focused and the team had to work under serious time pressure.
- Understand the business domain and the most important values which can be added in relatively short periods.
Align “must-have” security concerns with user experience and requirements, outage-free operation, etc. We also proposed what we should work on from a business perspective, which contained all the engineering information as well but without deep technical jargon.
- Improve performance, because response times were far from ideal related to some modules.
- Help configuration infrastructure in the cloud with all the technical parts (security, backup, HA, DR, monitoring, CI/CD pipeline).
The already onboarded team at the startup was friendly and easy to work with after getting to know each other over the course of a few days. After a couple of weeks, we continued to work together, not only on the tasks outlined above, but also on additional feature developments, highlighting how the collaboration evolved quickly, proved to be a high-quality endeavor and resulted in a fruitful outcome for both sides.
The Solution:
The main focus – safe production release – was achieved by improving the delivery (with CI/CD) process. The deployment was automatic with additional code review and other quality assurance parts, such as automatic test sets and cases, which could be run manually, automatically and triggered as well.
Quality gates were constantly evolving iteratively sprint by sprint.
The security aspects were important as well. Our experts recommended and later implemented checks, which ensured the proportional split between user experience and security requirements.
We found a couple of “sweet spots”, in which we could increase customer value and generate significant business impact with only a couple of implemented technical best-practices and optimization. Meanwhile, the deadline was respected as the main focus throughout this collaborative effort.
The Results:
- Release to production without any outage or service disruption by the planned deadline. Even the peak (maximum) concurrent users have been served without any slowdown.
- The rationalized data structure improved the performance of the application significantly, with more than one order of magnitude. Improved quality gates (code review, automatic testing, manual testing, security checks, package management, etc.); therefore, production releases became safer and contained less risk.
- Implemented monitoring and alerting solution so our client would be informed of problems and start fixing them well before their users experienced any service disruptions. (Monitoring, Elasticsearch, Kibana, Grafana, health checks.)
- Standardized, automatic vulnerability checks before production (CVE checks). A successful offensive attack against production can cause serious damage to business not only in technical terms but reputation as well. These attacks must be prevented early on.
- Implemented technical improvements in the Azure cloud. (Mostly infrastructure workflow optimizations with “infrastructure as a code” [Terraform] and Kubernetes solutions.)
- Reduced manual operations with automation in the cloud and delivery stages (Github CI, ArgoCD, Azure DevOps).
- Improved the approach, and optimized the already implemented agile (Scrum) methodology iteratively.
- Succeeded in completing numerous developments in many additional business features (Angular, Java, Quarkus microservice, Keycloak, Elasticsearch), such as multi-language support or business API (B2B), which agencies can use and develop services on the top of that.
- After completing the project with the original scope, our team gave ad-hoc development support when it was requested.