Agile software development in a risk averse and regulated environmeny
Post on 17-Aug-2015
68 Views
Preview:
Transcript
Agile software development in a risk averse environment
How agile helped us reduce risk and improve quality
May 2015
© 2015 Aspect Capital
First, some context
Who am I?
Barney Dalton, CTO at Aspect Capital
Who are Aspect?
We are a Systematic Hedge Fund primarily trading Futures and FX
Founded in 1997
Trading is highly automated
- 75% executed box to box
- 10K account trades per day
Rely heavily on proprietary software
- 1M lines of code
May 2015
© 2015 Aspect Capital
The problem
Back in 2012
Reduced risk appetite driven by two factors
High impact software errors across the industry
Infinium fined $350,000 and $500,000 for trading errors in 2009 and 2011
AXA Rosenberg fined $242 million
Knight Capital - $400 million
Increased levels of concern from regulators
- ESMA, MiFID
Evolution of Aspect as a business
Increased levels of automation
We therefore wanted to reduce software risk
May 2015
© 2015 Aspect Capital
What we had
Project based approach with milestones
Lightweight development process
Extensive sign off and business scheduling of releases
Manual testing performed by end users and technology team
Versioning and branching to support different release cycles
We considered ourselves closer to agile than waterfall
Was this a risky process?
May 2015
© 2015 Aspect Capital
How to reduce risk?
Along came four wise men….
David, David, Steve and Ivan
May 2015
© 2015 Aspect Capital
David - Software Development Lifecycle
David Gold (PA consulting)
We were relying on the release process as the main control point
Quality by inspection, drive quality left
Don’t introduce the defect in the first place
Risk assessment throughout the development lifecycle
May 2015
DeployTestBuildDesignRequirements
Formality / control required
© 2015 Aspect Capital
(2nd) David - Iterative Delivery
David Evans (Neuri)
Our project approach was making releases large and risky
Break everything down into stories
Identify the value, definition of done and acceptance criteria for each story
Testing derived from acceptance criteria
Trained both customers and developers in the art of story writing / conversation
Deliver stories directly into production via small releases which carry lower risk
May 2015
© 2015 Aspect Capital
Steve - Continuous Process Improvement
Steve Freeman
Releases required extensive manual testing and developers worked to a static and imposed process
Need excellent automated tests to support more frequent releases
Testing as an art form (craft)
Testing is a core development activity (TDD/BDD)
The team own the process
Improve the process incrementally through retrospectives
May 2015
© 2015 Aspect Capital
Ivan - Continuous Integration
Ivan Moore
Our build process required manual oversight and complex version management
Branches and versions postpone integration
Context is often lost and risk is increased when integration is delayed
Automate everything including your CI setup
Invest in automated tests and tooling
May 2015
© 2015 Aspect Capital
What we have now (2+ years later)
All new features broken down into stories
Risk assessment, pairing, design review and TDD/BDD during development
Majority of testing is automated and any failures are visible within an hour of commit
Code is continually integrated – minimal versions/branches
Multiple (boring) releases per day
Safety valves for runtime behaviour
May 2015
© 2015 Aspect Capital
Recent example of the new approach
Previous Advent Geneva Upgrades
Complex Gantt chart required to manage project
Required teams in over multiple weekends for upgrade
High risk, Big project
This upgrade
Ran the upgrade in parallel every day for two months
Daily results were verified by automated tests
System integrations were iteratively improved over this period
Final cutover on a business day and looked like all the other days (non event)
Agile SDLC used for all projects including
EMIR reporting, Fund Launches, DMA Algo changes
May 2015
© 2015 Aspect Capital
Summary
To reduce risk and increase quality using agile
Focus on quality/risk throughout the process
Deliver incrementally
Empower your team to own and improve the process
Fail fast, discover problems early with continuous integration
Agile is equally as adept at reducing risk as it is at improving productivity
May 2015
top related