MongoDB is one of the most well-known NoSQL solutions in the industry due to its high performance, availability, scalability and ease of operations. But it can also be an important tool in enabling agile engineering practices.
At a premier U.S. clothing retailer, we employ MongoDB for a wide range of supply chain systems, including various master data management, inventory and logistics functions as well as purchase order management.
In June 2014, I gave a talk at MongoDB conference to highlight some example use cases and discuss how MongoDB can enable agile engineering. I also discussed how to approach challenges in adoption, including breaking down the organizational silos around relational databases, as well as lessons learned along the way.
Highlights include:
Document databases can help developers eliminate the “impedance mismatch” between business concepts, like orders, which are natural aggregates and the RDBMS dis-aggregated data model. ORM can help but document databases often provide near-zero friction.
Microservice architecture is a powerful direction in the evolutions of software architectures, and lightweight architecture benefits from lightweight, purpose built data stores. Developers can spin multiple MongoDB instances up very quickly on a single machine, and establish failover via replica sets - the whole setup of production like attributes can be done in less than one hour. And in every environment, from development to production.
MongoDB’s natural aggregates in BSON format made it easy for business users to do essentially self-service for their data needs. This led to unexpected but incredibly powerful engagement of the business users with the development team, which led to increased engagement in QA and production support activities, which drastically cut time to resolution through close pair work and fast feedback cycles.
Developers are excited to work with low friction, lightweight and purpose-built technology like MongoDB. And an excited and motivated team is a productive team.
When adopting a new technology, initial successes can lead to new organizational challenges. There are a number of concerns around operationalization of the new technology as well as ongoing education and support, that need to be thought about and executed on early in the process to ensure broader success.
Check out my talk @ MongoWorld and let me know what your experience has been with using lightweight, low frictions technologies like MongoDB to support highly productive teams and support great agile engineering practices.
Disclaimer: The statements and opinions expressed in this article are those of the author(s) and do not necessarily reflect the positions of Thoughtworks.