Agile software development is a well known set of principles that many software teams have adopted, tweaked and perfected over more than ten years. As teams gain experience with Agile, a natural pressure builds on tools, practices and processes that slows the pace of delivering value.
One technology that has seen significant change, because of this pressure, is data storage. Database technology has traditionally been owned, updated and maintained by groups outside of application teams. This leads to silos and separation of responsibility; it encourages the teams - the development team and the database admins - to work towards separate goals, instead of together towards the same. Ultimately, this slows the pace of delivering valuable software. This was widely accepted as a normal process, but the adoption of Agile has led to questioning how we work and what technology we choose.
The traditional data store, a relational database, is no longer the default choice. Now there are several NoSQL options that may be as good or better, depending on the functionality needed. Choosing a database is not only about the data need, but often includes organizational needs as well.
As software consultants, ThoughtWorkers ask clients to do this daily, question the norm and push the bar. This e-book was written to highlight aspects of iterative development, and showcase how a data storage technology, MongoDB, can promote or inhibit these practices. Some of the areas covered include: how databases can be complementary to continuous delivery, testability considerations and DevOps capability. We dive into specific scenarios from ThoughtWorks’ projects and use examples from MongoDB, Inc. to demonstrate how data storage technology can be evaluated as a tool to aid in Agile development.
Another MongoDB book? This book is not just another MongoDB book. This book is not designed to tell you how to use MongoDB. There are several other books that can teach you how to develop with it or how to optimize for your performance. There are also other websites that can help you decide if it’s the best fit for your use case. We touch on the topic of when to use MongoDB briefly, but this e-book is dedicated to helping technologists understand and evaluate tools and their compatibility with iterative software development.