Agile Geodatabase Design
An iterative waterfall?
While Agile is on my mind, I thought I’d write a bit about Agile Geodatabase design.
Let’s say I follow ESRI’s steps from the bottom of this page to create a geodatabase.
1. With Microsoft Visio or Rational Software Corporation’s Rational Rose, design a geodatabase in UML and export it to an XML Metadata Interchange (XMI) file or Microsoft Repository. To learn how, see http://support.esri.com/geodatabase/uml.
2. Add the Schema wizard to ArcCatalog.
3. Generate a geodatabase schema from the XMI file or Microsoft Repository with the Schema wizard.
4. Once you have generated the schema, you can modify it with tools in ArcCatalog if needed.
5. Once the schema is ready, you can load data into it.
In step 4 let’s say I decide to modify the schema. At that point my schema is out of synch with my CASE model. It can quickly become a pain keeping the model in synch with the geodatabase. Then there is also the pain of keeping Data Access Layer Components (DALCs) in synch with the geodatabase. In essence, these steps represent a waterfall.
So here’s my suggestion: ESRI should provide a Geodatabase Designer within Visual Studio. It would provide a look and feel similar to the VS Class Diagrammer, but it would not replace the Class Designer. Instead, it would provide a graphical way of editing an XMI schema containing geodatabase types. A command would allow it to generate code (.NET classes) the way Dave describes here. Likewise, there would also be a command to synchronize the XMI schema with a geodatabase, as well as with the DALC’s.
I know this is all rather vague, but my point is until we have easy-to-use tools that support the round trips needed in iterative development we’ll end up with waterfall processes. Escher notwithstanding, waterfalls are very un-agile.
Update: Here‘s an example of how a designer can be built for Visual Studio.