auditing in an agile environment

29
Auditing in an Agile Environment Andres Camacho August 2012

Upload: nat

Post on 24-Feb-2016

45 views

Category:

Documents


0 download

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

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