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.

  • 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, 2011 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, 2011 at 3:34
  • @Adnan: waterfall yes, agile no - agile explicitly allows for 'spike' projects. Sep 12, 2011 at 3:29

3 Answers 3


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.

  • 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, 2011 at 2:23

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.


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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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