Schema Flexibility is SCRUMptious

Waterfall Methodologies seem antiquated nowadays, with SCRUM, Crystal, eXtreme, Kanban and others, all these new paradigms for building applications iteratively and quickly have really become commonplace. I feel NoSQL with Couchbase is the next evolution of that movement, allowing you to develop the data model just as smoothly and iteratively, and a lot more quickly.

When I create an application, I often only know part of the idea. I like to dive in, roll up my sleeves, and figure it out. I have an idea to start, but as I get into building it, I learn more, and change what I think often, when I show it to other people I learn more and change it again. With ActiveRecord and Ruby, I have to create migrations every time I change my mind about how something should work from a data perspective. I find this to be more than a pain.

When I switched to Couchbase, I found myself in a much more peaceful and organic world. I could add fields, remove fields, and change them so easily that I  was giddy with migration-less development. Schema flexibility is SCRUMptious. I honestly feel it cut out a lot of headache and made development smoother. It also allows me to have additional “columns” which are just json fields that may vary from one “record” to the next. Of course these are Documents in Couchbase, they are not columns or rows, but most people still seem to think in SQL (for now).

So what does it mean to have Schema Flexibility? Couchbase stores data as JSON documents. That means as I retrieve and save my Ruby objects, I can easily add new JSON keys to the document or change their values from strings to arrays or whatever I need to change. I don't have to do a migration. Its nearly the same as creating or consuming an API with JSON, only it's my database and model.

(*Caveat – Of course if I already have millions of documents in a certain data format, I might want to handle the changover when they are instantiated, or do a “data migration,” which is different than development of a new application. Even this is trivial to implement.)

Ruby is a beautiful language, Rails a beautiful framework and paired with Couchbase, development has become even more organic than before. 

@scalabl3

Share this article
Get Couchbase blog updates in your inbox
This field is required.

Author

Posted by The Couchbase Team

Jennifer Garcia is a Senior Web Manager at Couchbase Inc. As the website manager, Jennifer has overall responsibility for the website properties including design, implementation, content, and performance.

Leave a comment

Ready to get Started with Couchbase Capella?

Start building

Check out our developer portal to explore NoSQL, browse resources, and get started with tutorials.

Use Capella free

Get hands-on with Couchbase in just a few clicks. Capella DBaaS is the easiest and fastest way to get started.

Get in touch

Want to learn more about Couchbase offerings? Let us help.