Upload
stephen-forte
View
2.404
Download
0
Tags:
Embed Size (px)
DESCRIPTION
My keynote speech at the PDS in Romania on 09 Dec, 2010.
Citation preview
Welcome!
Agile Software Development for 3 Screens and the Cloud
Stephen Forte
Speaker.Bio.ToString();• Chief Strategy Officer of Telerik• Certified Scrum Master• Active in the Community:
– International Conference Speaker for 13+ Years– RD, MVP and INETA Speaker – Co-moderator & founder of NYC .NET
Developers Group http://www.nycdotnetdev.com– Wrote a few books: SQL Server 2008 Developers Guide
• MBA from the City University of New York• Past:
– CTO and co-Founder of Corzen, Inc. (TXV: WAN)– CTO of Zagat Survey
• Blog: www.stephenforte.net• Email: [email protected]
Building Software Today is a Challenge
• Developing quality software has gotten more complex:– Many different platforms• Three screens and the cloud
– Remote teams/outsourcing– Rapidly changing marketplace– More and more interoperability is required– More transparency is required
Agile Benefits
• Same methodology can be used across multiple products and platforms– Reducing risk and increasing quality
• Agile will increase communication– Great for remote teams/outsourcing!
• Agile will help teams react to the rapidly changing market
• Agile will deliver business value sooner
What is Agile?
The Agile Manifesto–a statement of values
Process and toolsProcess and toolsIndividuals and interactions
Individuals and interactions
over
Following a planFollowing a planResponding to change
Responding to change
over
Source: www.agilemanifesto.org
Comprehensive documentationComprehensive documentationWorking softwareWorking software over
Contract negotiationContract
negotiationCustomer
collaborationCustomer
collaborationover
Iteration 1
Iteration 2
Iteration 3
Iteration 4
Iteration 5
Traditional Building of an Application
Database
Data Access Layer
Business Logic Layer
User Interface Layer
(whatever)
BV = 0%
BV = 0%
BV = 0%
BV = 0%
BV = 100%
0% VALUE
* Created by Stephen Bohlen http://blog.unhandled-exceptions.com Used with permission
Iteration 2
Iteration 3
Iteration 4
Iteration 5
Iteration 1
Database
Data Access Layer
Business Logic Layer
UI
(whatever)
BV = 20%
Database
Data Access Layer
Business Logic Layer
UI
(whatever)
BV = 40%
Database
Data Access Layer
Business Logic Layer
UI
(whatever)
BV = 60%
Database
Data Access Layer
Business Logic Layer
UI
(whatever)
BV = 80%
Database
Data Access Layer
Business Logic Layer
UI
(whatever)
BV = 100%
60% VALUE
Agile Building of an Application
What is Scrum?
We’re losing the relay race
Hirotaka Takeuchi and Ikujiro Nonaka, “The New Product Development Game”, Harvard Business Review, January 1986.
“The… ‘relay race’ approach to product development…may conflict with the goals of maximum speed and flexibility. Instead a holistic or ‘rugby’ approach—where a team tries to go the distance as a unit, passing the ball back and forth—may better serve today’s competitive requirements
What is Scrum?
• Scrum is an agile process that allows us to focus on delivering the highest business value in the shortest time.
• Stresses communication• It allows us to rapidly and repeatedly inspect actual
working software (every two weeks to one month).• The business sets the priorities. • Teams self-organize to determine the best way to
deliver the highest priority features.
Scrum
Story from the Real World
• Situation:– Telerik (an ISV) has many different products and
teams• Cloud, database, developer UI, TFS tools, CMS
• How to Manage the teams?– How to rotate teams members
Agile Estimation
Agile Estimation
• Wikipedia: Estimation is the calculated approximation of a result which is usable even if input data may be incomplete or uncertain.– Problem is that estimates become a unbreakable
schedule, where any deviation is considered bad
• Agile Estimation throws this logic away and always re-estimates a project after each iteration– Different value system, deviations are not deviations,
they are more accurate estimations– Uses the cone of uncertainty to your advantage
The Cone of Uncertainty
Story from the Real World
• Situation:– Telerik has three releases a year• March, July, and November
– How to Estimate?!??!
Agile and Remote Teams
Remote Team Characteristics • A team where one or more members are not in the
same office• Usually in another time zone• Sometimes in another country– Language barriers
• Sometimes a 3rd party– Contractor– Outsourcing
Key Challenges for Agile
• Due to lack of proximity, time zones, and language barriers you lose the high bandwidth communication
• Hard to do sprint planning• Hard to do a “Stand-Up” daily meeting
remotely
Implementing Agile I• Extra reliance on tools– Web/Cloud based tools for collaboration and
planning• TeamPulse
– Communication tools are a must• Skype• IM• Google Docs• Sharepoint
– Reliance on CI and TFS• Automated test, build, and reporting tools a must
Implementing Agile -Time Zones
• The Daily Scrum is flexible!– If the team is ahead of you in Time Zone– Hold the meeting at the end of their day
• What did I do today?• What will I do tomorrow?• What do I need from you today?
– If the team is behind of you in Time Zone– Hold the meeting at the start of their day
• What did I do yesterday?• What will I do today?• What do I need from you today?
Best Practices
• Make the communication a measurable deliverable– Write it into the contract
• If the remote team is large enough (off-shore environment) place a FTE from your office on site– Developer rotation
Supporting Tools
• Skype, Skype, Skype• Online collaboration and planning tolls– Mingle, TeamPulse, Rally
• www.planningpoker.com • TFS, Gated check-in, SharePoint, Build Reports• Telerik TFS Team Dashboard (Free!)• Web based documentation tools– Google Docs– Wikis
Story from the Real World
• Situation:– Remote developers in Egypt• Work week is Sunday to Thursday
– Steve missed the scrum on Easter Sunday• Steve was at Disneyworld with his Nice and Nephew
Agile Tools for Teams
Why use tools?• Tools help make a developer or team more
efficient in a specific task• Some tools are like “crack cocaine” for developers• Tools are not a “silver bullet” or solution for a lack
of process or bad process– If you have a poor process, the tools will make it worse
Popular Tools for Project Mgnt• TFS/Team Explorer– Don’t put your work items into TFS too soon– Scrum templates for TFS• Many but Conchango is most popular
– http://scrumforteamsystem.com/en/default.aspx
– Telerik Work Item Manager and Dashboard (TFS)• http://www.telerik.com/products/tfsmanager-and-
tfsdashboard.aspx
• Agile Project management tools– ThoughtWorks Mingle
http://studios.thoughtworks.com/mingle-agile-project-management
Questions?