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.

Hello
What's a good methodology for a small 2-person project? Ranges from 20-40hr.

It's mostly small websites. I want to approach it as a developer, but Agile and other methodologies seems too large scale for what I'm after.
Thanks

share|improve this question

closed as primarily opinion-based by gnat, GlenH7, MichaelT, thorsten müller, Doc Brown Sep 30 '13 at 17:26

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

add comment

4 Answers 4

up vote 10 down vote accepted

There is no perfect methodology which fits every team per se - any good method worth its salt will acknowledge that it needs to be tailored to every team's and project's specific situation and needs.

So just

  1. pick what seems useful to you from Agile (or whatever) methodologies,
  2. start using it,
  3. see how it works for you, and
  4. improve it as you go.

For such small scale project, you may not need a lot of planning indeed. However, I reckon you still need to (among others)

  • manage requirements,
  • estimate tasks,
  • track progress, and
  • verify that requirements are fulfilled.

These are at least some of the things that IMHO even the simplest development process should be able to deal with on some level. Of course, if both of you are experienced in the domain(s), know very well what you are doing, and have no need to communicate closely with management, sponsors etc., you may be happy with a bare minimal process which lets you "just do it". Otherwise, the less of these conditions are true, the more process you probably need.

share|improve this answer
    
Additional suggestion: Identifying requirements as Use Cases can really help you separate and order your work tasks. Especially with only a couple of people, it can really help in creating a small iteration plan. –  ProdigySim Apr 4 '11 at 20:34
add comment

I agree with @Péter Török pick one and massage it.

However if I were to suggest one to massage I would pick something from the aglie world as it naturally has smaller chunks of work which might match better to a 20-40hr work week as opposed to a waterfall type methodology which requires longer periods of constant development to achieve formal progress.

TDD might also be a good implementation supplement, esp if your 20-40hr is actually just multiple sets of 2-4 hours a day with a push on the weekend. It can really help to foster progress ( and remind you what you were working on... the test that currently break )

share|improve this answer
add comment

I'm using the Lean methodology for my one woman final year project at uni; specifically the seven Lean principles as identified by Tom and Mary Poppendieck in Lean Software Development: An Agile Toolkit for Software Development Managers (2003)

  1. Eliminate waste
  2. Build quality in
  3. Create knowledge
  4. Defer commitment
  5. Deliver fast
  6. Respect people
  7. Optimise the whole

From my reading around the subject, the Lean approach to project management and software engineering is sometimes confused with the Agile approach but where Agile methodology is aimed primarily at a workflow which adapts quickly to change, Lean takes this further by eliminating non-value added steps within the process and focuses on an even more streamlined iterative process (feel free to disagree with my understanding of Lean and Agile methodology here)

suggested helpful reading: Hibbs, Curt, Steve Jewett, and Mike Sullivan. (2009). The art of lean software development; A practical and incremental approach. O'Reilly media

share|improve this answer
add comment

Here are a couple of options:

  1. Pair programming seems to work really well in these situations. Having gone through multiple projects with a project partner, its hard to communicate what you have done after you just finished a overnighter but is important when the other person is planning to sync to your changes in the morning. You might want to try TDD along with Pair programming.

  2. Delineate the project in multiple (relatively) independent modules and code away. Work together while doing integration to avoid one person throwing the half of the other's code away :)

  3. Ofcourse, agile methods like scrum still work well in this setting.

share|improve this answer
1  
I would nix Scrum. You don't have enough people to carry out all of the roles. The roles in Scrum just don't break down if you have fewer than 5 or 6 people. –  Thomas Owens Apr 4 '11 at 20:19
add comment

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