Alcatel-Lucent CDC Workshop, Coaching & Knowledge Transfer Genesis
Toolset and methodology framework that bridges the gap between functional design and the codebase. Guarantees an unseen level of control over the software development process. Can be integrated into any development process. Has real world value. It improves delivery dramatically. Cleverly designed toolset that imposes certain practices on analysts and developers.
Traditional Workflow This practice has led to an amazingly poor result in terms of delivery. Hardly 10% of software projects are delivered on time and on budget. User requirements PlanningAnalysisCodingTestingDelivery
Genesis Workflow
Integration of several agile practices: XP Test Driven Development Continuous Integration Refactoring ...
How To Use It
Functional Design Use Case Driven Preconditions Normal Flow Alternate Flow Document is tagged using the Genesis Tagger Each requirement is marked Each non testable is marked Requirements
Test Driven Development Writing tests following TDD rules Link tests to business requirements Tests are marked with Genesis attributes One test can be linked to multiple requirements
Continuous Integration Automated Genesis run: Get latest version of functional design Build project Run unit tests Push artifacts to Genesis server: Functional design Test results Test assemblies The Genesis server processes all artifacts and displays the results graphically
Input Functional design with genesis information Compiled assembly with genesis information TestResults xml for test information
Output Structured and readable genesis output through client
Web Client
Search functionalities Actions: Select project Open report Charts Fullscreen Change password About Logout Download: Client tools Tagger
Web Client - Search
Web Client - Charts
Web Client – Changes
Web Client - Comments
Web Client - Linking
Web Client - IDE
Desktop Client
Tagger Part of Office 2007 Ribbon
Tagger Add tags: Requirement group Not testable Requirement Repeating area Repeating text Auto tag Tag all hierarchy Remove tags: Remove selected Remove all
Document
Metrics & Kpi’s
Quantify your processes Build information Versioning information Code analysis Genesis information Operational metadata
Benefits of quantification (Implicit) measurement of development quality leads to optimization Individual developers Group processes control your development process Establish SLA’s with third parties!
Visualize your metrics Use simple and easily accesible representations Genesis, Glance, charts
Use metrics wisely As always... Just the numbers are not enough Build kpi’s based on combined metrics Keep the ‘common sense’
What Data analysis architecture Enables visualization of development process data Cube explorer KPI browser Reporting engine
Benefits Fast feedback Metrics over time measure evolution enables optimization Central repository Combine project metadata and operational data leads to very detailed view on development process
Architecture
Glance
Short & Long Term Benefits
Short term Optimize quality per project Long term Install a true software factory Uniform processes, metrics, delivery Overall : SAVE MONEY
Getting Started In Your Own Environment
Source Control Centralized code repository Easy accessible code through check-out / check-in Subversion, CVS, Team Foundation or any other alternative
Tools Testing Framework (Nunit) Mocking Framework (Rhino Mocks) IoC Container (Castle Windsor) Build Server (Team City) Genesis
Continuous Integration
Triggered by changes in the code repository Builds almost every check-in Steps Get latest code Builds a new version Runs tests Runs genesis Packages a new version Generates reports
Project Dashboard: EMS
Project Dashboard: Reports
Contact Item Solutions Plantin en Moretuslei Borgerhout Speaker Kristof Rennen