synchronized development for distributed teams

Post on 30-Apr-2015

569 Views

Category:

Technology

6 Downloads

Preview:

Click to see full reader

DESCRIPTION

Presentation by Claudio Lassala and George Mauer.Originally

TRANSCRIPT

CODE TrainingAn EPS Companycodemag.com/training

SYNCHRONIZED DEVELOPMENT FOR DISTRIBUTED TEAMS

George Mauer / Claudio Lassala

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

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…

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

Agenda

• Distributed Pitfalls• Techniques – Branching

• Tools• Q&A

DISTRIBUTED TEAMS

Concerns

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

Staying Informed

• TODO’s and Tasks on a Whiteboard• Teleconferencing, Screen-Sharing, Online

Team Room • Daily Scrums• Pairing / Code Review

Personality Issues

• Consciously limiting ego• Team room for private bitching (things

employers might not like being public)• Team buy in• Occasional get-together’s

Toe Stepping

• Design by Contract• Pairing• Branch by Feature• Daily Scrum• Design discussions / ad-hoc design sessions• Availability

Getting Feedback

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

Integrating Work

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

Dispersing Knowledge

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

TECHNIQUES

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

Kanban Board

DI, IOC, MVVM, Composition…

TimeTracker

Adding new features• Validation• Alerts• Advanced

Search

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

Branch per Feature

Branch per Feature

Branch per Feature

Branch per Feature

Branch per Feature

Branch per Feature

Branch per Feature

Branch per Feature

Branch per Feature

Branch per Feature

Branch per Feature

Branch per Feature

Branch per Feature

Branch per Feature

Branch per Feature

TOOLS

Tools

Other Tools

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

Summary

• Distributed teams:– There are pitfalls, but they are manageable

• Pick the right tools to support the techniques– …not the other way around

gmauer@gmail.com @togakangaroo

Questions?

www.virtualbrownbag.com

top related