Here at Snaplet, we like to work smarter, not harder. Not only does it make us more productive, it also gives us more free time to watch funny cat videos. Snappy loves a good laugh. There are many tools for developers that make it easier to code, but until now, relatively few tools exist that makes working with data easier. Let me give you an example.
Snappy is building a new feature for CATCH, a "one-of-a-species" dating site for cats. They have all the code figured out. But before they can start building, they need data. So they are given the option to choose between two pills; red would require them to download the production database to their local machine or blue; they have to write a seed script. Say whaaat?
Both options seem daunting. Copying live data to their development environment may be quicker than writing seed scripts, but creating a snapshot pipeline is still difficult to do and maintain. To set up a snapshot pipeline they need a senior engineer with infrastructure and broad product knowledge. Since it's a direct copy of the data, it lacks sophisticated transformations, hence the snapshot can be slow to download and expensive to store. And of course if the original production database contains PII (personally identifiable information). Snappy takes privacy very seriously.
Most choose the longer, "safer" route: writing seed scripts and fixtures. These are hand-written files that make assumptions about the shape of the data. Seed scripts are hard to create and needs to be constantly maintained over the life-cycle of the product. It takes about two to four hours per week to create and maintain seed scripts for a medium-sized team. Many times, the assumptions are inaccurate. It works on one machine, but throws out an error on another. A lot of scratching and screeching follows ... Also, it is tiny representation of the real size of the data, which means BUGS! By this time Snappy is finding refuge in their Kattens No. 1 Heubii Cat Cave. As you can see, not only was it a schlep to do, it totally destroyed Snappy's productivity and ruined their usually easy-going temperament. That's a bitter pill to swallow.
So basically, most software developers code against unrealistic data and/or they make assumptions about "live production data" which lead to bugs, wasted time and inaccurate features. This is where Snaplet humbly comes to the rescue. Snaplet is a workflow tool for developers that easily copies a portioned snapshot of a production database, transforming personal information, so that developers and teams can safely code against actual data. This can all be done in a few simple steps.
So what does this mean for developers (and code-cats)?
1. Safer working environments
Snaplet detects PII, and then allows you to easily de-identify the data so you don't have to walk around with sensitive information on your dev machine.
2. More time
Snaplet does most of the work. You don’t have to write seed scripts and/or waste time on maintaining them.
Working with actual real-world data creates a better development environment.
Developers can share their database snapshots with team members.
Developers can work on different features and bug fixes at the same time.
6. Self-service workflows
More independence as developers don’t need to wait for infrastructure support.
After some loving coaxing and dancing around with a catnip branch, Snappy hesitantly emerged from the cat cave. We had them back on the jolly wagon after showing them how Snaplet saves time, reduces bugs, allows for collaboration and branching, as well as total autonomy (you know most cats like working alone). It was time to ditch the pills and take their first Snapshot. A few simple steps for mankind ... but a major leap for Snappy. If you're not as convinced as them, just give it a try.
Let me tell you why you’re here. You are here because you know something. What you know, you can’t explain. But you feel it. I don't know the future. I didn't come here to tell you how this is going to end. I came here to tell you how it's going to begin. Go ahead, and create your own Snapshot.