400 likes | 614 Views
Agile for Real World Developers. Greg Huber greg.huber@gmail.com Blog- http://msmvps.com/greghuber Twitter- greghuber. about. Software Developer Background User Group Leader Engagement Manager at First Solar . outline. Challenges in Software Dev Today What is Agile and Why bother?
E N D
Agile for RealWorld Developers Greg Huber greg.huber@gmail.com Blog- http://msmvps.com/greghuber Twitter- greghuber
about • Software Developer Background • User Group Leader • Engagement Manager at First Solar
outline • Challenges in Software Dev Today • What is Agile and Why bother? • Agile in the Real World (Case Study) • Tips, Tricks & Tools
challenges • It’s difficult getting a project done. • There is too much overhead. I only write code 10% of the time. • There are too many changes. • When we’re done, no one uses the app or complains a lot about it.
triangle Cost Scope Quality Time
traditional dev • From Wikipedia - SDLC
fail • Standish report (2006) (1) • 19% outright failures (scrapped) • 46% “challenged” (2 for 3) • 35% are successful • Attribute “improvement” partially to agile dev – (was 16% in 1994) • Many organizations are still using a waterfall methodology.
conundrum • Change happens. • Changes impact time, cost, scope. • Users want change. • Traditional methodologies don’t tend to be change friendly.
agile • Iterative and Incremental • Collaborative • Focus on Value Added Activities • Timely Delivery • Meet Changing Needs
dev methodologies Cowboy Coding Extreme Programming Feature Driven Development Scrum Rup Waterfall Unstructured Highly Structured
case study • Inherit a web-based survey system built by consultants • “Productionize” the system • Support a team of business scripters (revenue generation)
Step 1 • Attempt to use traditional methodology.
Why it didn’t work • There was no methodology in place. • The business was bleeding revenue • A traditional approach was viewed as overkill • The Nike approach was needed
Step 2 • Attempt to use agile methodology.
what we implemented • Bi-Weekly Iterative Process • Request Backlog / Pipeline • Enhancement Review & Planning • Concise Role Definition • Self-Organizing Teams • Collaboration of IT and Business
how we implemented • Baby Steps • Science Experiment Approach • Got top down approval • Collaborated with team on process • Mapped components of SDLC to a streamlined process • Continuously improved
outcome • We consistently delivered functionality using an agile development model • 3+ years of system development • Gained major credibility in business • Improved relationships • Became a model for future dev in organization
agile rules • Collaboration Required by all • Do not start something new until the next iteration but embrace change • Iteration duration may vary • Don’t be rigid
useful artifacts • The High Level Proposal • Describe Business Problem • Summary of Recommendation • High Level Functionality / Features • Architecture Overview • Level of Effort in Sprints • Risks • This drives your subsequent sprints
useful artifacts • The Status Update • List of Priorities • Any Issues / Roadblocks • Overall Status of Project / Product • Current Item Backlog
user stories • What a user story is not • A Use Case / UML • Super Duper detail like lengths of text boxes • What it is • Enough detail for a developer to make an estimate • Elaboration will draw out further detail
technical doc • Architecture Overview • System Design • Code / Project Design • Code Standards (or pointers to them) • Do Just enough…
daily standup • Always Review • What I did • What I’m going to do • What is holding me up
communication • Face to Face ideal • Instant Messaging useful • Web Conference Technology • Utilize sub-teams w/ lead for different time zone situations
battle scar • Getting buy-in from IT managers • Identifying the right stakeholders • Too much detail • Thoroughly testing / Sign off
battle scar • Putting the process first • Not always following the process
battle scar • Lack of discipline • Not backlogging items • Multi-tasking
tips, tricks and tools • Ramping up on agile • Backlog tracking systems • Communication
ramping up on agile • Start small – adopt agile principles in your day-to-day • When you’re ready to take it on: • Get buy in top down • Get buy in bottom up • Don’t do it all at once • DO it
backlog tracking • Tools for maintain your backlog and helping facilitate the process • TFS Work Item Tracking • Confluence & JIRA • Custom • Don’t let your backlog get too big
custom • Excel / word documents • Sharepoint Workflow • Whatever works!
summary • Agile means: • Iteration • Collaboration • Focus on Value Add • Learn from my battle scars • Best of luck implementing agile
recommended reading • Scott Ambler – Agile Modeling • Ken Schwaber - Agile Project Management w/ Scrum
citations • SD Times / Standish Report(1) • Scott Ambler Agile Software Dev (2) • Agile Manifesto (3)
shameless plug • First Solar (Leader in thin film Solar Tech) Hiring in Perrysburg, OH • QA Systems Lead, Analyst • Systems Analysts • IT Auditor • MES Developers & Leads • Enterprise Application Developers • Application Architects • http://www.firstsolar.com/careers