Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MongoDB UK 2012: Why the Schema Diagram is Ruin...

mongodb
June 20, 2012
550

MongoDB UK 2012: Why the Schema Diagram is Ruining Enterprise Computing

Sean Reilly, Developer, Equal Experts
Enterprise architects often use schema diagrams as if they are the diagrams of the entire system. This happens largely because schema diagram tools are the easiest solution available, and because they can automatically generate diagrams from a SQL database. This approach has some major drawbacks — the most serious being that applications directly access databases controlled by other applications and business groups. The talk will show why this is such a bad idea (basically, it can slow all development and improvement across the entire enterprise to a crawl), and give some ideas about how to fix the problem and introduce proper encapsulation back to enterprise computing. By moving away from modelling enterprise systems through relational schema diagrams and focusing on encapsulation of services, developers and architects are freed up to consider the most appropriate data storage product for their systems.

mongodb

June 20, 2012
Tweet

Transcript

  1. Enterprise Development Very different from a startup or small company

    Age of employees Dev : Manager ratio 8pm at the office Technology stack Dress code Certifications Operations Lead time Motivations
  2. The Biggest Difference Different funding Different part of the organisation

    Different development culture Different development schedules • • • • Multiple Teams Working on pieces of a “software suite”
  3. Making This Work Focus on overall efficiency vs local efficiency

    Tension between local and global effects • •
  4. Example Java vs. Ruby Ruby makes this utility 10% cheaper

    Adding ops expertise w/ ruby costs £££ Total languages across the organisation Ruby is the better local choice • • • • •
  5. Role of an Enterprise Architect Given a complex software suite

    composed of independently developed pieces, focus on the global perspective
  6. Why Do This? Difficult task Architects are lazy people too

    The tool can produce something • • •
  7. Why is This a Problem? Almost what is needed Wanted

    a diagram of a complex system Instead we have a diagram of how the system persists data Not useful for analysis • • • •
  8. Not a Problem with NoSQL Multiple technologies Do more in

    the application layer Less is more • • •
  9. What Goes Wrong Next Mistake the map for the terrain

    Makes implementation details public Encourages interaction via persistence • • •
  10. How do you get from “almost the right diagram” to

    “damages enterprise software development”?
  11. Externality A side effect or consequence of an industrial or

    commercial activity that effects other parties without this being reflected in the cost...
  12. The Story So Far Lack of encapsulation hurts development Feels

    like the organisation taxes projects Reasoning about software using persistence breaks encapsulation Schema Diagrams encourage • • • •
  13. Fixing the Problem Easier to prevent than fix Interact through

    code, not persistence Change the diagram type Diagram interactions, not storage • • • •
  14. What to Use Instead Web Services REST JMS/Messaging Anything that

    can use multiple versions • • • •
  15. The Secret Benefit If an application’s persistence is an internal

    implementation detail, then it’s easy to migrate to MongoDB!