In 1977, a British polymath named Christopher Alexander, who studied Math and Architecture at Cambridge and was awarded Harvard’s first PhD in architecture, published a book titled A Pattern Language: Towns, Buildings, Construction. This book would transform the architecture world, and more surprisingly, forever influence the way computer scientists write software.
A Pattern Language prescribed rules for constructing safe buildings, from the layout of a region of 8M people, to the size and shape of fireplaces within a home. Today, A Pattern Language still ranks among the top two or three best-selling architecture books because it created a lexicon of 253 design patterns that form the basis of a common architectural language.
A decade after A Pattern Language was published, Kent Beck and Ward Cunningham, two American software engineers, presented the paper “Using Pattern Languages for Object Oriented Programs” that reshaped Alexander’s ideas for computer programming.
paper catalyzed a movement to identify programming patterns that solved problems in elegant, consistent ways that had been proven in the real world. It inspired the Gang of Four to write the seminal computer science book Design Patterns which formalized concepts like WYSIWYG, Iterators and Factories, among others. These design patterns have infiltrated the curriculums and patois of computer scientists ever since.
Design patterns continue to spread widely. For example, management science calls them best practices.
As the prevalence of data within companies surges, and businesses adopt data-driven cultures, data design patterns will become emerge – much as they have in management, architecture and computer science. Some of these design patterns exist. But over the next few years, they will be formalized and refined.
Looker is taking a big step in that direction with their release of Blocks. Blocks are design patterns that enable a data scientist to define an active user once, so that everyone else in the company can begin to analyze user activity using a consistent definition.
These data design patterns have been field tested across hundreds of customers and documented extensively. And they are meant to be generalizable and flexible across different data sources like Salesforce, Marketo, Zendesk and meant to be tailored to the needs of each organization.
Much as the design patterns in computer science and architecture simplified the tasks of coders and architects, data design patterns, like Looker’s Blocks, simplify the lives of data scientists, and ensure that everyone using data is using the right data every time.
Data design patterns are still relatively new and will evolve as companies create and capture new types of data, and develop new analytical methods to understand the trends within. These data building blocks will be just as fundamental to data science and analysis as Alexander’s were to architecture and the Gang of Four’s were to computer science.