views:

325

answers:

7

We have proposed to use Scrum in our IT Project and our Adviser asks us if it is appropriate to us because we are still amateurs.

Is it appropriate to us Scrum even if we are amateurs?

+7  A: 

The discussion is usually agile vs. waterfall, right? I am linking an article, but it is in Portuguese, so I'll try to transmit some of its ideas:

Waterfall is like chess. You think and plan a lot, try to foresee every possible issue as soon as possible. There's a lot of planning, but makes sense only on stable and well-known domains, where change isn't much expected.

Agile is like soccer (or many collective sports): decisions are made in-game and should be done fast. There's no much time to analyze every consequence. It is "ideal" for dynamic and unstable domains, where change is always expected (web applications, for instance, tend to fall in this category). Another point to note is: even if you have the best players, if they don't do well as a team, you won't be the winner.

IMHO, Scrum would be useful, because:

  • Once every two weeks (or every month, depending on iteration time) you'll be able to see what's working or not. And this is very valuable, specially as an "amateur" team, which is expected to be learning and finding things out much more constantly.
  • As amateurs, you probably won't be able to foresee everything (and that's something agile embraces)
  • There's more space for sharing experience (stand-up meeting, retrospective, and even planning meeting). And you share REAL experience (you must write code every week rather than just plan)
Samuel Carrijo
+1 scrum is good for amateurs because it gracefully handles the unforeseen, which will likely happen far more often with beginners than with experienced.
Rex M
+1  A: 

I disagree. Scrum is better in a situation where

  1. you can depend on the "players"; and,
  2. the requirements might very well be changing underneath you.

A college type project generally has pretty good requirements AND the potential of flaky team members.

Further, you have to think about the purpose of even doing the project in that setting. The students need to think, plan, and discuss how things are going to work before they start diving in. Finally, scrum works best in a close knit, fast paced environment with constant communication. Which is unlikely to happen on a school assignment.

Scrum encourages a "let's just start" programming attitude which, again, is fine when you have experienced professionals working on it that through experience know the pitfalls to avoid up front.

Chris Lively
You do think, plan and discuss in agile. But you don't plan it as a whole, but rather some really small functionality at a time. And it is better for them to get to know the pitfalls EARLY. If they plan it all, and only when they are implementing they find the pitfalls out, it is MUCH more costly to change the requirements.
Samuel Carrijo
+1  A: 

No one says you have to fully implement SCRUM.

I can say from personal experience that SCRUM is great for 'amateurs' :) . At my 4th semester, we had to make a project in the scope of 4 months. Our group of 4 managed "semi-SCRUM" like this:

  • Sprints were of 2 weeks
  • No daily stand-up meetings (We were physically close, so we took everything on the fly)
  • All sprints had a headline from the start of the project. These were our milestones.
  • We had 2 weeks of buffer time, since we expected to delay :)

SCRUM itself is rather complex, but the ideas of sprints, part-deleverances, leadership and the likes are great. It doesn't really take more than a day for everyone to understand these concepts. For us, SCRUM made sure we had a top-notch project ready by the deadline, with tons of feedback during the development. Top grade too :)

cwap
+5  A: 

Here's the rub. I think Scrum is going to be tricky not because your team is a bunch of amateur developers but because your team is a bunch of Scrum amateurs. If you have an experienced Scrum Master, your team may reap the benefits of Scrum. Without a point person with Scrum experience, however, there's going to be overhead in learning as you go and more than likely you will get off the Scrum path quickly. At best, you will exercise a modified-Scrum approach (which isn't necessarily a bad thing.) I don't mean to sound negative or doubt your team's ability to practice Scrum, it's just best to have someone with prior Scrum experience before your team dives in. Best of luck.

Ben Griswold
I have an experience in a Scrum Team but only as a developer. I want it to apply to my team and I will act as a Scrum Master. Is it good?
Roy Marco Aruta
Sure. If you have Scrum experience, it could work but a lot will rest on your shoulders. Not only will you have to assume the role of Scrum Master, you will also have to educate all participants on Scrum and get required buy-in from all team members. That's the only way it will work. This isn't an easy task, but I wish you the best.
Ben Griswold
A: 

There will always be some team dynamics to get worked out for how things like the daily stand-ups, storyboard and other Agile practices mature in a group. The big question to my mind is whether or not you have enough time to reap some of the benefits that comes after a few sprints and some rhythms have formed within a group. I would suggest at some point calling in someone more experienced with Scrum to give feedback about how to improve what you have as part of the methodology is to grow and evolve over time, IMO.

So, it is fine for you to use Scrum and see how it goes. After all, everyone has to get started somewhere and various modifications on the methodology are common to my mind. There is something to be said for how you'll walk the walk which may be easier or harder than you imagine. Good luck and I do realize this is echoing a lot of Ben's excellent answer.

JB King
+1  A: 

Scrum, along with other agile methodologies, is not appropriate for a team that consists of students or otherwise inexperienced people.

Wikipedia has a good section on the suitability of agile software development. Barry Bohem and Richard Turner, leading software engineers, wrote a book that includes factors that can help determine if a plan-driven or agile methodology is better on a given project. One of the cases where plan-driven methodologies stands out is with junior developers, which includes students and amateurs.

Now, this doesn't mean that you need to use only a plan-driven approach. I personally think that the most important thing you can do is to find a process that works for your team. You can probably incorporate agile approaches - test driven development, continuous integration, pair programming - into a plan-driven environment that visits each lifecycle stage once.

Thomas Owens
A: 

I think your main problem is going to be in the estimation and tracking to the planned sprint duration. In the past, I’ve found that when resources are not intimately familiar with the coding environment they’ll be working in (this can happen with professionals adopting a new technology), it’s very easy for sprints to go off the rails. Task breakout estimation becomes guesswork and consequently it becomes very difficult to run sprints to plan.

Having said that, there are elements of Scrum which would be very useful in this environment; daily standup meetings and iterative releases are the ones that come immediately to mind. Personally, I don’t subscribe to the “do all of Scrum or you’re not doing Scrum” mantra. Be pragmatic in your approach and pick elements of the methodology which will work for you. Make sure you incorporate the continuous improvement component of doing sprint retrospectives so you can proceed with the assumption of refining and enhancing and you’ll be heading in the right direction.

Troy Hunt