Building an SDLCExcellence in software delivery.Michael WerneburgApril 17, 2013
The challengeTo deliver software with newfunctionality, yet not impact thestability of the existing system. It’s the problem of “changing the wheels on a moving bus”.
The challengeNew functionality must be deliveredwithout error. New releases cannot impact the stability or functionality of the existing system in whole.
The challengeEnhancements may can be part ofthe core product, or customdeveloped for a single client. Changes frequently must be migrated to other client builds, where they can differ significantly.
DevelopersDevelopment issues:• Business analysts obtain a proper spec• Developers code to the spec (only)• Automated unit testing
TestingTesting issues: • Software quality assurance function is separate from development • Test environments separate from production and development • Testers test to the specification, not the code
Version controlVersion control issues: • Multiple developers working at once • A complex architecture with many dependencies • Custom and core developments occurring simultaneously • Scheduled & emergency releases
DeploymentPackage release issues:• Developers don’t release code to test or production• Package release team doesn’t know the code, data, or dependencies• Release instructions must be accurate for rollout and rollback
AuditRelease management requirements:• All releases audited for compliance with stated procedures• Quality of release notes• Presence of code review• Approval by change control committee and client prior to release
About PortfolioAid• Founded in downtown Toronto in 2001.• Experts in retail brokerage compliance.• Experiencing rapid growth as the compliance market matures.
SDLC environments • Used by developers • No client data Development • Version: production + 3 • Used by SQA team • No client data SIT • Version: production + 2 • Used by clients • Limited production data UAT • Version: production + 1 • Used by clients (live) Production • Full production data
VirtualizationPortfolioAid utilizes virtualdevelopment environments for : • Flexibility in deploying new systems • Simplifying reconfiguration & upgrades • Scrubbing environments if they are damaged by a release – effects rollback in minutes
Managing the SDLCSQA Manager is gatekeeper to theSIT environment. Must have: • A proper spec from the BA’s • A complete ticket with attached release note • Release instructions that work in ‘git’.
Managing the SDLCProduction Manager oversees allreleases to all clients: • Runs the change control meeting • Reports on metrics • Investigates failed releases; tracks remedial actions
Managing the SDLCPackage release team delivers allnew software, schema changes,and configuration changes. They: • Must have good release instructions • Use ‘git’ to roll out and roll back • Must have authorization from the Production Manager
Fit for serviceSuccess in software delivery • Delivering value-added functionality in a reliable fashion (1 error in 557 releases). • Dependable processes free the time of PortfolioAid SME’s. • Packages migrating between clients with ease; package releases tied to ticketing system for approvals & audit.
My roleIn buildng this strategy, I:• Gathered and analyzed the governance/audit requirements• Led the discussion and design of the SDLC (I am a PMP).• Mapping the governance framework to business strategy.• The writing (and substance) of process manuals.• Managing the auditors. I have worked with American, Japanese, and Canadian auditors. (Certified Internal Auditor designation in progress).• Nearly twenty years in IT. I have worked with technology providers on three continents.
Questions Michael Werneburg 416-848-4136 firstname.lastname@example.org