26
Proposed Development Process for City University London by G. Alan Reitsch [email protected] 04.10.2013

City universitylondon devprocess_g_a_reitsch

Embed Size (px)

DESCRIPTION

Proposed Development Process

Citation preview

Page 1: City universitylondon devprocess_g_a_reitsch

Proposed DevelopmentProcess for City University

London

byG. Alan Reitsch

[email protected]

Page 2: City universitylondon devprocess_g_a_reitsch

Project Guidelines

– Project Success• Days Deviation from Scheduled Delivery Date• Deviation from Budget• User Satisfaction• Value Generation (ROI, Strategic Positioning, Charitable

Contribution, etc…)

– Project Management• Schedule• Scope• Budget• Quality

– Online, Desktop, Embedded

Page 3: City universitylondon devprocess_g_a_reitsch

Business Scenario and Culture ShapeApproach

– Benefits of latest techniques and principles• Competitive offering of skill building for staff attracts

talent.• Implementation of recent forms offers internships and

opportunities for students.• In the field teaching provides learning context.• Implementation and integration of student projects

with University technology.• Cultural Influences

– Encourage Fun, Innovation, Courage– Encourage Discipline, Conduct, and Trust

Page 4: City universitylondon devprocess_g_a_reitsch

Methodologies – Theory and Practice– Keep It Simple– Do What Works– Drive Value– Continuous Improvement

• Waterfall for Microsoft Led to Agile at Catalysis– The Vendor Plume and Pool Reduction Competition– Sprints and Minimal Documentation– Open seating– Continuous Integration– Reuse, Refactore, and SOA

• The Evolution of Methodology at Copart, Inc.– Waterfall led to Agile-blend XP as business analysts moved from

centralized to embedded following years of requirements documentation.– We built the existing site in new technology without specification.– We then refactored to the one year late and incomplete functional

specification.– Release was then scrapped because of user revolt and low adoption; we

simultaneously deployed the old and new websites.– We then conducted UAT, redesigned the site, built functional mock-ups by

pairing engineering to stakeholders and users, and then executed viaSprints.

Page 5: City universitylondon devprocess_g_a_reitsch

Method Option - SDLC Waterfall– Phases

• Requirements• Design• Implementation• Verification• Maintenance

– Benefits• Plan-focused

– Challenges• Each phase requires a documentation deliverable.• Iteration expensive, unresponsive, and dependent.• Developers distanced from clients.

– Client Trust» Expectations

– Intermediaries– Developer Trust

» Lack of Insight• Scheduling Inefficiencies

Page 6: City universitylondon devprocess_g_a_reitsch

Method Option - MSF (MicrosoftSolution Framework)

– Waterfall with Spiral Iteration of Requirements– Phases

• Envision – Milestone: Vision Approved• Plan – Milestone: Project Plan Approved• Develop – Milestone: Scope Complete• Stabilise – Milestone: Release Ready• Deploy

– Benefits• Robust Requirements• Plan-focused

– Challenges• Process-focus• Unresponsive to Rapid Change• Track Record

Page 7: City universitylondon devprocess_g_a_reitsch

Method Option - Agile and Scrum– Principles

• Value Not Process– Individuals and Interactions - Customer Collaboration– Working Product - Response to Change

– Methodology• Scrum

– Sprint cycles of two to six weeks for deliverables: typically four.» Pre Sprint: Plan Features (Product Backlog, Planning Meeting, Sprint

Backlog Locked)» Sprint: Build (Daily Scrums, Impediments)» Post Sprint: Review and Retrospective

– Benefits• Provides predictable value quickly.• Individual and team focus and achievement.• Stand-ups facilitate communication and collaboration.

– Challenges• No Prescribed Engineering Practices.• Scales poorly across enterprise for multiple teams and distributed

developers.• Post-product documentation difficult to prioritise.• Continuous development and maintenance outside methodology.

Page 8: City universitylondon devprocess_g_a_reitsch

Agile Scrum Methodology

http://en.wikipedia.org/wiki/File:Scrum_process.svg

Page 9: City universitylondon devprocess_g_a_reitsch

Method Option - Agile and ExtremeProgramming (XP)

• Paired Coding– Specialist & Second– Touring vs Camping

• Collective Ownership– Anyone can change the

code as needed.• Open Seating -

Colocation Optimized• High Communication

with Client• Customer Prioritises

ToDo Tasks

• No Detailed Design• Short Delivery Cycles

– Coding– Testing (Unit, Functional)

– Listening (Customer)

– Designing (Governance)

• Change Within Iterations

Page 10: City universitylondon devprocess_g_a_reitsch
Page 11: City universitylondon devprocess_g_a_reitsch

Proposed Option - Agile ExtremeProgramming (XP) Development Process

– An Agile XP approach that incorporates:• Agile Principles and Scrum Methodologies (Value-driven

Sprints, Prioritised Backlogs, Daily Stand-ups)• XP Tools and Techniques (TDD, Governance, Continuous

Integration, Engaged Customer and Embedded Liason)• The Communication Intention of Waterfall and MSF via

Indexed Communication Channels

Page 12: City universitylondon devprocess_g_a_reitsch

– Unit Tests First• Effective on Model & Business Objects• Controllers/ Drivers Secondary• Exempted View• Functional Code Eligible to Check-in to Shared Code

Branch• Check-ins with Non-functional Code

– Local– User Branch

Proposed Agile XP - Light Test DrivenDesign

Page 13: City universitylondon devprocess_g_a_reitsch

Proposed Agile XP - Governance

– Coding Standards• Building for Reuse• Style Guides (Marketing and Brand)• Security Testing

– Penetration Tests– Source Code Analysis

• Performance Testing– Thread Testing– Load Testing

– Libraries and Services• Reuse Efficiencies• Centralised Logic• Remoting Affects Performance

Page 14: City universitylondon devprocess_g_a_reitsch

Proposed Agile XP - Code Branches

– Schedule Based per Product• Emergency – ASAP• Firefight – SLA (Same Day)• Sprint – 5d / 10d / 20d / 30d• Frameworks, Libraries, Service Oriented (Remoting and

Performance)• Quarterly, Annual• Enterprise Refactoring and New Products

Page 15: City universitylondon devprocess_g_a_reitsch

Proposed Agile XP - ContinuousIntegration Tools

– Code Repositories• Check-in Unit Testing• Automated Code Muster at Development (Build) Server

– Automated Test Suites– Embedded Test Engineer

– Scheduled and Manual Deployments• QA Test Server

– Scheduled Release to Testing Environment (Server)– Automated Test Suites– Manual Tests (Check Lists)

• Production– Out-of-Rotation Deployment

» Rollback Option» Manual Tests Only (Check Lists)

– Rolling Deployment

Page 16: City universitylondon devprocess_g_a_reitsch

Proposed Agile XP - Communication– Daily Stand-ups and Breakouts– Collaboration Tools

• Indexed for Search– Communication Channels

» Chat» Email» Forums

– Auto-generated» Inline (JavaDoc)

– Libraries (Wiki)– Defect Tracking

– Visuals and Diagrams Uploaded to Wiki• UML

– Sequence– Class

• Flow for Business Logic• Ecosystem (Systems, Networks, Services, Providers)

– Annotated Mock-ups Uploaded to Wiki

Page 17: City universitylondon devprocess_g_a_reitsch

Proposed Agile XP - GatheringRequirements

– Stakeholders• Identification• Stakeholder Inclusion

– User Tests• Alpha• Beta• User Acceptance Test Labs• Community Engagement

– Feature Voting– Blogs and Forums– Social Networks

– Web Traffic Analysis• Multi-variant Tests• Path Analysis• Page Statistics

Page 18: City universitylondon devprocess_g_a_reitsch

Proposed Agile XP - BusinessRequirements

– Minimise Formal Documentation• Optional

– Wireframe– Prose– Use Cases– Prototypes

• Necessary– Business Logic– Functional Specifications– Mock-ups

• Embedded Business Analysts and Embedded Clients– Not all stakeholders want to sit with Engineers.

Page 19: City universitylondon devprocess_g_a_reitsch

Proposed Agile XP - TechnicalRequirements– Backlog

• Bug Lists• Library and Service Promotions

– Graphical Representation• White boards• UML

– Sequence– Class

• Flow• Ecosystem

– Prototype

Page 20: City universitylondon devprocess_g_a_reitsch

Proposed Agile XP - Prioritisation Matrix

• What Are Criteria?– Who’s Asking– Level of Difficulty?– Specialised Skills– Number of Systems– Amount of Effort– Income Generator– Cost to Implement– Strategic Value– User Impact– User Value– Security Risk Level– Business Risk Level– More?

• Order Criteria byImportance (Index)

• Weight Criteria• Priority = Index * Weight

• Fine Tune Matrix OverTime– Adjust Importance or

Weight of Criteria

• Fit Prioritised List IntoSprint– Big Rocks and Small

Pebbles

Page 21: City universitylondon devprocess_g_a_reitsch

Proposed Agile XP - Reporting &Continuous Improvement

– Burn-downs• Features• Functionality

– Traffic Analysis– Social Activity– Customer Support– Project Success Key Performance Indicators

• Schedule Adherence• Scope Adherence• Cost Adherence

– Dashboards– Surveys

• Quality• Customer Value and Loyalty• ROI and Strategic Value

Page 22: City universitylondon devprocess_g_a_reitsch

Proposed Agile XP Development ProcessSummary

– An Agile XP approach that incorporates Agile principles andScrum methodologies, XP tools and techniques, and thecommunication intentions of SDLC Waterfall and MicrosoftSolution Framework via indexed communication channels.

Page 23: City universitylondon devprocess_g_a_reitsch

Benefits

– Adherence to User Requests and Wishes– Developer Ownership– Value over Process– Measurable Prioritisation– Nimble Releases (Emergency, Firedrill, Sprint, Enterprise)– Predictable Releases (QA and Production by Schedule)– Highly Stable Rolling Deployments– Predictable and Efficient Code Practices (Standards,

Security, Performance)– Rapid Builds Satisfy Short and Long-term Objectives– Measurable Performance Reporting

Page 24: City universitylondon devprocess_g_a_reitsch

Challenges

– Off-book approach requires “handbook” and training.– Proof of Concept for methodology helpful for momentum

and adoption.

Page 25: City universitylondon devprocess_g_a_reitsch

Online Resources and Reference

– http://xprogramming.com/index.php– http://en.wikipedia.org/wiki/Software_development_process– http://en.wikipedia.org/wiki/Extreme_Programming– http://en.wikipedia.org/wiki/Scrum_(development)– http://www.slideshare.net/dimka5/introducing-agile-scrum-xp-

and-kanban– http://cevsdc.blogspot.co.uk/

Page 26: City universitylondon devprocess_g_a_reitsch

Thank You