User not logged in - login - register
Home Calendar Books School Tool Photo Gallery Message Boards Users Statistics Advertise Site Info
go to bottom | |
 Message Boards » » Agile vs Waterfall - Software Development Methods Page [1] 2, Next  
Stimwalt
All American
15292 Posts
user info
edit post

Hello World,

So are any of you agile? I'm currently working in an Agile Software Development environment and wanted to see if anyone else out there is doing this too? In the past, I have only used the Waterfall methodology, which is requirements first, develop, and any changes to the deliverable are considered change orders. Agile basically attempts to incorporate late additions by increasing collaboration with coders, project managers, and the customers. So far it's a lot of meetings and a lot of doing whatever the customers asks. Are there any fans of this development methodology out there?

http://www.youtube.com/watch?v=gDDO3ob-4ZY

3/3/2011 5:34:32 PM

Lionheart
I'm Eggscellent
12760 Posts
user info
edit post

Depends a lot on the industry, I work in Pharma and things have to be way more laid out a lot more than I imagine something more consumer oriented would be.

That said you have to force customers to make and hold to decisions, nothing will hurt a project faster than having a customer come up with something else or a change they want every five seconds and once you start doing it they won't stop. Then you're getting calls on your personal number at 5:30 in the morning from a different time zone.

3/3/2011 5:43:03 PM

Wolfmarsh
What?
5975 Posts
user info
edit post

We use agile with scrums, sprints, etc...

Some projects we are more strict about than others.

3/3/2011 7:53:25 PM

smoothcrim
Universal Magnetic!
18918 Posts
user info
edit post

i hate agile and think it mostly leads to a ton of half-baked, non-standards compliant, shit. waterfall doesn't have to be slow. im all for releasing functionality in tiers.

3/3/2011 7:57:51 PM

AlaskanGrown
I'm Randy
4693 Posts
user info
edit post

We are agile, if not chaotic we are a new team in a well run development organization with a manager who's background is in research prototyping. We do NOT have as good of a processes as I'd like to see but we are moving towards a agile dev plan.

3/3/2011 8:04:32 PM

EMCE
balls deep
89697 Posts
user info
edit post

I've worked in both environments, and am by far, a fan of waterfall. I just hate diverting away from requirements, meeting with the customer months down the road, and finding out what you have developed isn't what they wanted. Only to have to go back and cover your ass in order to bake a half cooked loaf of bread with pretty sprinkles on it.

3/3/2011 8:10:52 PM

kiljadn
All American
44689 Posts
user info
edit post

^ you and I obviously have a very strong preference for proper documentation because of our backgrounds


that video the OP posted isn't biased at all


http://www.youtube.com/watch?v=l1wKO3rID9g




[Edited on March 3, 2011 at 8:33 PM. Reason : it depends on the project. i don't think agile is always the answer.]

3/3/2011 8:27:18 PM

mildew
Drunk yet Orderly
14177 Posts
user info
edit post

Our teams do agile...

I am not a huge fan, but I do appreciate the increase in collaboration. The whole time logging, sprint planning, scrum, backlog grooming, retrospective, etc gets old quick though.

3/3/2011 8:33:45 PM

EMCE
balls deep
89697 Posts
user info
edit post

^^ aha, yeah. I've just seen shit go down the tubes quick.
Hell, your customer wants a good product. I want to give my customers what they ask for. I would much rather integrate my customer in the process along the way...
No excuses. No bullshit. No lies.

3/3/2011 8:37:32 PM

kiljadn
All American
44689 Posts
user info
edit post

For real. People act like Agile is the brand new hot shit because it involves COLLABORATION.



Integrate all the teams and collaborate from the start and you won't run into half the issues that teams do.


I mean, I'd much rather go talk to a dude up front and be like "yo, does this work? do you think it will make sense?" than to work in a fucking vacuum making decisions based off of assumptions and then have to deal with bitchy-ass change requests.

3/3/2011 8:42:53 PM

Seotaji
All American
34244 Posts
user info
edit post

we use agile. i much prefer waterfall. i can't deal with all the meetings. nothing gets done. ugh.

3/3/2011 8:53:45 PM

OmarBadu
zidik
25060 Posts
user info
edit post

we tell people we do agile but we are closer to waterfall than we like to admit i think

3/3/2011 10:04:15 PM

wwwebsurfer
All American
10217 Posts
user info
edit post

how many devs are working on each of these projects?

For instance we're more agile than waterfall, but there's only a handful of people. I can't imagine being agile with 10+; you'd never get work done

3/3/2011 11:30:45 PM

qntmfred
retired
40371 Posts
user info
edit post

i'm a big fan of agile. it definitely doesn't work best in some industries, i can see pharma and engineering being poor matchups. you also have to have an appropriate team. if you have folks who just want to sit in their office and write their code, it's not gonna work. i've worked with the same team (4 devs, 1 PM/scrummaster) for 4 different companies and we work very well together so we've had a lot of success

one company we worked for, they had spent the previous 3 months coming up with a requirements document, and came up with a 20 something page document of mostly excel mockups. after 1 sprint we pretty much ditched it and just did our thing. after 1 more sprint we had a working, demoable prototype that the C-levels could play around with and by the end of the next sprint they had our team training the other two dev teams on how to do agile. When they released the product, they actually named it Agile (ok this part is actually SUPER lame of them trying to attach the brand of their financial advising platform to a development methodology concept but it does show the impact that a highly-performant team can have)

Quote :
"we use agile. i much prefer waterfall. i can't deal with all the meetings. nothing gets done. ugh"


what are you doing in meetings? unless you're a project manager meeting with domain experts and other stakeholders, i don't see why you're in meetings. We have a daily scrum meeting at 9:00 am that lasts 15-20 minutes, a retrospective/planning session every two weeks that lasts about 4 hours and 95% of the rest of the time I'm at my desk. If I need to get clarification on a feature, I turn around in my chair and ask the project manager and he finds out. Either that or I walk down the hall and ask the person myself.

at home, for personal projects, I go back and forth between traditional iteration-based development and kanban-based systems. i really like http://agilezen.com/

[Edited on March 4, 2011 at 12:15 AM. Reason : .]

3/4/2011 12:04:43 AM

AlaskanGrown
I'm Randy
4693 Posts
user info
edit post

We call our scrum a stand-up. Team of 5 devs and 1 PM.

3/4/2011 12:08:24 AM

Noen
All American
31346 Posts
user info
edit post

Our entire product group (Team Foundation Server) moved to a fully Agile development AND planning process for the current product cycle.

Very common misconception being tossed around in here that Agile Software Development inherently means you are also doing Agile planning, envisioning and requirements management.

You can do Agile Development with non-Agile requirements, waterfall or otherwise. Also, Agile development != half-baked shitty software. Agile development WITHOUT a planning and management process does usually end up with half baked shitty software.

I can speak from the experiences I've had in interviewing (and in reports from my researcher and team members) from over 40 companies across the world who are in various points of transitioning to Agile and practicing Agile development and management. And in addition from my own experiences in a large organization (200+ people) with VERY strict formal requirements moving to a fully Agile lifecycle. These are some insights that, with a little luck, I may be talking about at several conferences this year

- It's absolutely, 100% the future of software development AND requirement management. You'd be amazed how quickly the industry is moving to iterative development practices (Agile SCRUM is just one, there are many, many other alternatives).

- If you perceive there being higher overhead in your day to day work with Agile vs. Waterfall, it's overwhelmingly likely that you aren't really using good Agile practices. It's VERY easy to twist Agile into some really crazy and unhealthy practices and processes, and it can be really difficult to transition at first (especially for former managers, leads and analysts).

- The actual velocity over a release cycle for healthy Agile teams (whether new, hybrid or fully agile) is always measurably higher (at least, in every single customer we've ever talked to). Note the "healthy" term there, because that's critically important.

- It's VERY hard for companies to adopt Agile Development and then integrate with traditional requirements processes. And, it's even more difficult to adapt to Agile management tactics because it totally redefines job roles, titles and responsibilities. This is still a very young area and lots of people are trying different approaches to bridge this gap.

- Agile is about collaboration, but not just between developers and management. It's also about the collaboration of stakeholders, customers and test in the iterative lifecycle.

3/4/2011 8:34:25 AM

Stimwalt
All American
15292 Posts
user info
edit post

In my situation, our customers are government agencies. What we have discovered as a group, minus management, is that our projects have compounded dependencies on the customer. The challenge in reaching "doneness" on a deliverable, when your customer is non-responsive, almost defeats the entire purpose of the collaboration in the first place. I understand that Agile's benefits completely depend upon the industry that you work in, and in my case, it seems like when the customer feedback is imperative to the iteration process, the philosophy of agile becomes obsolete.

We have also discovered, minus management, that our company has many cross-dependencies, not involving the customer. This makes our "sizing" of stories very difficult to predict. In turn, developers are padding their time to compensate for the uncertainty, while management encourages us to "fail forward" with our projections, in order to determine our "highest velocity." Perhaps the company is simply too small in size to accommodate this methodology to see it's advantages.

I have my concerns with this methodology within my industry. While I can see how this would be very effective in many industries, it seems that to truly be agile everyone must collaborate in order for this to be a success, and not just those within the company. Perhaps we are experiencing a poor implementation of Agile, and it is not the fault of the process, rather the way it was demonstrated to us. Just like any method, it has pros and cons, which must be weighed against the way the company does business, and with whom.

3/4/2011 11:05:48 AM

Tarun
almost
11687 Posts
user info
edit post

add to my topics

3/4/2011 12:04:54 PM

qntmfred
retired
40371 Posts
user info
edit post

can you elaborate on what you mean by "cross-dependencies, not involving the customer"

3/4/2011 1:03:02 PM

Stimwalt
All American
15292 Posts
user info
edit post

Sure, by that I mean cross-team dependencies. One developer may have created a custom interface for a customer several years ago. That customer has requested and paid for an enhancement on the interface, but the original developer that created it, is already booked full of other stories. So rather than re-invent the wheel, and re-design it from scratch, or over-commit the original developer by assigning it to him, a different developer takes on the task. However, because of the nature of our development standards, the different developer would still require collaboration with the original developer, which will skew both of their original sizing estimates resulting in an undesirable retrospective. Theoretically, in the long-term, this can spread thorough product knowledge around the company, making everyone more self-sufficient, and knowledgeable in regards to all of the deliverables we are obligated too. However, it is perceived as "padding" the stories by the Agile folk, when in reality, it indicates work force resource issues and a culture of historical cross-dependencies within the company. This isn't unique to our company, but it may be more inherent to smaller-sized companies.

For those of you that are Agile, how do you handle cross-team and customer dependencies within your swimming lanes? If you don't use swimming lanes, do you use Calendar views instead, and what are the pros and cons of the Calendar view method?

[Edited on March 4, 2011 at 1:59 PM. Reason : -]

3/4/2011 1:57:21 PM

Noen
All American
31346 Posts
user info
edit post

^The inter-team dependency problem has been a pretty big one in our adoption too. For us at least, it's been a reflection of two different root causes though.

The first is that it has been difficult to transition from "feature" based teams into "agile" teams. Even now, our development teams are still loosely organized by major feature areas although there has been a slow movement toward being scenario or epic based, rather than functionality based.

This had been a big problem at first, because our planning and management process is based on narrative scenarios, or flows through the product. But the teams were being organized in the pre-Agile way of being based around a core piece of functionality. This led to a TON of inter-team dependencies that really started to stack up.

Changing the teams' focus to be more scenario/epic based reduced the dependencies a bit, and perhaps more successful has been that teams have been communicating and learning from one another (which leads to the second problem/solution).

The second root cause has been specialization of knowledge. We have longstanding domain experts in different areas of the product (which is exactly like what you've described). There has been a LOT of sharing, brown-bag learning sessions and communication between teams to learn each other's areas and code.

This has been going on now for the past 9 months or so and it is beginning to pay dividends now. Teams are no longer being blocked to wait on a knowledge expert, and the entire organization is now becoming MUCH more adaptable and flexible. The developers largely love it, because they get to learn new things and share with each other, and there's much more freedom for the teams to pick the stories they want without having to worry about resourcing issues.

/words.

Your customer dependency problem is, unfortunately one you can't do much about other than in contractual agreements before the project starts. If you have an unresponsive customer, then Agile becomes really difficult to do well.

I think your worries about "padding" of user stories is actually a totally appropriate and good thing. Estimating user stories gets better and more accurate as the unknowns go down (aka as the team learns their domain better). This doesn't happen in a couple of sprints, and it's a VERY well established practice for Agile teams to only estimate stories for 40-60% of the total time available in each sprint, to allow for spikes, bugs and learning as well as unexpected resource changes (sickness, vacation, holidays etc).

Other than the customer issue, it actually sounds you are on the right track and just going through the pretty normal growing pains of Agile. The important thing isn't to solve all of these problems immediately, but to come up with long term strategies to minimize and recognize them before they become a problem in the future. I think you've got the right long term outlook in terms of benefits

In terms of handling dependencies in swim lanes (aka task boards), there's a dozen different ways I've seen companies do it, I'd be happy to follow up with you via PM with more specifics that may be useful in your situation.

3/5/2011 12:12:19 PM

msb2ncsu
All American
14033 Posts
user info
edit post

We do State Government Development method: each person works independently on their own randomly assigned projects, there is no communications between developers unless its about what was on TV last night or what they just saw on the internet, there are to be no design specs and clients can change their requirements hourly if they so desire, project management consists of "are you done yet?" responded to by "no, probably another month or two" until the client no longer needs the project or they call their buddy/cousin that's a state representative or in the governors office and we have to bang out the final bits of code in a week, project manager = time sheet collector and handler of gossip related tiffs... you get the picture.

3/5/2011 12:29:14 PM

kiljadn
All American
44689 Posts
user info
edit post

^ sounds brilliant.

3/5/2011 2:13:02 PM

Tarun
almost
11687 Posts
user info
edit post

hahaha

3/5/2011 7:39:24 PM

Quinn
All American
16417 Posts
user info
edit post

^^^

lol

3/6/2011 12:47:53 PM

afripino
All American
11304 Posts
user info
edit post

^4 sounds exactly like my group! We just kinda do our own thing and get shit done. Didn't realize there was a technical name for that methodology.

3/6/2011 6:06:52 PM

EuroTitToss
All American
4790 Posts
user info
edit post

^5 ditto. everything you said is spot on, except I actually like my manager.

3/6/2011 6:40:18 PM

BigMan157
no u
103352 Posts
user info
edit post

aha

3/6/2011 7:33:09 PM

Stimwalt
All American
15292 Posts
user info
edit post

lol, that's the way we worked before agile. The good old days.

3/7/2011 8:16:52 AM

jbtilley
All American
12790 Posts
user info
edit post

I guess I'll post this here:

http://braindump.dk/tech/category/driven-development/

And add a few comments:

Waterfall - The project originally has a 1.5 year time estimate. The PMs go back and forth with the customer and the requirements documents finally get signed off after a little over a year. Suddenly there's only about 4 months to code the whole project (to meet that original deadline) so a massive team is thrown together. PMs threaten motivate team members because it's the coders fault that they are so far behind.

Get an impressive amount of work done with your team - almost getting back on schedule, then yank everyone off the project except for a skeleton crew when the project is about 80% complete. The remaining 20% of the project was all the really hard crap that no one wanted to get stuck with, so the remaining 20% takes the two people that are left on the project over a year to complete.

Agile - Lots of meetings, no documentation. You end up giving a lot of free work away because the customer will eventually game the system. There's no documentation, so they'll come back a year after a unit is completed and say things like "In that meeting last year I remember us saying that it would do this instead of that."

In the beginning the "I remembers" are reasonable and often truly represent what the customer asked for. At the very end of the project the "I remembers" are completely outrageous, where you know that the customer is fully aware that they never said anything close to what they are now asking for in those original meetings. It doesn't matter though, the customer is now trained to get free change requests. Don't bother looking for that e-mail that proves what was originally decided upon, it won't make a difference.

The customer often plays this game because they are not ready on their end, and they want to save face with their boss. They will come up with reasons why your stuff isn't up to par to shift blame to you. "Well the text on screen #509 says field reporting system instead of field reporting systems, so we can't even begin to think about system integration or customer QA. It's their fault we're behind."


[Edited on March 7, 2011 at 9:22 AM. Reason : -]

3/7/2011 9:17:42 AM

Noen
All American
31346 Posts
user info
edit post

Quote :
"Agile - Lots of meetings, no documentation."


That's like saying

Driving - Lots of speeding tickets, no instructions.

Sure, if you just buy and car and drive the shit out of it, you're going to have all kinds of problems. Agile SCRUM isn't a "pick the practices from the barrel" strategy. You can't just ignore entire parts of the software development lifecycle and not expect consequences.

3/7/2011 10:11:25 AM

jbtilley
All American
12790 Posts
user info
edit post

^I'm not saying that's what agile is, I'm just saying that's what my experience has been when people tried to put it into practice.

You're right, you can't just ignore parts of the software development life cycle, but those sorts of things will inevitably happen when people try to put it in practice and iron out a system that works. Again, not to say any development method wouldn't suck when people screw it up, just relating one of my experiences... and yeah, agile - now we don't have to document - was definitely one of them.

[Edited on March 7, 2011 at 10:36 AM. Reason : -]

3/7/2011 10:16:00 AM

shoot
All American
7611 Posts
user info
edit post

Agile is the best and the most popular one, right?

5/3/2014 4:08:41 PM

lewisje
All American
9196 Posts
user info
edit post

waterfalls are pretty agile amirite

5/3/2014 9:03:51 PM

d357r0y3r
Jimmies: Unrustled
8198 Posts
user info
edit post

Agile Is Dead (Long Live Agility)

http://pragdave.me/blog/2014/03/04/time-to-kill-agile/

5/4/2014 10:21:33 PM

EuroTitToss
All American
4790 Posts
user info
edit post

http://programming-motherfucker.com/

5/5/2014 1:57:02 PM

shoot
All American
7611 Posts
user info
edit post

What the hell is that??

5/5/2014 2:20:38 PM

Sayer
now with sarcasm
9841 Posts
user info
edit post

Agile in software development? Absolutely. Agile in the rest of the organization? Them bitches be crazy.

I've gotten the chance recently to run some talent acquisition projects for more than one company around the country where the entire organization has embraced Agile methodology from the top down, not just the development teams.

The development teams were all cross-functional and co-located, and those guys loved every aspect of Agile. And it made sense. Plus having the managers above you using the same methodology you do in your day-to-day makes some things easier.

But having everyone in the organization running their day through Agile methodology was a headache. Everything is not better through an Agile lens, and there was a lot of unnecessary work just because "Agile".

5/6/2014 6:19:56 AM

Noen
All American
31346 Posts
user info
edit post

^It is, if the principles are embraced. I've many attempts at "Agile" at an organizational level. I've seen a few that work amazingly well when executive management actually operates with Agile/Lean principles.

Most organizations however just believe that by changing their review schedules to be every 3 weeks, that makes them Agile. Or that letting "customer feedback" drive decision making makes them Agile. Or that not making any decisions at all and constantly starting over is Agile.

Usually a combination of those three.

But I have seen it work, and when it does, it's pretty fucking glorious.

Unfortunately, a healthy Agile environment is easily corrupted by leadership with all too common personality defects: the Napoleon complexes, the micro-manager control freaks, the narcissists, the ego junkies, etc. It takes a management chain that actually believes in the process and trusts their subordinates to make good, informed decisions. Which is pretty rare to find it seems.

5/6/2014 10:13:35 AM

Specter
All American
6575 Posts
user info
edit post

pure Agile could work for us, but the problem is nobody in our organization wants to adopt it. Our scrum masters have no discipline, and when a "stand-up" turns into an hour-long bitch fest about why the builds are broken or why some other feature team is blocking them, nothing gets done and most folks feel heavily burdened by the constant meetings.

We have PO's on our scrums but they are never present in stand-ups, and when they're there they offer nothing. and when a sprint comes to an end and we discuss what US's got done and discuss what we could demo, it turns out that shit never got accepted because there was no fucking acceptance criteria in the US. i would so much rather work for a start-up that did Agile properly if the process was actually followed than at my fortune 500 where adopting new things (like transitioning from clearcase -> git, for example) doesn't take years.

5/7/2014 11:13:50 PM

Noen
All American
31346 Posts
user info
edit post

^see if you can make a case to bring in an outside trainer/consultant to teach Agile scrum to the team as a whole. They do intensive training for several days and usually follow the team for a day or two.

This made a huge difference for several teams I work and worked with, allowed the team to learn the difference between the intent of the principles and their misunderstandings

5/8/2014 11:58:36 AM

Novicane
All American
15409 Posts
user info
edit post

human factors > your bull shit development methods

5/8/2014 8:31:12 PM

aaronburro
Sup, B
52712 Posts
user info
edit post

hah, sounds like shoot just heard another buzzword and doesn't know what the hell it is

5/9/2014 12:28:57 AM

skokiaan
All American
26447 Posts
user info
edit post

Been at 2 different (big) companies where teams tried to do scrum and it failed. Turned out to be a way for product managers to micromanage engineers without giving engineers any control of the product. So, the direct line between engineering and customers did not exist, which is the only thing that makes the tedious scrum artifacts worth it.

Also, if you actually have talented engineers, they'll figure out how to work efficiently. Any canonical development methodology is unnecessary.

[Edited on May 9, 2014 at 12:57 AM. Reason : .]

5/9/2014 12:36:19 AM

parentcanpay
All American
3186 Posts
user info
edit post

I think Agile is better simply because it is more adaptable and flexible than Waterfall is. That being said, I think a lot of companies overdo it on the collaboration.

5/9/2014 3:04:17 AM

Noen
All American
31346 Posts
user info
edit post

^^ This is by far the most common failure mode I've seen too. Managers look at Agile scrum as a new way to break down work and manage risk, while getting even more granular oversight into team activity.

That's not scrum. What you were doing wasn't agile and wasn't scrum. And in every case I've seen, one or two days of an on-site trainer will donkey punch those managers into shape.

Managers in scrum basically do three activities: engage with customers, groom the backlog, and keep developers unblocked. They *may* be scrum master, though that's usually a bad idea at first. They may run sprint planning, though that's usually also a bad idea at first.

5/9/2014 1:45:24 PM

skokiaan
All American
26447 Posts
user info
edit post

We've all done the training

5/9/2014 3:11:35 PM

skokiaan
All American
26447 Posts
user info
edit post

Scrum was designed to be hard to implement so that they can make a lot of money selling training.

5/9/2014 4:20:44 PM

Noen
All American
31346 Posts
user info
edit post

^no its not. The hard part is getting people to change their mindset and way of operating. Going through classroom/seminar training isn't the same thing as having a consultant on-site, in person helping to redirect the bad implementation.

Either that, or you got a really shitty trainer. There is a lot of variance in the quality of "certified scrummasters". I know the first team I worked with that went through the shift to Agile spent several months looking for the right trainer for them.

But it also helped that the senior leadership spent those months learning deeply about agile, to understand the value, principles and pitfalls themselves.

5/9/2014 10:57:51 PM

AntecK7
All American
7755 Posts
user info
edit post

In my limited understanding of both..

There is a time and place for each, Waterfall style works best with clear requirements in a mature organization.

I.E. you don't need Agile processes when your work is related to building a airplane control system that will be used, virtually unchanged for 30 years. It's clear and defined, you don't want rapidly developing requirements because you have 0 room for error.

If your building a Web 2.0 site, or some product that must adapt to changing needs, it makes good sense, especially when your not a overly mature organization.

I think some of this focus on Agile stuff is driven by the web and the need to get the next biggest thing, agile enables that. Its great for when you want to add a new way to "Poke" people on Facebook and compete with other companies on a fast paced 6 moth cycle, where the next big "Feature" could make or break you.

It's not however what you want when your dealing with Operating Systems, Business Software, Flight Control Systems, or Power Plant control systems.

I sometimes feel that agile enables cloud software. Which will be a challenge for certain businesses. People working in Adobe CS don't want to find out that their UI has changed every 6 months. Nor do business software users want Microsoft 365 to "Improve" the experience by hiding buttons and re-arranging the UI while stripping colors out.

5/10/2014 1:24:45 AM

 Message Boards » Tech Talk » Agile vs Waterfall - Software Development Methods Page [1] 2, Next  
go to top | |
Admin Options : move topic | lock topic

© 2024 by The Wolf Web - All Rights Reserved.
The material located at this site is not endorsed, sponsored or provided by or on behalf of North Carolina State University.
Powered by CrazyWeb v2.38 - our disclaimer.