Joe
We had a two day seminar in school about agile development methodologies, in particular Scrum. Have you heard about it? Have you ever tried it? How was the experience?
For those of you who don't know Scrum, I wrote an article about it in my blog:
http://www.tech-thoughts-blog.com/2009/11/scrum-agile-framework.html
And you can always find more detailed info on how things work using Google/Wikipedia.
xterm
Fails on large scale projects, there's no alternative to planning.
Nice blog rahmu.
Joe
Apparently the advantage is that planning is done "on the way". This would allow the plan to evolve with the product together, making it easier to make changes. I haven't tried it whatsoever, but this framework is gaining more and more popularity in the business world. IBM is starting to use it. Microsoft has recently published guidelines to develop security rapidly using this method. Many great french names (Bouygues, Thales, ...) all have an "agile" division using it...
Thanks for the comment by the way. Feel free to check it from time to time and comment. I keep it updated as much as I can.
rolf
"- People who do the work are best qualified to make decisions."
I disagree. You can have enough skill to write good code, but still not enough experience to do decent planning.
Otherwise I like the idea of sprints. I know that some programmers (me included) are much more efficient with the sprint model as described than with ongoing development. Yet I wonder if there are any long term effects repetitively coding in this fashion.
xterm
rolf wroteYet I wonder if there are any long term effects repetitively coding in this fashion.
Critical client requests mid development cycle that were not planned for at the start.
Joe
xterm wroterolf wroteYet I wonder if there are any long term effects repetitively coding in this fashion.
Critical client requests mid development cycle that were not planned for at the start.
Exactly! At least scrum has an ongoing planning thing that allow you to integrate these mid-development requests easier. I think it's a good thing for scrum. The again this is all theory, how does it deliver in real world?
Ayman
Scrum is quite interesting, I don't have much hands on experience in the software development methodologies, but right now I am taking a brief intro in a chapter about the software development methodologies in an introductory course in IS. The teacher made brief explanation about the waterfall methodology, rapid application development, extreme programming, agile methodology, and she also talked briefly about scrum which is quite interesting but the explanation was not so informative and detailed. The book is relatively old and scrum is not mentioned.
Thanks to rahmu's blog post and wikipedia, now I have a little more knowledge about the scrum methodology. I will be diving in depth of all these software development methodologies concepts and applications next semester as I take the system analysis course. But since I am always curious I am looking for a book for understanding these concepts in depth before taking the course, so if you know of any good book please mention it to me. Thanks and have a good day :)
Joe
No need to really go deep into these frameworks. You just have to know about them in case you ever have to use them. Once you finish uni you'll probably join a dev team that'll impose its own methodology (most probably waterfall).
If you're interested though, I would recommend Ken Schwaber's "SCRUM Development Process: Advanced Development Methods". It's not a book, but rather a paper written by the man who made SCRUM popular.
Another really interesting 'agile' technique, the most popular one actually, is called 'Lean'. It was invented by Toyota in the 80s-90s and is heavily used in manufacturing today.
Ayman
No need to really go deep into these frameworks. You just have to know about them in case you ever have to use them. Once you finish uni you'll probably join a dev team that'll impose its own methodology (most probably waterfall).
If you're interested though, I would recommend Ken Schwaber's "SCRUM Development Process: Advanced Development Methods". It's not a book, but rather a paper written by the man who made SCRUM popular.
Another really interesting 'agile' technique, the most popular one actually, is called 'Lean'. It was invented by Toyota in the 80s-90s and is heavily used in manufacturing today.
I see. Thank you for all the information, I will give Ken Schwaber's paper a read and I will look into the Lean method which I guess I have heard about it in some economics course. Thanks again and have a good day :)
jeko
Interesting thanks. Though I believe it can work on big scale projects, see Mac OS X.
That's almost how things work at Apple (I've got a friend working there). As he told me: "I can even assign new tasks to Steve Jobs ;-)"...
There, project managers just make sure people go in the right direction and can get their tasks done for the next release.
In this model, developers gets very motivated by the "high level" of trust and "low level" of hierarchy...
As a counter-part, each one have a high level of expectations from everyone. Everybody is allowed to tell you that your part of the job is not good, not just from the boss. Thus they work longer and harder.
mir
Very interesting topic , thanks for the review rahmu
I do like Agile maybe cuz i am on the developers side.
I never worked on critical software , the nasa type of stuff , so i can't give feedback about where agile does fail... of course there will be always situations where agile is not the best solution or vice versa
but i think Agile should come with HR manuals on how to pick developers to join the team... otherwise immagine what the "Bad apples" will do to the team
I didn't know apple was on agile :) good fact i learned
Joe
but i think Agile should come with HR manuals on how to pick developers to join the team... otherwise immagine what the "Bad apples" will do to the team
I agree. I think it is the main challenge of agile frameworks.
Apple isn't really on agile. Not more than Microsoft, Google, Toyota, Procter and Gamble, Bouygues Telecom ... Most of these have agile teams inside the company. But you cannot have a whole organization based on an agile team.
sin
Agile is most suitable IMO for the following conditions:
- Deadline not very strict
- Client not very stupid
- Skilled developers with ambitions
- projects with heavy emphasis on GUI.
And in some cases, agile might be the only choice. This is mostly when working on a new technology or in a new field, like cloud computing. You can't go V-Cycle on my ass in cloud computing :D This is new shit
Joe
- projects with heavy emphasis on GUI.
Interesting.
Why do you say that?
rolf
jeko wroteThat's almost how things work at Apple (I've got a friend working there). As he told me: "I can even assign new tasks to Steve Jobs ;-)"...
Let him create a new task with the title
Bring Coffee
Lets see if Jobs really has a sense of humor.
(on a second thought, Steve Jobs maybe dont even check his tasks assigned interface.)
sin
rahmu wrote- projects with heavy emphasis on GUI.
Interesting.
Why do you say that?
I believe Agile shows its real efficiency in cases where measuring progress is done by delivering working prototypes to the client on a timely basis in accordance with the Agile manifesto.
Clients can mostly express healthy feedback on the presentation layer, and it's not their job usually to track other layers.
I think agile can be very helpful for websites for examples, but can prove tedious for abstract applications, such as a game engine or internally-developed libraries.
Joe
sin, have you any Agile experience? Is there anyone who proposes Agile in Lebanon?
sin
I don't claim that I have Agile experience, but I got some knowledge from my teachers and some books. I have a Master degree in software engineering.
Too bad, most software companies in Lebanon don't know what the hell software engineering is! They just get developers to start writing code without actual knowledge of software management. This is why you can never expect a healthy product to originate from Lebanon. The one and only methodology supported in Lebanon is "Don't care how you do it, just make it work!" (Including all the bugs, memory leaks and configuration incompatibilities).
Heck, most people here dun even know what UML is! Honest!
ahmadb
We tried to use scrum as defined in the text book but ended up using some features but not fully complying with it. We did the meetings, used the tools, had shorter (themed) sprints. but when it came to each individual sprint it was waterfall. I liked that approach because it allows you to introduce tasks you didn't plan for but on the other hand you still stick with the requirements and have a better chance at delivering on time.
This work was in the US. I am not sure they do anything like this in Lebanon. I'm not even sure the development team meets weekly at least once to update status and share information.
When it comes to it, the team is the one who counts. If you have a team who has proved themselves in several cycles, no matter the methodology, they will know it by heart and are comfortable with it. This gives them the advantage and a chance to deliver on time (which hardly works).