Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

In my scenario, we have a team of experienced developers with 3+ years and they are not co-located. We are in a learning phase in terms of the domain and technology. I want some recommendations in regards to what software methodology we should adapt.

I have thought of implementing waterfall, since we have to design upfront and we know all the design issues and technical challenges. Using agile on teams that are not co-located, we aren't sure how to estimate on per week bases when dont have a complete grasp on the technology.

share|improve this question
1  
Just a student. However based on what I have read in Object oriented Analysis and Design course, waterfall and Agile are POOR methodologies to work with if you are unfamiliar with technology. Throwaway Prototyping is considered the best in these cases. –  Adnan Bhatti Sep 11 '11 at 2:48
    
If you know all the technical challenges then you aren't in learning phase. Distributed team, unfamiliar technology, mandated up-front design - this sounds like a recipe for failure to me. Something needs to change. –  TrueWill Sep 11 '11 at 3:34
    
@Adnan: waterfall yes, agile no - agile explicitly allows for 'spike' projects. –  Steven A. Lowe Sep 12 '11 at 3:29
add comment

migrated from stackoverflow.com Sep 12 '11 at 0:36

This question came from our site for professional and enthusiast programmers.

3 Answers

up vote 2 down vote accepted

Do a pilot project first. Implement a whole, but small, project as a pilot study. Implementing the pilot system, your team can experience all phases of a project development and learn how to deal with the problems that eventually will arise from the lack of expertise in the used technology. Furthermore, you can use the metrics from this pilot project to have better estimate for your main project planning.

share|improve this answer
1  
Also, focus the pilot on implementing a full vertical slice of functionality, trying to put everything together in the smallest possible project that would exercise all relevant areas. –  Mathias Sep 12 '11 at 2:23
add comment

In Rapid Development: Taming Wild Software Schedules, Steve McConnell provides a table that compares a number of life cycle methodologies based on several factors and rates them between Poor and Excellent. This chart can be found in Chapter 7, on pages 156-157, if you have a copy of the book.

If your project is characterized by poorly understood requirements and a poorly understood architecture, then the spiral model is favored. However, the spiral model is designed to detect and allow for negation of risks early. This requires training and discipline in tracking progress and the current state of the project so that decisions can be made in a timely manner.

share|improve this answer
add comment

Personally I'm a big fan of SCRUM. It allows for constant evaluation especially with new technologies. Every few weeks you'll have a sprint, and it'll allow for reevaluation. I've used this in college development teams, and in real life. It's very effective, and adaptive. Do some research, I think this is your best option.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.