# Presentation: 442321

## JUDICIAL IMPLEMENTATION OF GJXDM

- PAT BROOKS
- LARRY BRENDEL
- JIM BOESCHEN
- RICHARD TEWS

## Project Background
Agile – an Application Development approach 
Technologies Utilized
Providers perspective
Lessons learned
GJXDM Projects

- Project Background
- Agile – an Application Development approach
- Technologies Utilized
- Providers perspective
- Lessons learned
- GJXDM Projects

- Agenda

- JUDICIAL IMPLEMENTATION OF GJXDM  GJXDM Users Conference September 2006

**Notes:**
Agenda notes here:

## SAVED TIME – SAVED MONEY 

- Saved

**Development Time **
**Reduced By **
**50-75%**

- SAVED TIME – SAVED MONEY

**Notes:**
Interfaces developed by the Missouri Office of State Courts Administrator merging 49 court systems and sharing data with prosecuting attorneys saved $1.6 million and cut implementation time by 50-75% .

## COURT AUTOMATION VISIONService & Justice Access

- 1994

**49**

- Reduced costs to the litigant and taxpayer
- Greater efficiency
- Wider access and enhanced accountability
- Timeliness in processing of cases without sacrificing the quality of justice
- Utilizing similar facilities statewide based on standards for hardware, software and common data definitions
- The ability to interface electronically with other state and local systems and networks

**49**

**Notes:**
In 1994 funding was authorized to establish statewide court automation.
With 49 courts in a geographically dispersed area, this has proven to be a long process, with significant challenges.
Some goals included 
reduced costs to the litigant and taxpayer
greater efficiency
wider access and enhanced accountability 
timeliness in processing of cases without sacrificing the quality of justice 
utilizing similar facilities statewide based on standards for hardware, software and common data definitions  and the ability to interface electronically with other state and local systems and networks 

## STANDARDIZE JIS DECISION

- DECIDED TO STANDARDIZE JIS SYSTEMS
- CHOSE ORACLE-BASED SOLUTION
- BEGAN CONVERSIONS
- 18-24 MONTHS CONVERSION TIME PER COURT

**Notes:**
In 1997, the State awarded a contract for a statewide case management system. The system is ACS Justice Information System with an Oracle database. It was being rolled out statewide through a series of phases. These began with pilot courts in 1997 and expanded to 76 courts. All circuit, associate, and appellate courts are slated to have JIS in place.

## BACKGROUND INFORMATION

- Custom conversion programming was required for each legacy system:
- Limited code reuse
- 18-24 months development time
- Serial development activity
- Limited documentation on a targeted platform

**Notes:**
Prior to implementing GJXDM, custom conversion programming was required for each legacy system: 
Limited code reuse
On average 18-24 months development time
Serial development activity (Law of Diminishing Returns.  Can only have 1 or 2 people working at a time)
Limited documentation on targeted platform

## BUSINESS CHALLENGES

- Faster conversion of legacy case information
- Case filing interfaces for adult and juvenile case types
- Prepare for national data exchanges

**Notes:**
The key technical challenges were:
Converting legacy case management information from a variety of proprietary disparate systems in half the time of prior conversions and
OSCA executive staff requested various case filing interfaces for adult and juvenile case types and
Preparation for national data exchanges like (NICS mental health reporting)

## APPROACH TO BUSINESS CHALLENGES

- Conducted research on GJXDM projects
- Sought out experts
- Developed a Request for Proposal
- Established the development team (Internal/External Resources)
- Established proof of concept project
- Developed a project release plan with prioritized functionality
- Iterative release of application
- Maintain application

**Notes:**
We followed these general steps to develop the solutions
Conducted research on GJXDM projects
Sought out experts
Developed a Request for Proposal 
Established the development team
Established proof of concept project
Developed a project release plan with prioritized functionality 
Deploy application

## GET A CONSULTANT WITH EXPERIENCE YOU CAN TRUST

- When building relationships with vendors....
- Partner with consultants you can trust.

**Notes:**
It is sometimes a leap of faith ... but you can only make that leap if you know and trust your partner to fulfill their role. We took that leap with Asynchrony Solutions... they provided experienced, capable, and reliable help developing our GJXDM solution.

## SOFTWARE PROJECTSVENTURE INTOUNCHARTED TERRITORY

**SOFTWARE PROJECTS****VENTURE INTO****UNCHARTED TERRITORY**

**Notes:**
In the maritime museum in Greenwich outside London there is (or used to be) a globe from Columbus's time showing the world as it was thought to be - basically as it is now, but with no Americas. So Columbus knew the world was round but thought that by sailing west he'd hit India, not realizing there were other continents in the way. 
That's why the West Indies are so far from the East Indies. Columbus called the residents of America “indian” because his map was supposed to guide him to India.  

The project plan, or map, is a best guess. It is hypothetical, like a game plan... but no more than that. Most software projects are ventures into uncharted territory. 

Like in scientific method, once the hypotheses are tested... they can turn into theory or a “law” Only working code is theory.

## Slide 11

**Notes:**
The only  way to navigate uncharted territory is to pay attention to the world around you and take one step at a time.
When you’re climbing a cliff, it’s a good idea to plan a route and have a goal, but you better focus on your hands and feet and the next toehold.

## Slide 12

**Notes:**
Blindly following a pre-defined end-to-end project plan is like driving with a map blocking your windshield.  If you don’t keep your eyes on the road, you’re bound to miss the detour.

## Slide 13

**Notes:**
That’s why so many projects end up falling off the cliff.

## SOFTWARE ENGINEERING

-  Iterations
-  Stories
-  Stand up meetings
-  Refactoring
-  Unit testing

**Notes:**
 Iterations 
 Stories
 Stand up meetings
 Refactoring
 Unit testing
The bottom line is that a results-driven approach focusing on measurable results are 
Politically popular and most easily funded. 

## EARLY LESSONS

- EARLY LESSONS

- STORY COMPLETION SHOULD BE WITHIN AN ITERATION
- REFACTOR EARLY TO AVOID LONG-TERM CONSEQUENCES

**Notes:**
Some of our first lessons in this process were to 
First, Complete a story within one iteration
Second, refactor the code frequently to 
 simplify maintenance
 make easier to extend
 improve efficiency and
 create a solid set of tests to avoid errors

## TECHNOLOGIES USED

- ANT
- CVS
- WinCVS/Tortise
- Cruise Control
- Eclipse
- Digestor
- J-unit
- Hibernate/iBatis
- Maven
- MiddleGen

- MQSeries
- Oracle PL/SQL
- WebSphere Application Server
- WebSphere Developer Suite
- XML Beans
- XML Spy
- XML Buddy
- JAVA
- Lotus Notes
- Microsoft Excel
- Axis

**Notes:**
Our shop is essentially an “open-source” environment.  We chose this for its vendor neutrality and flexibility. We used these software tools on this project.  We didn’t originally have technical “java” programming expertise when we started.  We believe we have some very talented people on board and they learned that language, and mastered it  with the tutoring of our partners from Asynchrony who were working on-site for several months.

## DEVELOPMENT TASKS

- Construct Prototype
- Data Analysis
- Define data analysis team (involve right people at the right time)
- Collected/define data elements
- Establish information exchange point (JIS Knowledge Database)
- Create the object model
- Map to the GJXDM
- Create Extensions
- Create Subset
- Create Constraints

**Notes:**
Once objectives were prioritized, we constructed a prototype
This involved extensive data analysis:
Define data analysis team (involve right people at the right time)
Collected/define data elements
Establish information exchange point (JIS Knowledge Database)
Create the object model
Map to the GJXDM
Create Extensions
Create Subset
Create Constraints

## DEVELOPMENT TASKS

- Create Java data objects to map data
- Construct Java model (Eclipse)
- Create Database to Java data object mapping (Hibernate/iBatis)
- Create XML to Java mapping (Digester)
- Create rules (Java code)
- Create constraints
- Developed Unit test (Cruise Control)
- Developed Stress test (Cruise Control)
- Create sample XML data
- Published the IEPD (Information Exchange Package Document)

**Notes:**
Here I’ve tied some of those steps back to specific tools we used to develop our solutions.  In a nutshell, our first project was about migrating data from a legacy data source to our primary database.  We created applications and used tools to extract, manipulate and transform, and insert into the database in the format it required.  We’ve since used the GJXDM schema technology to create a data exchange with Prosecutors.

##  A DATA EXCHANGE BUILT WITH XML AND WEB SERVICES

-  A DATA EXCHANGE BUILT WITH XML AND WEB SERVICES

- DELIVERY - INTEGRITY - SECURITY

**Notes:**
This is how we built a successful GJXDM data exchange. XML is a standard facilitating data exchanges.  Participants export data into a common xml data format. The management of the data exchange is generally handled by Web services, which are applications handling tasks including publishing availability, data requests, sending data, retrieving data, security, authentication, and the enforcement of business rules. Web services are the pieces and parts, that when combined, form a data exchange.

##  LESSONS LEARNED ABOUT DATA EXCHANGES

-  Development of first secure Web service
- (2 programmers, 3 months)
-  Second service
- (1 programmer, 1 week)
-  Published information or samples of a secure Web service is not readily-available

**Notes:**
How complex is this process?
Development of first secure Web service 
(2 programmers, 3 months)
 Second service 
(1 programmer, 1 week)
Published information or samples of a secure Web service is not readily-available

## DATA SHARING IS POSSIBLE WITHIN AND BETWEEN ORGANIZATIONSDEVELOP INFORMATION EXCHANGE POINTSSPRINGBOARD FOR FUTURE DEVELOPMENT EFFORTS

- DATA SHARING IS POSSIBLE WITHIN AND BETWEEN ORGANIZATIONSDEVELOP INFORMATION EXCHANGE POINTSSPRINGBOARD FOR FUTURE DEVELOPMENT EFFORTS

**Notes:**
Standards-based data exchanges are the way we share data. Properly employing “Web services” technology can connect and leverage data from otherwise disconnected systems to address problems. Web services can share information, where it is needed, safely, securely. It can do it in a way that allows for future growth and future applications yielding breakthrough results, but only when properly architected.   These advances in technology and standards provide the practical means to connect our existing systems and seamlessly share data. 

## Slide 22

## Slide 23

## Slide 24

## LEGACY SYSTEM CONVERSION

- MAP DATA FROM LEGACY SYSTEM TO NEW SYSTEM (KNOWLEDGE DATABASE)
- EXTRACT DATA FROM LEGACY SYSTEM
- LOAD DATA INTO ORACLE DATABASE
- CREATE DATABASE OBJECTS
- TUNE FOR OPTIMAL PERFORMANCE IN CREATING XML DOCUMENTS
- CONSOLIDATE DEMOGRAPHIC INFORMATION FOR PEOPLE IN LEGACY SYSTEM
- BUILD XML DOCUMENTS FOR CASES
- LOAD XML DOCUMENTS INTO DATABASE
- CORRECT CASES WHERE VALID XML DOCUMENT COULD NOT BE BUILT
- CORRECT CASES WHERE ERROR OCCURRED WHEN LOADING CASE INTO THE DATABASE

## EARLY LESSONS FROM A PROVIDER PERSPECTIVE

- EARLY LESSONS FROM A PROVIDER PERSPECTIVE

- BUILD ITERATIVELY –
- 		SMALL PIECES END-TO-END
- REFACTOR DOCUMENTATION AND CODE
- COLLABORATE
- MAPPING BUSINESS MODEL TO GJXDM EXCHANGE TRANSLATION
- VALIDATE XML AGAINST SCHEMA BEFORE SUBMITTING

**Notes:**
Some of our first lessons in this process were to 
First, Complete a story within one iteration
Second, refactor the code frequently to 
 simplify maintenance
 make easier to extend
 improve efficiency and
 create a solid set of tests to avoid errors

## INTERESTING PROJECT STATS

- Modeled 647 data elements from GJXDM
- Developed 3,400 separate Java programs
- Stored data in 51 different tables
- Converted over 3,000,000 cases
- Converted and consolidated over 3,000,000 party records
- Project began in April 2005
- Roughly 72 million records converted as of June 2006

## LESSONS LEARNED – OUR VIEW OF THE PATH TO SUCCESS

- FIND EXECUTIVE SPONSORSHIP
- ESTABLISH GOVERNANCE STRATEGY
- CONDUCT RESEARCH
- EDUCATE YOUR TEAM
- PARTNER WITH EXPERTS
- ESTABLISH AN APPROPRIATE BUDGET

- ESTABLISH PROJECT TIMELINES
- PRIORITIZE
- DO A PILOT / PROOF OF CONCEPT
- INCREMENTS AND ITERATIONS
- HAVE A CLEARLY DEFINED PROJECT SCOPE
- UNIT TESTS SHOULD TEST REAL BUSINESS PROCESSES

## ...LEAD, FOLLOW, OR GET OUT OF THE WAY

-  Implementation date set prior to project initiation
- Avoid “Analysis Paralysis”
-  Pick a path, decision making is essential
-  Be “Agile”
-  Rigidly reassess decisions

- Meeting The Target Date

-  Implementation date set prior to project initiation
- Avoid “Analysis Paralysis”
-  Pick a path, decision making is essential
-  Be “Agile”
-  Rigidly reassess decisions

- Meeting The Target Date

**Notes:**
To be successful, you must assess your strengths and weaknesses, establish a clear direction, choose a route, and then consistently reassess that route as you proceed.

## REALIZE THE VISION

- Improve data accuracy
- Decrease administrative costs
- Enabling parallel development
- Streamline processes
- Developed automated processes

- Reduce case filing time
- Improves professionalism
- Increased Reusability
- Eliminate Redundancy
- Broadened Technical Skills

**Notes:**
Employing GJXDM standards to XML schemas and web services, can help your organization reach its data-sharing goals.  Our experience tells us that this technology can
Improve data accuracy
It can decrease administrative costs
It reduces the time required to get cases filed
And improves the professionalism of agencies

In short by making data-sharing projects that work, we have seen first-hand how rapidly providing and sharing information makes a real impact.

## GJXDM PROJECTS

- Criminal Initial Filing
- Transfer of criminal information from the local prosecutors to the court
- E-Warrants
- Transmission of warrant information to state and local law enforcement
- Civil Initial Filing
- Transmission of civil case information from attorneys to the court
- CaseNet Web Service
- Extension of current award winning public solution
- E-Filing
- Electronic submission of case information from litigants to the court

## DISCUSSION

- Q & A

## CONTACTS

- Patrick Brooks
- Manager, Applications Development and Administration
- Information Technology
- Office of State Courts Administrator
- 573.526.8885
- pat.brooks@courts.mo.gov

- Richard Tews
- Asynchrony Solutions
- Director Technology Services
- 314.678.2264
- 314.757.7690 mobile
- rich.tews@asolutions.com

- Larry Brendel
- Programmer/Analyst Supervisor
- Information Technology
- Office of State Courts Administrator
- 573.526.8312
- larry.brendel@courts.mo.gov

- Jim Boeschen
- Programmer/Analyst Supervisor
- Information Technology
- Office of State Courts Administrator
- 573.526.8830
- jim.boeschen@courts.mo.gov

## Slide 34

**Notes:**
NEW methods based on their real-world experiences OF DEVELOPERS AND MANAGEMENT GROUPS were formulated into a project approach called “Agile.”
Instead of fighting or ignoring change, Agile embraces change and uses it to create better software.
Instead of managing by a task oriented gant chart, Agile projects are guided through close customer collaboration and iterative cycles of development.
Instead of relying on paperwork to prove that the project is going well, Agile proves success through the delivery of working and tested code.
The process is powerful, yet simple. 
Development occurs through short duration iterations, driven by customer prioritized features or “stories”. At the end of each iteration, the customer reviews working code and re-sets priorities for ANOTHER iteration. Feedback from the customer after AN iteration, and changes in the business or technical environment are taken into consideration when choosing the deliverables for AN iteration.  Release timeframes are pre-set, and each release results in more functionality.