views:

362

answers:

6

We have a four person development team that is in need of a formalized project management system. I have a general understanding of Scrum and Kanban but it's hard to truly understand until it's been tried. We don't have the luxury of trying one for a few weeks and then switching to another so I was hoping that someone out there in a similar situation might have thoughts on which worked better for them and why. Also, any other systems for managing development that worked would be great to hear about.

Another note: there's the possibility of the team growing, of course, so we would need a system that scaled well.

Yet another note: We work on three separate software applications in Windows all of which are based on a central library which we also wrote (so i guess you could say four projects)

+1  A: 

The most important part is to have a reflection/retrospective mechanmism in place which facilitates continuous improvement. Start with some process model and evolve it over time for your needs. Stop doing things that are not worth doing. Keep on doing things that bring in high value. Try new things that you think could be valuable or address specific problems.

laalto
A: 

What is you question ? Is it which methodology would be most suitable ?

jAST
yes. and without limiting yourself to the ones I mentioned.
Karim
I would probably look into Lean or XP. Since you are working on several projects at once, it would be a bit unfortunate for you to use Scrum. I guess you could adapt Scrum to fit your needs, but I think Scrum works best for one project at a time. If you are able to fit Scrum into your needs, I would suggest you use Scrum since you also point out your team might be growing.It's really difficult to say exactly which methodology would be best suited for your team. But the issues you have to take into account are:(to be continue in the next comment)
jAST
- Team size (and chance of growth) - What happens if the team gets split? - How long will your team be working on these projects? - How "dangerous" is your project to loss of life and money? - How often are you expected to deliver something? - How are you managed, and are your managers inclined to accept your new approach?There are tonnes of questions to be answered. But the most important one is: Do you want to use a methodology? Will it improve your work?
jAST
A: 

You don't get much benefit from all the overhead that a formallised system will impose with that size of team. Instead, try a good management technique to make sure everyone is listening to each other and blocks are removed.

Martin
I don't know. A formalized system has the benefit of giving everyone a good idea of where you're at now and who's doing what. I guess there's a fine line between "good management technique" and "formalized system".
Karim
+2  A: 
eed3si9n
"XP tries to get the feature integrated within the day"To be pedantic, XP strives for the system to *always* be integrated. Development of a single feature (aka "story" in XP terminology) may, and usually does, take more than one day. Pairs will check in frequently during the development of the feature and the XP practices ensure that existing functionality is not broken by those check-ins and the system is always in an integrated, deployable state.
Nat
It seems more and more companies using Scrum now go for 14 days sprints. The reason seems to be that shorter cycles give faster feedback.
Halvard
@Halvard, I am very skeptical of the 14 day sprints. Scrum is a crunched up waterfall. I have suspicion that people who run 14 day sprints just wanna do XPish iterative development without all the safeguard XP has put in such as test first, refactoring, and pair programming. How can a team do requirement gathering, designing, coding, testing, and get to "done done" state in 14 days? My guess is that the sprint backlogs and testing just gets omitted.
eed3si9n
A: 

I've worked with a team of that sice and even bigger on two teams that shared some common libraries. Scrum worked well for us. Now I work with a team with 6 members and we use XP and I think it works as well. The first team developed a product and the influences from 'the outer space' were not that big. So longer iterations worked fine. No we develop a customer project and therefore shorter release cycles are better for us.

But SCRUM and XP are more than that. Now we use TDD and Pair-Programming (both more from the XP world). We also have daily standup meetings that are more SCRUM like. So we adoped XP and SCRUM to work for our project and our situation.

I would start with short cylces (1 week) and reviews of this cycle. It will take some time to adopt a new methodology in your team but if the members are willing to learn and change it will work.

crauscher
+6  A: 

Both Scrum and Kanban are really process "skeletons". Neither is specific to software development. Scrum was popularised by software development organisations but is positioned as general management technique rather than a software project management technique. Kanban emerged from manufacturing and has been adapted to software development, initially by maintenance teams. Both Scrum and Kanban aim to manage the flow of units of work through the team that is doing that work, measure how fast work flows so that estimates can be made more and more accurately, and make bottlenecks highly visible so that they can be addressed.

Because neither is specific to software development, teams using Scrum and Kanban add software development practices to the process to help them incrementally and iteratively release and improve the software. Most teams, whether working within a Scrum or Kanban process, adopt the technical practices of XP and reflective practices of Crystal.

XP is basically Scrum applied to a single team plus guidelines about what makes code "high quality" and how programmers can achieve that. Crystal Clear also applies to small co-located teams but is more flexible about programming practices although it also recommends the XP practices (the book describing the process is excellent and full of invaluable advice, whatever process you decide to go with). Scrum teams also usually adopt the reflective practices of Crystal: regular "heart-beat" retrospectives and larger retrospectives after every major milestone. Kanban requires continual reflection and improvement but some teams use retrospectives too.

If you want to start applying an incremental/iterative process in a small programming team, then I think XP is a good process to start with because it sets the bar pretty high for technical capability and is very well documented. How continuous-flow and Kanban best applies to different areas of the software development industry is still being debated on the kanban-dev mailing list and elsewhere.

I would recommend also performing regular retrospectives to improve the process and adapt it to your specific situation.

Nat