STAR, XML Data Architect for 5 years. </li></ul>Who is Dave? <ul>Twitter #NIEMNTE1 </ul>
• Changing Requirements – Requirements change • Monthly • Weekly • Daily – Users of the Data Specifications need the standards sooner • Data Specifications typically released every 2 years or longer • Users requirements have changed. Government regulations have changed. Data Standards Development Challenges <ul>Twitter #NIEMNTE1 </ul><ul> </ul>
• Manual Processes – Schema are created manually one time before release. – Manual Verification of user requirements – Manual Code Merges. No Source Code Control besides Zipping the repository. • Documentation – Maintained outside the schema – Not kept in sync with the schema – Available in limited formats or proprietary Formats. • Testing/Validation is an after thought. Data Standards Development Challenges <ul>Twitter #NIEMNTE1 </ul><ul> </ul>
This includes over 50 guidelines, covering 150+ use cases.
Process scaled to maintaining two different Versions of the repository. STAR 4 and STAR 5.
Full Process is repeatable. Runs every night. </li></ul><ul>Twitter #NIEMNTE1 </ul><ul> </ul>
• Unit Testing – Test Driven Development - XML Schema: Elements, ComplexTypes, SimpleTypes, Code Lists, Naming and Design Rules • Continuous Integration – Source Code Control – All Development checked in daily - such as Jenkins, Hudson, Luntbuild, CruiseControl • XSDs, Automated Builds, Sample XML, Unit Tests Required Agile Practices <ul>Twitter #NIEMNTE1 </ul><ul> </ul>
Iterative Development – Iterations 2 Weeks in Length. • Requirements, Unit Tests, Schema Development • Publication ready build at end of iteration. • Automated Builds – Automate everything! • Builds, Guidelines, Testing. • Involve the Stakeholders – Those requesting the requirements need to be involved throughout the process, including Developers working on Implementations. – Open and Honest communication is a must. Required Agile Practices <ul>Twitter #NIEMNTE1 </ul><ul> </ul>
<ul><li>More accurate and timely representation of the requirements
Less Manual/Human intervention, reducing overall process mistakes.
Greater interoperability and backwards compatibility.
Unit Tests catch errors early instead of months later. </li></ul>Benefits <ul>Twitter #NIEMNTE1 </ul><ul> </ul>
<ul><li>Don't try to get the PERFECT Model. Get one that is Good Enough.
Unit Test..Unit Test...Unit Test </li></ul>– Catches Errors Early – Provides a Regression Test Suite – Run as often as possible – Catches changes that break compatibility • Automate Everything Possible and have Source Code Control • Conduct Nightly, Milestone, and Release Builds • Agile Development is not a Silver Bullet. There is no one RIGHT way to do it. <ul><li>Adopters LOVE getting their requirements sooner rather than later. </li></ul>Lessons Learned from STAR's implementation. <ul>Twitter #NIEMNTE1 </ul><ul> </ul>
A particular slide catching your eye?
Clipping is a handy way to collect important slides you want to go back to later.