synchronized development for distributed teams

39
CODE Training An EPS Company codemag.com/training SYNCHRONIZED DEVELOPMENT FOR DISTRIBUTED TEAMS George Mauer / Claudio Lassala

Upload: togakangaroo

Post on 30-Apr-2015

569 views

Category:

Technology


6 download

DESCRIPTION

Presentation by Claudio Lassala and George Mauer.Originally

TRANSCRIPT

Page 1: Synchronized Development for Distributed Teams

CODE TrainingAn EPS Companycodemag.com/training

SYNCHRONIZED DEVELOPMENT FOR DISTRIBUTED TEAMS

George Mauer / Claudio Lassala

Page 2: Synchronized Development for Distributed Teams

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

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

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

Agenda

• Distributed Pitfalls• Techniques – Branching

• Tools• Q&A

Page 6: Synchronized Development for Distributed Teams

DISTRIBUTED TEAMS

Page 7: Synchronized Development for Distributed Teams

Concerns

• Staying Informed• Personality Issues• Toe Stepping• Getting Feedback• Integrating Work• Dispersing Knowledge

Page 8: Synchronized Development for Distributed Teams

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

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

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

Getting Feedback

• Pairing• Design discussion / code reviews• Automated Testing (unit/integration)• Demos

Page 12: Synchronized Development for Distributed Teams

Integrating Work

• Branching• Pairing / ad-hoc design• Automated Tests• Pairing during integration• Frequent build meetings

Page 13: Synchronized Development for Distributed Teams

Dispersing Knowledge

• Pairing• Avoiding over-specialization• Standardized on patterns to be used• Code walk-throughs• Wiki documentation

Page 14: Synchronized Development for Distributed Teams

TECHNIQUES

Page 15: Synchronized Development for Distributed Teams

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
Page 17: Synchronized Development for Distributed Teams

Kanban Board

Page 18: Synchronized Development for Distributed Teams

DI, IOC, MVVM, Composition…

Page 19: Synchronized Development for Distributed Teams

TimeTracker

Adding new features• Validation• Alerts• Advanced

Search

Page 20: Synchronized Development for Distributed Teams

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

Branch per Feature

Page 22: Synchronized Development for Distributed Teams

Branch per Feature

Page 23: Synchronized Development for Distributed Teams

Branch per Feature

Page 24: Synchronized Development for Distributed Teams

Branch per Feature

Page 25: Synchronized Development for Distributed Teams

Branch per Feature

Page 26: Synchronized Development for Distributed Teams

Branch per Feature

Page 27: Synchronized Development for Distributed Teams

Branch per Feature

Page 28: Synchronized Development for Distributed Teams

Branch per Feature

Page 29: Synchronized Development for Distributed Teams

Branch per Feature

Page 30: Synchronized Development for Distributed Teams

Branch per Feature

Page 31: Synchronized Development for Distributed Teams

Branch per Feature

Page 32: Synchronized Development for Distributed Teams

Branch per Feature

Page 33: Synchronized Development for Distributed Teams

Branch per Feature

Page 34: Synchronized Development for Distributed Teams

Branch per Feature

Page 35: Synchronized Development for Distributed Teams

Branch per Feature

Page 36: Synchronized Development for Distributed Teams

TOOLS

Page 37: Synchronized Development for Distributed Teams

Tools

Page 38: Synchronized Development for Distributed Teams

Other Tools

http://twtpick.in/list/9E

Page 39: Synchronized Development for Distributed Teams

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