Model-Driven Software Produces Truly Agile Solutions IEEE STC 2014 Long Beach, California April 1, 2014 Steve Kruba Chief Technologist Product Strategy & Development NGIS Technical Fellow
Model-Driven Agile Solutions Three modern concepts that are important to software development Model-Driven What is a model? What does it mean to be model-driven? Agile Agile Software Development ( Iteration ) Agility for Business Process Management Agile Procurement in the Federal Market Agile Solution Easy to build and easy to change! Solution An automated solution is the overall process of the interaction between man with machine to achieve a desired business result Solution is not the same as application As developers, we tend to think of our application as the solution! 2
Solutions 3 solution development approaches Agile Software Development Software development using models Eclipse Modeling Framework, MVC, MDA, Struts, CASE tools, etc. Model-driven solutions Agile Software Development Model The goal is the Solution Software is a means to that end Source Code Model-Driven Agile Source Code An example of the difference between these approaches is commercial software products like e.power Agile process to develop e.power software Agile process used to develop solutions using products like e.power Once we understand the difference between the software and the solution, a new development approach emerges Solution Think of Solutions created by PowerPoint, SharePoint, or e.power 3
High-Level Example: Business Process Management
Business Process Management Example e.power is Northrop Grumman s Commercial Off The Shelf software platform for delivering enterprise solutions that manage data, documents, and business processes. Business Process Management is the core of e.power, with document and data management capabilities to support the business process. Agile Solutions Development allows for the creation and deployment of solutions writing little or no code Tools to visually manage processes Rich set of web services and Application Program Interfaces to extend capabilities and interface with additional applications Use e.power to automate, manage and provide complete visibility into business processes that involve knowledge workers, external applications, documents and data. 5 Tools for Application Creation: Little or no coding
6 Iterative Agile Software Development
7 Overview of the Agile Software Process
8 Sample Release Timeline
9 How Does Model-Driven Software Work?
Example: Key Components of BPM Solutions Forms Workflow Application Three Key Parts to the Model 10
Customization Options Custom Forms AJAX Web Services & Intelligent Agents Workflow Forms Application API s Templates AJAX 11 Custom Distribution API s Customizations can become part of the Model
Model-Driven Architecture Application Designer Process Engine/Services Relational Data User Interfaces Process Designer 12 Designer-generated data dynamically drives process flow and UI s
Business Object Types or Entities Metadata on steroids Lines up against business concepts EEO system: complaint, complainant, class action Training system: participant, class, classroom Automatically creates Forms capabilities (customized UI s and behaviors) Rich view/edit/update interfaces Searchability Attached documents with versioning Collaboration Audit information Supports many object types per solutions (dozens) Multiple circulating in the same workflow 13
Prototyping Build a custom, process-enabled application in 10 minutes! Case Management scenario Custom fields and custom workflow Complete user interface out-of-the-box! Process claims in 10 minutes! Focal Points of the Demo Quick and easy to build solutions Powerful prototyping tool for requirements gathering Claims Data Included Features: 1. Enterprise scalability 2. Functional and data security 3. Automatic forms creation 4. Structured and ad hoc workflow 5. Enterprise document management 6. Integrated search capability 7. Integrated network login 8. Built-in audit logging 9. Simple to make changes ( Agility ) 10. And more Claims Workflow Description: Char(150) Claimant Type: Char(11) Personal Injury: Boolean Claim Date: Date 14
15 Model-Driven In Practice
Model-Driven Solution Creation Model-driven software fundamentally changes our approach to building and deploying solutions Requirements validation is now done primarily using highfidelity prototypes, rather than paper Traditional formal designs are no longer critical since iterative changes are designed into the tools Analyze Design Because solutions are largely created using standard product components, the entire system life cycle is improved and accelerated Requirements gathering, requirements validation, analysis, design, documentation, implementation, QA, and maintenance Risk is greatly reduced: Risk of failure to produce a successful solution Risk of producing a good solution that is the wrong solution Plan Maintain Implement Model-driven tools alleviate the cost-constraint from iteration 16
Model-Driven Solution Development 17 Use existing documentation A Visio diagram or other process flow description Copies of key data entry forms Prototype solution using: Graphical process designer for process creation Application builder for application creation Security manager for security profiles Present solution to business users to refine requirements and solution using iteration Make changes to process diagram real-time Modify and test application real-time Add required customizations Put into production in phases (outer loop iteration) Get initial release into production quickly to get immediate benefits, quick wins Build on success, adding complex integrations in subsequent phases Model-driven tools reduce deployment time, cost, and risk
Summary Model-driven software allows us to use iteration as a technique for end-user engagement Iteration allows us to get smarter as we finalize our solution Models with a business orientation ( object types ) allow us to iterate in the business domain rather than the IT domain Improves communications between IT staff and the business staff Results in more successful solutions The same design tools that allow for rapid solution development are used to make changes as needed, resulting in agile solutions 18
19 Questions