14
Agile software development in a risk averse environment How agile helped us reduce risk and improve quality May 2015

Agile software development in a risk averse and regulated environmeny

Embed Size (px)

Citation preview

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

Evidence

May 2015

© 2015 Aspect Capital

© 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

© 2015 Aspect Capital

Questions?

May 2015