I’ve just re-read Stefano Mazzocchi’s 2005 article Data First vs. Structure First. His argument is that “data first” strategies are more intuitive than “structure first”, e.g. Excel vs. databases, blogs vs. CMS, tags vs. hierarchies. As an IT guy you might expect me to be in the “structure first” camp but after more than a quarter century in the business I now firmly believe that design must follow the data, especially in the BI and business process/integration arena.
Stefano says it best:
Next time you spend energy writing the ontology, or the database schema, or the XML schema, or the software architecture, or the protocol, that ‘foresees’ problems that you don’t have right now think about “you ain’t gonna need it”, “do the simplest thing that can possibly work“, “keep it simple stupid“, “release early and often“, “if ain’t broken don’t fix it”and all the various other suggestions that tell you not to trust design as the way to solve your problems.
But don’t forget to think about ways to make further structure emerge from the data, or you’ll be lost with a simple system that will fail to grow in complexity without deteriorating.