Auditing in an Agile Environment

29
Auditing in an Agile Environment Andres Camacho August 2012

description

Auditing in an Agile Environment. Andres Camacho August 2012. Agenda. Intro to Agile Software Development Highlight practices Things to look for in an audit Questions. Manilla. S ecure, one-stop “Digital Life Management Dashboard” that gives consumers simple, instant, direct - PowerPoint PPT Presentation

Transcript of Auditing in an Agile Environment

Page 1: Auditing in an Agile Environment

Auditing in an Agile Environment

Andres CamachoAugust 2012

Page 2: Auditing in an Agile Environment

Agenda

• Intro to Agile Software Development

• Highlight practices

• Things to look for in an audit

• Questions

Page 3: Auditing in an Agile Environment

Manilla

Secure, one-stop “Digital Life Management Dashboard” that gives consumers simple, instant, direct

access to all of their expenses and online accounts

Page 4: Auditing in an Agile Environment

Waterfall

What happens when things change?

Page 5: Auditing in an Agile Environment

Agile Software Development

• Iterative

• Working software over comprehensive documentation

• Collaboration over contract negotiation

• Responding to change

• Early visibility

How does Agile reconcile with IT audits and secure software development?

Page 6: Auditing in an Agile Environment

Agile Software Development• User stories

• Velocity

• Whole team

• Test driven development

• Estimation session

• Sustainable pace

• Backlog

• Daily standups

• Early visibility

• Automated tests

• Simple designs

• Fast iterations

• Planning game

• Continuous integration

• Refactoring

• Pair programming

• Collaboration over contract negotiation

• User stories

• Whole team

• Backlog

• Early visibility

• Automated tests

• Fast iterations

• Continuous integration

• Pair programming

• User stories

• Whole team

• Backlog

• Early visibility

• Automated tests

• Fast iterations

• Continuous integration

• Pair programming

Page 7: Auditing in an Agile Environment

User Story

• Unit of work

• Small, stands on its own two feet

• Estimable

• Placeholder for a conversation

As a … I can … so that …

Page 8: Auditing in an Agile Environment

User Story

Page 9: Auditing in an Agile Environment

Story Workflow

Page 10: Auditing in an Agile Environment

Backlog

• User stories that are ready to be implemented

• Developers work next story in queue

• No P’s

• We use Pivotal Tracker

Page 11: Auditing in an Agile Environment

Pivotal Tracker

Page 12: Auditing in an Agile Environment

Git

• Standard source code control software for Ruby community

• Github, social coding

• Rigorous commit workflow

Is GitHub secure?

Page 13: Auditing in an Agile Environment

Commit Workflow

feature branch

• All work done using feature branches

• Format:

feature-3274744-Add_custom_reminders

Page 14: Auditing in an Agile Environment

Iteration

• Stories and bugs that are released to production

• Stories labeled (tagged) by release date

Page 15: Auditing in an Agile Environment

W TH F MT W TH F

Staging branch merged

End of Iteration

relea

se br

anch

bug fixes

tag a

nd re

lease

to

prod

uctio

n

Release

feature branch

bug fixes

Master

Staging

Production

Page 16: Auditing in an Agile Environment

Whole Team

• Hire generalists

• Everyone gets to work on everything

• Automatic cross training

• Small teams

• Product/QA are part of the team

Page 17: Auditing in an Agile Environment

Pair Programming

• 2 developers 1 story

• Built in code review

• Built in cross training

• Collaboration

Page 18: Auditing in an Agile Environment

Collaboration

Page 19: Auditing in an Agile Environment

Pull Request

• Request by a contributor to pull code changes into a codebase

• Used extensively by open source projects

• Adopted as a code review tool

Page 20: Auditing in an Agile Environment

Pull Request

Page 21: Auditing in an Agile Environment

Automated Tests

• “pay me now or pay me more later”

• Critical, especially with dynamic languages (Ruby, Python)

• Unit tests, acceptance tests

• Test Driven Development

• At Manilla 3 lines of test code for every 1 line of code

Page 22: Auditing in an Agile Environment

Continuous Integration

• Check in early and often

• Automated builds and deployments

• Keep the build fast

• Everyone can see the results

Page 23: Auditing in an Agile Environment

Continuous Integration

Page 24: Auditing in an Agile Environment

Early Visibility

Page 25: Auditing in an Agile Environment

Documentation

Where is the documentation?

Page 26: Auditing in an Agile Environment

Documentation

Page 27: Auditing in an Agile Environment

Documentation

Page 28: Auditing in an Agile Environment

Resources

• Manilla – http://www.manilla.com

• Pivotal Tracker – http://www.pivotaltracker.com

• Github – http://www.github.com

• Relish - https://www.relishapp.com/

Page 29: Auditing in an Agile Environment

My Background

• Degree in Finance, many courses in Accounting

• Auditor for Price Waterhouse in San Jose, CA

• Computer Science courses at San Francisco State

• Positions at Price Waterhouse, NextCard, QRS, Yaga, Vinfolio, and Manilla