Synchronized Development for Distributed Teams
-
Upload
togakangaroo -
Category
Technology
-
view
572 -
download
6
description
Transcript of Synchronized Development for Distributed Teams
![Page 1: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/1.jpg)
CODE TrainingAn EPS Companycodemag.com/training
SYNCHRONIZED DEVELOPMENT FOR DISTRIBUTED TEAMS
George Mauer / Claudio Lassala
![Page 2: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/2.jpg)
About the Presenters
Claudio LassalaClaudioLassala.wordpress.comtwitter.com/ClaudioLassala
• C# MVP• Virtual Brown Bag host• International Speaker and
Writer• Software Developer at
EPS Software Corp
George MauerGeorgeMauer.net/blogtwitter.com/togakangaroo
• .NET New Orleans UG Leader• Speaker• Software Developer at
EPS Software Corp
![Page 3: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/3.jpg)
VirtualBrownBag.com• C#• Patterns• WPF• StructureMap• IronRuby• Silverlight• TDD• VS Tips and Tricks• CodeRush• Resharper• Extension Methods• Lambdas
• Learning Tests• Cool iPhone apps• Irony (parser)• Tips for newbies• Ndepend• xUnit• VS 2010 Tips and
Tricks• C# 4 Dynamic
Features• Action/Func• Android
• DSL• Technical Debt• Reactive Extensions• Clean Code• AutoMapper• Evernote• Markup Extensions• Refactoring• Silverlight• And more…
![Page 4: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/4.jpg)
About CODE & EPS Software Corp.
• Custom Software, Training, and Consulting– .NET, SQL Server, SharePoint,…– Specialists in converting to .NET– Object and Service Oriented Development– Database Development– User Interface/ Web• ASP.NET, WinForms, WPF, Silverlight, iPhone
![Page 5: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/5.jpg)
Agenda
• Distributed Pitfalls• Techniques – Branching
• Tools• Q&A
![Page 6: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/6.jpg)
DISTRIBUTED TEAMS
![Page 7: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/7.jpg)
Concerns
• Staying Informed• Personality Issues• Toe Stepping• Getting Feedback• Integrating Work• Dispersing Knowledge
![Page 8: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/8.jpg)
Staying Informed
• TODO’s and Tasks on a Whiteboard• Teleconferencing, Screen-Sharing, Online
Team Room • Daily Scrums• Pairing / Code Review
![Page 9: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/9.jpg)
Personality Issues
• Consciously limiting ego• Team room for private bitching (things
employers might not like being public)• Team buy in• Occasional get-together’s
![Page 10: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/10.jpg)
Toe Stepping
• Design by Contract• Pairing• Branch by Feature• Daily Scrum• Design discussions / ad-hoc design sessions• Availability
![Page 11: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/11.jpg)
Getting Feedback
• Pairing• Design discussion / code reviews• Automated Testing (unit/integration)• Demos
![Page 12: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/12.jpg)
Integrating Work
• Branching• Pairing / ad-hoc design• Automated Tests• Pairing during integration• Frequent build meetings
![Page 13: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/13.jpg)
Dispersing Knowledge
• Pairing• Avoiding over-specialization• Standardized on patterns to be used• Code walk-throughs• Wiki documentation
![Page 14: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/14.jpg)
TECHNIQUES
![Page 15: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/15.jpg)
Techniques
• Branch per Feature• BDD / TDD• Design by Contract• Kanban Board• Dependency Injection and good IoC Container• Scrum (Retrospective, Iterations, Planning, daily standup,
estimating, user stories)• Pair programming• Event Aggregation• MVVM• Composition
![Page 16: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/16.jpg)
![Page 17: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/17.jpg)
Kanban Board
![Page 18: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/18.jpg)
DI, IOC, MVVM, Composition…
![Page 19: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/19.jpg)
TimeTracker
Adding new features• Validation• Alerts• Advanced
Search
![Page 20: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/20.jpg)
User Stories
As a userI want to verify that the date for a new work item doesn't overlap with the date from any previous work itemsSo that I do not accidentally enter mis-enter the date
As a managerI want to use complex filters So that I can see how much my employees are working on particular projects or time periods
As a userI want to see alerts based on hours workedSo that I don't overbill the client
![Page 21: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/21.jpg)
Branch per Feature
![Page 22: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/22.jpg)
Branch per Feature
![Page 23: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/23.jpg)
Branch per Feature
![Page 24: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/24.jpg)
Branch per Feature
![Page 25: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/25.jpg)
Branch per Feature
![Page 26: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/26.jpg)
Branch per Feature
![Page 27: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/27.jpg)
Branch per Feature
![Page 28: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/28.jpg)
Branch per Feature
![Page 29: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/29.jpg)
Branch per Feature
![Page 30: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/30.jpg)
Branch per Feature
![Page 31: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/31.jpg)
Branch per Feature
![Page 32: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/32.jpg)
Branch per Feature
![Page 33: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/33.jpg)
Branch per Feature
![Page 34: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/34.jpg)
Branch per Feature
![Page 35: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/35.jpg)
Branch per Feature
![Page 36: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/36.jpg)
TOOLS
![Page 37: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/37.jpg)
Tools
![Page 39: Synchronized Development for Distributed Teams](https://reader033.fdocuments.net/reader033/viewer/2022051400/5541b5d3b4c9059b4f8b4567/html5/thumbnails/39.jpg)
Summary
• Distributed teams:– There are pitfalls, but they are manageable
• Pick the right tools to support the techniques– …not the other way around
[email protected] @togakangaroo
Questions?
www.virtualbrownbag.com