tags:

views:

189

answers:

4

Hi,

This ins't a troll but i wanted to know what would be the best XP or Scrum for a project that ALREADY STARTED We are 6 developers for a important project in my company the problem is that during vacacion periode the classic V cycle just isn't effective and has a junior architect, i've been asked to put some agility on the team.

So my question would be, what is the best pattern to include agility in a project that's already on his 3rd week?

EDIT 1 : I forgot to ask why :)

EDIT 2 : The team uses EntityFramework.

+1  A: 

It's always a problem to start using any methodology after a project has started. However the best I can give you is to use SCRUM.

The reason I put this forward is that SCRUM is known for projects whose specifications change often and to cater for it.

You have the Project Owner, who is the person who you are making the program for, and they own the product backlog. The backlog is basically your spec. Please read up on these terms in greater detail, i'm simplifying here.

You then have your sprint, which is a 1-Month development cycle, in which you decide on the things you are going to get done from the backlog.

Then daily, you have a 5 minute scrum meeting in which you ask what you did the previous day, what you are going to do, and if there are any obstacles in your way.

So basically, you have a spec that can change, and constant communication. This seems to me to be about the most suitable Agile methodology that you can get into a bit later in the game.

For more information on SCRUM

Kyle Rozendo
Although, depending on the length of your project, you might want to reduce the length of your sprints.. down to two weeks perhaps?
davewasthere
Sure, all depends on the project size, just the 1 month sprint is the common practice.
Kyle Rozendo
+7  A: 

Hi,

Straight away, you can take some good practices out of both.

Daily scrum meetings are very effective. Have the whole team meet daily near a whiteboard, not a room, for a 15 minutes stand up. Everybody has to answer three questions:

  • What have you done yesterday
  • What will you do today
  • Is anything standing in your way

This has a direct benefit of making everybody feel part of a team, and letting problems emerge.

Dividing your project into iterations is also very useful. Choose an iteration length, either two weeks or one month.

  • Have a half day meeting on the first day of the iteration where the team chooses and commits on what to do in the iteration. Write this down and refer to it during the daily meetings. Monitor that you are progressing towards the objective.
  • Have another half day meeting on the last day of the iteration to do two things. First you want the demo the current state-of-the-art to Business Owners (or Stakeholders). This focuses the team on having something that can be demoed, and keeps pressure off the team by showing constant progress. Second, you want to have a retrospective meeting in which you write down what went wrong, what went right and any exceptional events happened.

Sometimes we use pair programming to build team spirit and to focus on particularly complex issues. Give one item to solve to two people using only one computer.

Speaking of team focus, have the whole team work in the same dedicated room if possible. This is quite important.

Continuous integration, decent source control and unit testing are technical tools that allow your team to be more agile. Set them up!

I also found useful in the past to circulate (and hang a large print-out of) the agile manifesto.

In order to become even more agile, you need your Business Owner to "buy-in" to the methodology. They need to be involved in the planning meetings where the pick and choose which items should be developed in the following iteration. Generally this choice is based on business value: reduce risk by having the most valuable items developed first. If the project runs late you can still close it off early, still having the most important stuff. They also have to accept part of the responsibility of bringing the development to completion. This usually focuses the development on the right things.

I could write a lot more on the full implementation of these methodologies, but as I was saying, your project has already started. In my experience the biggest problem with implementing agile methodologies is that people have difficulty getting what agile means. Some people will tend to act in a non-agile way even during a fully agile development! For this reason I think that you will need some agile training before you can implement a full-blown Scrum, for example.

Hope it helps!

Sklivvz
thanks alot for the good advices, this is very helpfull
Polo
+1  A: 

What you are talking about, as far as I understand, is basically to subside the effects of the downtime during the vacation period, now taking Vacation Period in our stride, SCRUM methodology gives the right set of tools for handling this kind of situation, reason being,

Each Sprint would deliver a shippable product, so your concern of the downtime not getting utilized would surely be out of the way, as only that much work would be planned during the downtime as much as the team availability.

SCRUM is independent of what technology you are using, be it EntityFramework or any other for that matter.

81967
Lets juste say its the good moment to move on to more productive and efficient way to developpe. How could it still be a classic V cycle...
Polo
The Point where Classic V starts to go out is when changes come in thick and fast, as yours is a critical project, changes may be frequent, but if your requirement spec are made near perfectly (unlikely though) , you should be sailing smooth with the Classic V ..with proper scheduling and planning ...
81967
+2  A: 

Task boards are a good idea for letting everyone know what is being done and what is supposed to be done in a sprint. There can be challenges in getting this started but once a team is used to it, it isn't that bad to have as a way to show what is being done, what was done and what is coming up. There is estimating tasks and building a back log and burn down but this can be nice to see at times to show, "Hey, we did get some stuff done!" I'd suggest taking the first few sprints as a period where velocity will not be consistent as there is some working out of the kinks of how much work can be done in a sprint. This is part of Sklivvz's answer in terms of what goes on that whiteboard where you have stand up.

Pair programming is also a great idea for helping to build a homogeneous codebase and to get in some standards that can also be useful.

JB King