Development Methodology Overview

Size: px
Start display at page:

Download "Development Methodology Overview"

Transcription

1 Development Methodology Overview Agile Software Engineering Process (Reflex Iterative Development Plan).NET ENABLED

2 Table of Contents I. Preamble (Consistency of Presentation / Ease Of Deployment) II. Development / Deployment Management (Production vs. Product Refresh) III. Development Engineering IV. The Reflex Agile Process (Process Focused Software) 2

3 I. Preamble (Consistency Of Presentation / Ease of Deployment): The following is a visual presentation of the major components of the Reflex Software Solutions product offering.net architecture. Internet Application Access Management Dashboard Template Mobile Application Access Application Dashboard Template Reflex Administration Dashboard Template Reflex Common Object Library Templates The foundation of the Reflex suite of products is built on four common and integrated set of object components and user presentation templates. The four building blocks (templates) are: 1) Reflex Server Based Common Object Library 2) Reflex Application Administrator Template 3) Reflex Application Dashboard Template 4) Reflex Management Dashboard Template 3

4 Flexibility: The library of server based components provides superior performance in terms of data access and reduced demand on the corporate communications network. The added benefit is of course ease of deployment in that additions or enhancements can be deployed easily and quickly without the need to redeploy the entire processing core (all applications)! Ease of Use: The principal concept of the Reflex.net templates is customer focus! Initial user training will concentrate on the structural organization of the three (3) templates and how the user(s) can navigate and control, and personalize their individual presentation layers. This will take very limited time and effort in that the templates all function in a similar manner using common components within the.net and MS-Windows processing model. Once this initial.net concepts training has been completed this template knowledge can be consistently applied to all applications throughout the product offering. Once the user is trained on the universal concepts navigating throughout the rest of the application offering is instinctive. Training of new personnel becomes quick and straightforward. The true benefit of template focused software. Keep in mind while templates can be configured and managed at the individual level a company may choose to set a standard corporate view that is consistent for all users. ROI Protection Planning:.NET isn t coming; it is here, and is the future! Reflex is fully committed to the.net application development framework and the benefits to be derived by the end user. As.NET evolves and sophisticates so will the Reflex product offering..net is already poised for the next generation of 64 bit hardware. Reflex.NET components are already browser based ready. Investment in terms of purchasing the Reflex solution is more than purchasing a software package; it is in fact purchasing a long term insurance policy protecting the investment in IT, application product offering, and user training. The bottom line is investing in 32 bit software today is investing in a limited-life strategy! 4

5 II. Development / Deployment Management (Production vs. Product Refresh ): As each application is migrated to the.net environment, its related components and stored procedures are frozen and identified with a production version number. Once a module is frozen and released for production deployment, product refresh version is created and assigned a beta version number. This is the environment in which module specific enhancements are developed, internally QA ed, customer beta tested, and on final approval by the Reflex CSM personnel (Reflex Customer Service Management personnel); released for general client base distribution. Product development is segregated from ongoing user service and support. Development is managed within the Reflex PDM department (Product Development Management). Ongoing service and support corrections are managed within the Reflex CSM area. User reported failures and resulting corrections are deployed to both the production and product refresh (beta) versions. Internal processes are in place in terms of both source management and deployment management. Source control is addressed via a modular approach to source access. Development is split into three distinct groups: 1. Database Management and related server based stored proc components 2. Presentation & Process Layer Management 3. Common Component Library Management Version deployment management is via a Reflex authored automated Environment Manager that auto assembles application components and runs related db scripts to verify data integrity. An error file is created reporting any version creation failures. Post deployment failures are reported and managed using an internal CRM dashboard Ticketing System (Heat System) that logs and tracks user issues, resolution progress, and deployment management and user communications. This process is being pushed out to the web the first quarter of 2009 facilitating 24/7 S & S response. III. Development Engineering: Migration to and standardization within the.net environment has afforded Reflex the opportunity to adopt an Agile Software Engineering Model. Agile engineering is both an objective and a set of governing principles; Objective: As defined in numerous white paper articles, the governing objective of the ACM (Agile Computing Model) is customer or end-user customization. Simply stated, the ACM enables mass customization (or more accurately end-user presentation & process personalization) of computing services by affording individualized processes at the modular level. Mass customization is the key feature that distinguishes application computing services built using agile technologies for other computer development models such as Waterfall Engineering. 5

6 Pursuit of this goal is a continual process as opposed to a single event. To date Reflex has included several user managed customization or end user personalization objects and components within the Common Reflex development library; Column Chooser Layout Manager Theme Manager Report Launcher Selection & Filtering KBI Dashboard Management Dashboard Data Mining User Interactive Graphing Tool PATI (Process Assistant & Training Instructor) Extending and adding to the user customization library is a continuing evolution. Agile Governing Principles: In its basic and generally accepted clinical definition (to quote one source) agile development is a structured process promoting multiple iterations, teamwork, collaboration and process adaptability throughout the life-cycle of the project. Agile accomplishes the task in small defined increments with minimal planning, rather than long-term planning. Iterations are short time frames known as time-boxes which typically lasts from two to four weeks. Each iteration is worked on by a team (refer to Reflex Team Structure) through a full software development cycle including planning, requirements definition, design, Object Oriented code development, iterative user approval presentations (time-box milestones), unit testing, and user acceptance testing. Each iteration will not necessarily produce a production ready deployable product, but the goal is to have an available release (with minimal bugs) at the end of each iteration. Multiple iterations will be necessary to release a particular module or enhancement. Of fundamental and primary importance is that each agile team must contain a user representative. This individual is appointed by the stakeholders to act on their behalf and available for developers to answer miditeration questions and provide business process guidance. At the end of each iteration, stakeholders review progress and re-evaluate priorities with a view to optimizing the return on investment and ensuring alignment with corporate goals and adherence to key audit controls. Iterative agile development is by nature iterative user development approval. This one statement differentiates the Reflex Iterative Development model from the more traditional Waterfall Development Model. The Waterfall model gets its roots from such models as SDM/70 which was more focused on being isolated from the end-user and measuring results with specifications documentation, test plans, and standardization code reviews. Agile is the complete opposite. 6

7 IV. The Reflex Agile Process (Process Focused Software): The Reflex process is consistent whether the process is being utilized to address totally new modules, technology migration, or the introduction of enhancements to an existing module, the Reflex process is consistent and adheres to the principles of the Agile Manifesto. Team Structure; o User Representatives; User Requirements Representatives User Testing & Approval Representatives User Key Controls Representatives o PDM Representatives; Development Project Leader Presentation, Database, Component, and Server Process Developers o CSM Representatives; Project Leader & User Liaison User Implementation Assistance User Training Team Project Scheduling (Milestone Definition) o Target Schedule (MS Project With Identified Milestones) o Team Responsibility Matrix User Requirements Definition; o Requirements Checklist Target Responsibility Status Presentation / Process Skeleton Layer Development (Development Scrums ); o Based on user requirements definition checklist develop project presentation layer and proposed business process flow; Reflex Application Dashboard Template Reflex Management Dashboard Template Reflex Application Administrator Template Report Launcher o Assess Reflex standard component library and customization objects; Enhance existing common library objects and components Add functionality or flexibility to existing library objects and components o Iterative scrums to ensure the alignment of requirements with db structure, presentation templates, process navigation, and business processes o Key Control presentation layer milestones o Document end-user iterative and progressive approvals User Approval Presentations (User Approval Scrums ); o Iterative presentation layer and process flow development and user scrums to project objectives and application dashboard structure o Review, discuss, and constantly adjust presentation layer with objectives within the confines of agile development principles time-boxes Unit Testing (prove the process); o Full unit testing with user representatives and Phase I user approval; Presentation Layer Approval Arithmetic Processing Approval Financial Integration & System Balancing Approval Key Controls Approval 7

8 Final User Acceptance Testing; o This process is combined with final user training and go live conversion planning o Reflex Agile User Customization Training (how the user can customize and personalize the application to individual needs and processing environment differences o Full test bed deployment (Reflex Environment Builder) o Multi-user testing & balancing o Final Process & Key Controls Checklist reviewed and approved the Reflex CSM and the end user stakeholders Production Deployment; o Test data conversion (if applicable) o Reflex Implementation Assistance o Go Live Dedicated Support Product Refresh Follow Up; o Version Management (Production Version & Related Beta Development Version) o Planned product enhancement management utilizing the full agile software engineering process The Reflex Iterative Development Plan (Agile Software Engineering Process) is user involvement and business processed focused. In effect the process and methods are in fact a team approach to development with a continual and constant aspiration for improvement in all areas of the software development and Deployment Theater; user involvement, user acceptance, requirements management, scheduling and budget adherence, structured process, technology utilization, and senior management buy in. Reflex Software Solutions Reference: Agile Computing White Papers 8