Stuart R. Ainsworth
Manager of newly-formed Database Administration group for a financial security company. Former Data Architect; 6 years working primarily in a development department Prior experience as DBA and a reporting/database developer AtlantaMDF Chapter Leader
Experience as a database developer Scrum in the workplace Scrum BOF meetings at TechED Review of literature Promotion to Manager Stack of work Needed to find a way to manage the workload
Cover Agile development principles Extend Agile philosophy to DBA work Suggest methods of managing DBA work.
Agile Principles
In February 2001, 17 software developers met at the Snowbird, Utah resort, to discuss lightweight development methods. They published the Manifesto for Agile Software Development to define the approach now known as agile software development.
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
Business people and developers must work together daily throughout the project. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. The best architectures, requirements, and designs emerge from self-organizing teams.
Do what you HAVE to do, then do what you WANT to do. Get these out of order, and you’ll probably wind up in jail Agile methods are like algebra… Work according to the principles first. Choose the method by which you want to work.
Agile Principles ScrumXP Agile Unified Process Feature Driven Dev
Agile Methods
Product Backlog Release Backlog Scrum Backlog Burndown chart Daily Standup (Scrum) Sprint Retrospective yer_embedded&v=XU0llRltyFM yer_embedded&v=XU0llRltyFM
What’s the most popular form of agile development in use today? ScrumBut
Database Administration
We’re still talking about development at this point; what happened to Database Administration? We’re going to be agile in our approach to agile. ▪ Borrow what we can, discard the rest. ▪ Focus on communication, shared ownership What are the key differences between them? ▪ Development is product-focused ▪ Administration is service-focused
Presentation at Tech-ED 2011 table table Joel Semeniuk and Steve Forte OK to mix-and-match, but adhere to principles
Scrum is cyclical Tasks over period of time Most work estimated before sprint starts ▪ Always some percentage of new work ▪ Estimates may not be valid IT Mgmt (including DBA) is more reactive Tasks come as needed Difficult to estimate small projects
AGILE PRINCIPLES Business people and developers must work together daily throughout the project. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. The best architectures, requirements, and designs emerge from self-organizing teams. IT MANAGEMENT PROCESS Team interaction Business interaction Simple, flexible processes Measure “cost-of-change” Team must “buy in” to process Team members should play to their strengths.
Daily Standups Consistent touchpoints Don’t ignore spontaneous conversations Task Assignment Work items have phases Team members have assignments
Managing the Work
Agile Principles ScrumXP Agile Unified Process Feature Driven Dev
Agile Principles ScrumXP Agile Unified Process Feature Driven Dev Lean IT Kanban
Literally means “sign board” in Japanese Modeled after manufacturing methodology Developed by Toyota Based on lean models (simple and effective) Not specifically “agile” Consistent with agile principles Can be used in conjunction with other methods
Start with what you do now Agree to pursue incremental, evolutionary change Respect the current process, roles, responsibilities & titles
Visualize the workflow Limit WIP Manage flow Make Process Policies Explicit Improve Collaboratively
Story Card (Work) Phases Swimlanes WIP Reporting
Low-cost (free) project boards We chose LeanKit More users at free level Better reporting Swimlanes
DEMO
In the beginning…. Story Card (Work) – Each story represents 4 hours of work Excludes daily repetitious tasks ▪ Monitoring ▪ Maintenance Daily Standups to review cards Product Owners invited
Phases – Actual steps of workflow Doing – Things we’re actually working on. To Do – Things we’ll do next. Done – Tasks that are complete. Backlog – Half-baked ideas/stories Archive – Stuff that’s really done Doing (Waiting) – Things we need to pause on Handoff to Dev – Things we can’t fix; off to devs.
Swimlanes – we don’t use them (yet) WIP – To Do: 4 per team member Doing (Active) 2 stories per member, -1 per team Doing (Waiting) 1 per member ▪ Standups allow shift of priority
Reporting Cycle Time – how long it takes for a story to move from “To Do” to “Done” Cumulative Flow – flow of work from phase to phase and growth over time
Things change… Not enough depth in reporting No vision into WHERE efforts were being spent Great for tracking bugs, but not for insight into “heading off fires”
Maintenance Traditional DBA work Monitoring; performance tuning Architecture Conceptual & Logical Business needs to data infrastructure Research & Development Best Practices Proofs of concept Support Why won’t this….? Configuration changes
Cards are now typed by categories Card base unit is 1 hour Card size increments in hours WIP in lanes based on card, not size Backlog is no longer used Added new reports Card distribution (percentage) Reports now demonstrate overages
SCRUM Cyclical Time-Boxed Change is expected Fundamental shift in processes KANBAN OOpen-ended WWork-boxed CChange is irrelevant CCan be used in conjunction with existing processes
scrum-minibook with-tfs-2010