fixed distributed agile

20
Fixed Distributed Agile The way to do it right! Shlomi Otmazgin Head of Java & Internet, Matrix Global

Upload: perfecto-mobile

Post on 22-Apr-2015

706 views

Category:

Technology


0 download

DESCRIPTION

Fixed distributed agile project example

TRANSCRIPT

Page 1: Fixed distributed agile

Fixed Distributed AgileFixed Distributed AgileThe way to do it right!

Shlomi OtmazginHead of Java & Internet, Matrix Global

Page 2: Fixed distributed agile

About iBasis• iBasis is a private corporation based in Burlington,

Massachusetts. Massachusetts.

• It is a wholesale carrier of international long distance telephone calls, with enhanced services for mobile telephone calls, with enhanced services for mobile operators, and a provider of retail prepaid calling services.

• In Fiscal Year 2010, iBasis had total revenues of • In Fiscal Year 2010, iBasis had total revenues of $1.8 billion, carried approximately 32 billion minutes of international voice traffic, and employed approximately 420 people.420 people.

Page 3: Fixed distributed agile

Bilateral projectBilateral system connects between iBasis clients &

vendors that don’t share any commercial relationship, or are able to find better rates with iBasis, for example:

Bilateral

Page 4: Fixed distributed agile

The team structure:Building the team

The team structure:• 1 Project Manager1 Project Manager

» Development Team

�1 Senior Java Developer�1 Senior Java Developer

�4 junior Java developers

QA team» QA team

�1 QA team leader

�2 QA testers

Page 5: Fixed distributed agile

Supports MVC Model.

Choosing the FrameworksSupports MVC Model.

Written in Java 6 upon eclipse.

All HTTP calls are pure Ajax.

Uses ExtJS to draw RIA.

Uses DWR engine to allow simple asynchronous server-client data transfer.

ORM by Hibernate annotations to Oracle 10 DB.ORM by Hibernate annotations to Oracle 10 DB.

Object initialization by Spring IoC & Spring Injection.

Automated testing by JUnit 4.Automated testing by JUnit 4.

Logging support by Log4j.

Reports support using JXL for Excel & iText for PDF.

Build by Maven 2 & deployed on Tomcat 6 using Hudson.Build by Maven 2 & deployed on Tomcat 6 using Hudson.

Cross browser application.

Page 6: Fixed distributed agile

Screen shotsDesktop environment

A drag & drop resizable windows environment.

Clean, rich, fast, flexible & very intuitive.

Smart search screens

Auto complete paginated combo boxes.

All actions are very fast using Ajax.

Page 7: Fixed distributed agile

Go!1. Project manager was recruited. 1. Project manager was recruited.

2. Senior developer and junior developers recruited (by project manager).

3. Project manager traveled to customer (2 weeks):3. Project manager traveled to customer (2 weeks):

• Learned the current system.

• Wrote HLD & SDD. • Wrote HLD & SDD.

• Review and authorization of above.

4. In parallel – developers trained in relevant technologies.4. In parallel – developers trained in relevant technologies.

5. Development begins within one month.

• First release on schedule - after 4 months.

• Second release (iterative) - after 3 months.

• Third release - no travel - after 3 months.

Page 8: Fixed distributed agile

Fixed Distributed AgileStep 1 – HLD & SDD

• Write the HLD & SDD to the whole project.

With no estimations!

• Write the HLD & SDD to the whole project.

• Build the product backlog.

• Was done at the client’s site.

Duration: 1-2 weeks

Page 9: Fixed distributed agile

Fixed Distributed AgileStep 2 - Artifacts

• Meet the team and held ALL the sprint planning meetings • Meet the team and held ALL the sprint planning meetings one after the other.

• Get the precise estimations for each task• Get the precise estimations for each task

using scrum poker cards.

• Build the sprint backlogs for the entire project.• Build the sprint backlogs for the entire project.

• Add 15%-20% time as a fix project safety net – WHY?

• The team members pick the tasks & the team leader build the project gantt. Duration: 1 week

Page 10: Fixed distributed agile

Fixed Distributed AgileStep 3 – SOW

• With accurate estimation for the whole project write the SOW.write the SOW.

• Negotiate the estimations with the client & get • Negotiate the estimations with the client & get the final approval.

Duration: 1 dayDuration: 1 day

Page 11: Fixed distributed agile

Fixed Distributed AgileStep 4 – Work begins!

• Work begins with a daily stand up meeting.• Work begins with a daily stand up meeting.

• Weekly meeting with the client to review the progress & solve open questions.solve open questions.

• After each sprint (3-4 weeks) – sprint review meeting with the client.the client.

• Retrospective team meetings from current sprint for the next ones.next ones.

• 1 week max for client’s sprint review.

Page 12: Fixed distributed agile

Fixed Distributed AgileStep 5 – The Finish Line

• Release the final version after 4 months & 5 sprints.• Release the final version after 4 months & 5 sprints.

• Because of 15%-20% extra time the CR’s along the way languish into the initial specifications.way languish into the initial specifications.

1 week max for client’s sprint review.1 week max for client’s sprint review.

Page 13: Fixed distributed agile

The Agile Aspect

The client is aware of the team status on a daily basis.The client is aware of the team status on a daily basis.

He MUST review the project status on each of every sprint.

The client can notice misunderstandings or can just modify The client can notice misunderstandings or can just modify the design while developing to suit his will, up to a certain level – huh?!?.level – huh?!?.

Development is very flexible because changes are made in an early stage thus rewriting is an easy effort.an early stage thus rewriting is an easy effort.

Page 14: Fixed distributed agile

The Agile Aspect

Product & design change along with development to create Product & design change along with development to create a product that is suitable to client’s expectations.

If CR is too big we usually postpone it to the next phase.If CR is too big we usually postpone it to the next phase.

Use of scrum concepts as: stand up/weekly/sprint meetings, product backlog scrum poker cards, XP.product backlog scrum poker cards, XP.

There are 0 “bad surprises” on delivery – UATThere are 0 “bad surprises” on delivery – UAT

Page 15: Fixed distributed agile

Scary? Don’t call it Agile!Typical Agile reactions

• Low ceiling for new ideas - the angry monkey • Low ceiling for new ideas - the angry monkey experiment.

• Our product/structure/management is too complex for • Our product/structure/management is too complex for Agile.

• We started and than backed off.• We started and than backed off.

o Was your client/management/colleague devoted?

• I do want but I can’t get my manager’s approval.• I do want but I can’t get my manager’s approval.

• I don’t know where to start!

Page 16: Fixed distributed agile

Scary? Don’t call it Agile!

1. Start using agile without shouting it.

2. Use what fits you.

3. Go for quick wins.3. Go for quick wins.

4. When showing your managers it helps you, talk about ROI (it makes them feel cozy…) ROI (it makes them feel cozy…)

5. Add more & more Agile routines to the team.

One day you’ll wake up with an Agile sleeping next to 6. One day you’ll wake up with an Agile sleeping next to you :-)

Page 17: Fixed distributed agile

Finally, Finally, we must remember that our

mail goal was & always will be

Adjusting to our client Adjusting to our client expectations

Page 18: Fixed distributed agile

Even if they seem odd…

Page 19: Fixed distributed agile

Q&AQ&AQ&A

Page 20: Fixed distributed agile

Thanks ����Thanks ����Thanks ����