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.

This question already has an answer here:

For a small start-up with only one or two programmers, is it possible to implement agile methods like Scrum? If NO, what is the minimum team size required?

I guess Scrum needs few programmers to be onsite as well?

Edited ** I think the Agile methods are meant for team collaboration and improve workflow so a single man may not benefit much.

share|improve this question

marked as duplicate by gnat, Kilian Foth, Jalayn, Joris Timmermans, Dynamic May 23 '13 at 16:43

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

5  
Very closely related: programmers.stackexchange.com/questions/71904/… –  Ladislav Mrnka Apr 28 '11 at 13:30
6  
I have this image in my head of you doing a stand up at your own whiteboard telling yourself what you did yesterday now. ;) –  Ardesco Apr 28 '11 at 13:39
1  
@Ardesco - that may actually be an effective approach –  LRE Apr 28 '11 at 21:38
2  
I just read a blog post, can't recall by whom, but they did daily standups even when working solo. They started their day with a quick list. What I planned to do yesterday, What I did yesterday, What I expect to do today, What might be blocking me, and throughout the day kept it updated. But after writing it, she would actually standup and talk to herself. It apparently helped solidify that as the plan and kept her on track. –  CaffGeek Aug 15 '12 at 13:03
add comment

10 Answers

up vote 4 down vote accepted

Agile works best for teams but it is not useless in a one or two man team. In fact if you have a very large team it is advisable to break it up into smaller functional groups for efficient agile implementation(imagine a 20-30 member standup meeting, you'll get the point) Your product backlog and sprint backlog will be most useful, even in a one man team, in telling you if you are on track for the deliveries. An onsite programmer is not a prerequisite, a scrum master is. In a small team typically the product owner is the best person but no harm in you taking up the role.

share|improve this answer
    
Disagree with the notion of the product owner hat be owned by someone within the development team. Dangerous, counterintuitive and unfortunately extremely common in the industry. –  Aaron McIver Apr 28 '11 at 16:20
    
@aaron: Sorry about the ambiguity. What I menat was that someone in the development team cn take the role of scrum master, not "take the role of product owner" –  DPD Apr 28 '11 at 18:28
add comment

Scrum team members benefit best in a co-located environment. Is it required? No, but it will certainly produce better results.

The number of programmers is slightly relevant but the more important factor is the product owner. There HAS to be a defined product owner who provides constant engagement to the team members as domain questions surface throughout a sprint. They are also the individual who will prioritize the backlog and provide direction for the team.

A ScrumMaster is every bit as important during the early stages since they are the liason between the team and the product owner; making certain the principles of Scrum are adhered to. As the team matures the ScrumMaster can often times scale back their duties as the team begins to mesh and operate in a much more holistic and efficient manner; adhering to Scrum principles.

If you can not provide a product owner, regardless of the number of programmers on the team, don't do Scrum. 1 individual wearing multiple hats in this case a developer, ScrumMaster, and product owner is not adequate. Focus in stead on picking up some practices from XP and better the development practice.

share|improve this answer
    
I don't understand why product owner can't be a developer. –  JeffO Apr 28 '11 at 14:13
    
@Jeff O It's going against the prescriptive framework of Scrum. When a developer wears the product owner hat; backlog prioritization is in the interest of whom? Business value? Developer excitement for technology X? When a domain problem surfaces does the developer now transition roles to a product owner to understand the domain problem and provide a resolution? That would certainly throttle an iteration to say the least. Scrum defines the product owner as the single individual responsible for the product; the single wringable neck. That neck should never spread across two people or two hats. –  Aaron McIver Apr 28 '11 at 14:48
    
@Jeff O If spreading is needed due to available capacity; go at it from the ScrumMaster stance and allow a developer to wear that hat. –  Aaron McIver Apr 28 '11 at 14:52
add comment

Standups and planning meetings would be a bit drab and pair-programming has got to be tricky.

But there's no reason you can't stick all your tasks on cards and work your way through them, keep yourself focussed. If you have a likely customer lined up then you can also let them help you prioritise in a very Scrum-like way. And TDD is every bit as beneficial to a one-man band as it is to a team.

share|improve this answer
    
pair-programming has nothing to do with Scrum; that is an XP practice –  Aaron McIver Apr 28 '11 at 13:45
    
@Aaron - The question was "Agile methods like Scrum" –  pdr Apr 28 '11 at 13:46
    
@pdr: Is Scrum not an Agile method? –  RPK Apr 28 '11 at 14:10
    
@RPK - Yes, it is. So is XP –  pdr Apr 28 '11 at 14:32
    
@pdr XP and Scrum are different solutions to different problems. While they are often intertwined in the industry they are different and one is not reliant on the other. The Scrum prescription does not require XP processes to be used throughout development. Keep in mind that Scrum is a framework and can be used across industries; software being one of them. –  Aaron McIver Apr 28 '11 at 14:40
show 5 more comments

Yes. Kanban. Because Kanban is great for n00bs, beginning Agile teams, and small startups.

Why is kanban a great Agile tool? Because it's lightweight. It allows you to see what is being worked on and where blockers are. You don't even have to do daily standups, scrums, or any of that stuff.

Show your simple progress on a wall, foo!

More links to kanban resources here: http://agilescout.com/kanban-is-great-for-beginning-agile-teams/

share|improve this answer
1  
Thanks for that nice link. Adding to blogroll. –  RPK Apr 29 '11 at 2:30
1  
No problem. I use a personal kanban board at home. Seriously would suggest anyone to use it for their personal life! –  Agile Scout Apr 30 '11 at 6:11
add comment

I also have a startup (2 person team), and from my experience I'd say agile practices are very important.

Iterative development, TDD and customer collaboration are the three most important practices to us. TDD (test driven development) is important to keep your code in good quality and therefore be able to respond to change. Customer collaboration to make sure you are building something people want. And iterative development to be able to continuously manage your priorities when you have a zillion moving things to do.

Here is what we do about it. Very lightweight and effective

My advice would be don't chose one thing like XP and Scrum and take it as a religion. Instead do what makes sense to you and be willing to evolve and adapt your process.

Startups are better at achieving the values of agile manifesto (listed below) than big corporations, and it is one great advantage we have over big corporations, so I'd say it is quite important to take full advantage of that.

Agile manifesto:
-Individuals and interactions over processes and tools
-Working software over comprehensive documentation
-Customer collaboration over contract negotiation
-Responding to change over following a plan

share|improve this answer
add comment

Agile methods improves collaboration between team members. A one-man show won't have much collaboration issues, but you can certainly benefit a lot from other agile practices such as short iterations, attention to technical excellence and customer involvement.

What specific method you use is less important if you are a solo developer. They are probably to heavy, and may feel a bit silly at times. I would try something personal like Pomodoro Technique or Getting Things Done to help staying focused.

share|improve this answer
add comment

Scrum contains three roles: Product owner, Scrum master, team member. Both product owner and team member should be full time roles (but it is not absolutely necessary) - these roles are usually not technical (but it is also not always the case). It is usually considered that Scrum team should have 3-8 members + scurm master + product owner. As two men team you can use some practices from agile but using whole Scrum is not needed.

share|improve this answer
add comment

I think taking an entire process like Scrum is overkill. But that doesn't mean that you should adapt some of the practices.

In particular, story based planning would be a great thing to adapt. Because even if you are only one man, you would probably still do planning - and with relatively little work, it gives you a relatively good prediction of when each feature could be completed.

share|improve this answer
add comment

Even if you are working alone, there is no excuse for not being agile.

I'm a freelance, working alone from home, and I use a combination of agile methods with great success. Scrum in itself is good for a single person, but need to be adapted. For example, a standup meeting or a planning poker alone is not funny.

The most useful practice, in my opinion, is splitting project into fixed time iterations. Work two weeks. Deliver partial product. Get paid. Start again. You don't need to have a big team to work with iterations, right?

Always getting feedback is also very important: make sure that your client is always as happy as possible.

Use stories to feed your backlog, and have your client sort it out by priority: priceless.

Other methods can be added for more efficiency: TDD, pomodoro, etc.

Sometimes, I happen to work with a friend when I get too much work. If you already use a Scrum canvas, adding another person in a team is quite easy.

share|improve this answer
add comment

Of course you can follow agile methods. However, I don't think that Scrum would be adequate in your case. I agree with Agile Scout - try Kanban. I recommend you reading articles, which are published at Kanban Library

share|improve this answer
add comment

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