---
title: "DataOps: 10 principles to develop data intensive projects"
excerpt: "10 of the principles of DataOps that we make available to data teams."
authors: "Alberto Romeu"
categories: "Scalable Analytics Architecture"
createdOn: "2023-09-25 00:00:00"
publishedOn: "2021-02-27 00:00:00"
updatedOn: "2025-04-24 00:00:00"
status: "published"
---

<p>These are 10 of the principles of <a href="https://blog.tinybird.co/2021/02/27/dataops/">DataOps</a> that we make available to data teams.</p><p>While we always challenge our assumptions, this new paradigm guides the way we are building Tinybird, deeply focused on simplicity, speed and developer experience.</p><h2 id="1-the-data-project">1. The Data Project</h2><p>This is like your framework (<em>think of MVC for web development</em>). It describes how your data should be stored, processed, and exposed through APIs.</p><p>You put there your <a href="https://www.tinybird.co/docs/cli/overview#data-projects" rel="noreferrer">know-how</a>, abstractions and the focus on the problem you are solving.</p><h2 id="2-serialization">2. Serialization</h2><p>All your table schemas, transformations and endpoints need to be serializable. Keep <a href="https://www.tinybird.co/docs/version-control/datafiles" rel="noreferrer">the format</a> simple for humans to read and write. If possible, map every resource to a text file.</p><h2 id="3-version-control">3. Version Control</h2><p>This is a consequence of having a data project and a file format. Treat your data project as regular source code, and <a href="https://blog.tinybird.co/2021/01/22/tech-product-design-how-we-integrate-with-git/">push it to a source version control system</a> (e.g. git)</p><p>From there you get traceability over changes, collaboration, peer reviews, automations and the very same workflow and best practices you are used to as a development team.</p><h2 id="4-continuous-integration-and-deployment">4. Continuous Integration and Deployment</h2><p>The key for most of the things developers do is speed. Innovation is iteration and if you are fast you can learn faster and iterate faster.</p><p>This means making an assumption, running an experiment, learn and repeat, ensuring quality.</p><p>Your system should allow you to easily create testing environments and use fixtures, so you can build, test and measure your data pipelines and endpoints on every change.</p><h2 id="5-lead-time">5. Lead Time</h2><ul><li>Deploying to production should be seconds (<em>not minutes or hours</em>)</li><li>Fixing a bug should be minutes (<em>not hours or days</em>)</li><li>Developing a new feature should be hours (<em>not days or weeks</em>)</li></ul><h2 id="6-data-quality-assurance">6. Data Quality Assurance</h2><p>So you are a data engineer working for a Fortune 500 company, are you confident enough (<em>or even allowed</em>) to make a change in any of your data pipelines and push it to production right away in a matter of minutes?</p><p>How do you ensure data quality in your data product?</p><p><a href="https://www.tinybird.co/docs/version-control/implementing-test-strategies" rel="noreferrer"><strong>Data needs tests</strong></a><strong>, even more than code.</strong></p><h2 id="7-tools">7. Tools</h2><p>Pick tools based on your goals, but as a starting point, your tools should make it easy for your team to access, share, and analyze data.</p><p>You should be able to <a href="https://www.tinybird.co/docs/cli/overview" rel="noreferrer">work from your terminal</a> or IDE without leaving your data project context.</p><p>Avoid steep learning curves, use a familiar syntax, short and clear so you can run and automate stuff quickly.</p><p>When it comes to data exploration and problem-solution discovery, you need instant feedback.</p><h2 id="8-observability">8. Observability</h2><p>You need to run and understand <a href="https://www.tinybird.co/docs/monitoring/service-datasources" rel="noreferrer">your data in production</a> and quickly learn if it's solving your business problems.</p><p>Automate <a href="https://www.tinybird.co/docs/monitoring/health-checks" rel="noreferrer">health checks</a>, monitor performance, allow runtime traceability and implement an alerting system.</p><h2 id="9-recipes-and-building-blocks">9. Recipes and building blocks</h2><p>The data development experience should be as close as the experience you actually have working with some library that you will import and use in any language.</p><p>Your analysis should be idempotent, composable and immutable. Wrap them and make them reusable right away.</p><p>Wrap your analyses into <a href="https://github.com/tinybirdco/log_parsing_template">reusable data projects</a>.</p><h2 id="10-fine-tuning">10. Fine Tuning</h2><p>Query optimization is a never ending process. You should monitor queries and transformations to build a system that helps <a href="https://blog.tinybird.co/2020/12/15/eating-our-own-dog-food-how-we-investigate-performance-bottlenecks-using-our-product-and-google-sheets/">fine tuning your data products</a>.</p><h2 id="bonus-track-publication-and-documentation">Bonus track: publication and documentation</h2><p><strong>Data and development teams work together</strong>. Your data are exposed as <a href="https://blog.tinybird.co/2020/08/11/badass-api-endpoint/">auto-documented APIs</a>, so it can be integrated anywhere.</p><p>Don't forget about not so cool tools such as <a href="https://blog.tinybird.co/2020/12/15/eating-our-own-dog-food-how-we-investigate-performance-bottlenecks-using-our-product-and-google-sheets/#visualizing-the-correlation-matrix-in-google-sheets">spreadsheets</a> and traditional BI.</p><p><strong><em>What are your main challenges when dealing with large quantities of data?</em></strong> <a href="https://www.tinybird.co/contact-us" rel="noreferrer">Tell us about them</a> and get started solving them with Tinybird right away.</p>
