I wrote this post for MMT
Media is a great microcosm for understanding the big data universe. Social media and the rest of the digital world provide an awesome amount of information and that information evolves considerably over time, in terms of granularity and utility for business performance.
- Why owning your data?
- What do we mean by code quality?
- Why is code quality so important for your solutions?
- Why hiring a media-tech expert can make a difference?
- How do we ensure code quality?
- How to use peer reviews as a company strategy for quality in software development?
Why owning Data?
Marketers know that “data is the new oil,” but how do you harness the power of that information? By owning the data!
Owning the data entails specifically gathering, compiling, selecting, and understanding the data to which companies have access so that you can tap into effective learning that will lead to improved efficiency in media and business. You need dedicated instruments like software and data warehouses to get to that point. Although there are some off-the-shelf solutions and some companies would rather build a solution that meets their needs precisely, which makes sense for large corporations, this still requires hiring either an internal or external development team.
To the uninitiated, coding may seem opaque and read like hieroglyphs, and briefing a new agency to create a customized solution for your business can be daunting if you don’t have access to internal expertise. This should not be seen as a barrier to moving forward but rather as an opportunity to initiate a larger transition towards a better understanding of “coding.” Here are a few basics that will help you navigate what is at stake when it comes to creating a quality solution.
What do we mean by code quality?
Because code quality is a concept, it doesn’t have an exact definition. Code is used to program all kinds of modern solutions from sim cards to hospital administration solutions, which means it addresses a highly versatile set of requirements. This type of development therefore calls for standards.
We can use five points to summarize code quality:
- The software/program does what it’s supposed to do and runs smoothly = reliability
- The code is easy for an expert to read = maintainability
- The code is well explained/commented on/documented = clarity
- The code has a consistent style = consistency
- The code can be extended = extensibility
Why is code quality so important for your solutions?
Now, why are those five pillars key to your code?
- Reliability and clarity – long-term maintenance – Optimized code is easy to update, upgrade and maintain in the long run. All software needs to be able to adapt to changes, even unexpectedly (thank you 2020 for reminding us of this).
- Maintainability and consistency – team changes and memory loss protection – Sometimes new developers join the team and have to work on other people’s codes. They need to be able to navigate and understand the logic to be able to work.
- Extensibility – upgrades and extensions – When the base code is “clean,” adding components to it is easy and it’s possible to develop extra modules and features without transforming the current applications.
- Time constraints – There are no limits to development capacity except time. If a company needs a tool next month, this obviously involves a higher risk of low-quality codes and will require more work to fix bugs and updates down the line. The tight deadline could also “stiffen” the adaptability of the architecture for future feature upgrades
“Some programming languages are more suitable for a specific task than others. Using the right language helps but often it is more efficient and better for the quality to select one that the team is more comfortable with over one the team needs to learn.”
Director Software Engineering
Why hiring a media-tech expert can make a difference Data?
There several factors that make the media and marketing industry special, the most relevant one for data management being COMPLEXITY. The industry lacks standardization when it comes to processes, data formats and dataflows. Each partner brings its own structure and naming conventions, which can hinder integrations. At the same time, media is an industry that never sleeps. It’s a global industry that runs campaigns 24/7 on multiple platforms, generating terabits of data daily, not all of which is useful. Data set needs to be compiled from various sources both online and off. These sources are extracted, compiled and organized so that marketers can visualize and compare the data. The relevant dataflows require provisioning, segregation, harmonization and calculation.
The nature of these flows also depends on the specified requirements, as different data will need to be extracted depending on whether the focus is on strategy, marketing, finance, invoicing, performance optimization. or auditing, etc… Bringing in a team with media expertise guarantees efficient orchestration of data deciphering. A data integration team that knows how to prioritize data by relevance will speed up your process immensely. That’s what our team does: the media agency world is our cradle.
How do we ensure code quality?
Each development team, depending on project size and complexity, uses one or more of the following techniques to ensure qualitative development.
- Automated test: A typical solution to confirm that the code is reliable (= runs smoothly) is to write a test to prove that all elements of the features are running as expected.
- Choose a coding language: Obviously, this requires the development team to be comfortable working in more than one coding language. Each coding language has its own benefits and even though choosing one adapted for the task helps, it does not make you more efficient if your team has to learn it first. Elm, for example, guarantees that there won’t be any crashes during runtime. But it’s still risky business to choose a language your team hasn’t mastered.
- Run static code analysis: This basic tool that all developers are familiar with helps ensure coding consistency and logic. Lint is one of the most famous programs. A side note: A lot of Lint tools even let you fix some code issues.
- Split app features into modules: Although this doesn’t really make things more flexible, it does make things easier to understand and limits side effects.
- Work collaboratively: Projects are shared between teammates (pair-programming), which brings more minds together to work on the structure and the logic to minimize initial static bugs. That includes the use of peer reviews. Leveraging the team’s capacity to read each other takes their work to the next level. We’ll go into more detail on this in the next section.
How to use peer reviews as a company strategy for quality in software development?
Yes, peer reviews are standard. All software businesses with ambition and quality at heart use peer reviews before deploying updates, upgrades and features. I won’t take the time to list best practices as thousands of experts have already done. What matters is that peer reviews have become an integral part of our development team strategy, at the core of our way of working as a business. And we feel it makes sense to clarify our why.
It instills the ethics of sharing – The code is not yours or mine, it’s shared and should stay that way.
- Every member owns it and should be able to understand it. It’s not about lowering the bar. On the contrary, it’s about making things as clear and smart as possible so that you can take juniors to the next level while reviewing and learning in the process.
- It implies that the developers are keeping in mind that other people will follow up on their work and amend it as needed. Keeping a clean code is a sign of “caring.”
- It encourages each developer to listen and address all team member questions, which then helps you improve your solutions. It lets team members, old and new, share in the history and evolution of the project and products.
- We embrace the long-term vision of each product development with everyone responsible for the maintainability (= capacity to keep updating over time) and extendibility (= capacity to add new features) of the code. New ideas emerge when you know they will become a company legacy.
MMT benefits from a long-term perspective and growth plan. That lets us perfect the sense of quality that we want to see in the apps that we use daily.
Data management calls for the right tools for it be useful, especially in advertising where data is plentiful but often too complex to understand and leverage. Building software to manage this data makes sense but requires selecting the right partners to address your needs qualitatively by bringing in sector expertise and a long-term strategy that will make your solution future-proof. Software needs to be more easily maintainable and extendable, survive updates and be flexible when it comes to upgrades. That’s why MMT focuses on the advertising industry where we have the proven expertise and experience that it takes to deliver the right solutions.
Big thanks to Ole Reifschneider for taking the time to explain and share his passion with me.