Friday, October 4, 2013

AGILE: Yay or nay?




AGILE is a highly used method that many companies have used in handling the development process. It's manifesto is as follows:

We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:

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

That is, while there is value in the items on
the right, we value the items on the left more.

And so basically what this means is that to have a better chance of succeeding in making a piece of software as a team, one should focus on the items on the left over the items on the right even though both items are important to the overall success of the project.

However, their methodology is bad on all accounts, as tools are a very important part of the process when building pieces of software as using an IDE's (Integrated Development Environment) breakpoint feature to process code one line at a time is very important to catch bugs that would have been very difficult to find using such as notepad.

Comprehensive documentation is also a huge necessity as people do not always stay in the same position. And thus the maintainer of the code changes around, and if there is poor documentation the resulting program will be a huge mess of hacks to piece everything together, whereas with properly documented code the new maintainers can easily understand how the program flows together.

Contract negotiation is also very important as that sets things in stone from the start so that one does not have to constantly rewrite things cause the customer forgot that they wanted to implement this feature or that one which they should have thought of earlier to save your team time from rewriting the program to allow such a feature.

And that relates to following a plan as it's set things in stone. This is good thing for the team creating the program as changing one thing that the customer may be simple may actually be a huger undertaking due to the approach the software team took in making the product before this new feature was requested to be included in the final product. 

And that's why AGILE's methodology in creating software is a poor one as it basically favors the customer who is paying for the program over the ones who have to poor sweat and blood into creating it, as it promotes the idea that the customer should be able to change willy nilly even though they should have explained everything clearly in the beginning so that the developers do not get headaches from having to change things up to satisfy the customer's new demands.

2 comments:

  1. Hi, Luke,
    I agree with you on Agile. It as a popular project software methodology has two sides: positive and negative. It has many advantages like regular adaptation, face-to-face discussion and close operation between customers and developers, and so on. Its' disadvantages are apparent. For example, one of its' features is self-organized team. Self-organized will often lead to a special situation: senior programmers take the decision and newbie programmers has no place.

    Your post is informative and interesting. Hope see your new post soon about Agile.

    ReplyDelete
  2. Hi Luke,
    Any software process cannot be 100% right or 100% wrong! You have mentioned some important points by giving out the pros for your claims. I do agree that tools, documentation, etc are necessary to create a successful product. As per my understanding, Agile gives importance to customers, but it also gives them some responsibility. As I have worked in software development team earlier and we used to follow Agile, I can say that, it will help team member bond and plan things in a better way via scrum so that we have small deliverables for the customer after each sprint. In this way the team is not burdened at the end of a year with huge deliverable. I know I have emphasized more on tools and documentation but these are just examples, the same is for other issues too. I cannot say Agile is the best. But it does help!

    Good job on finding cons because everyone else will write good things about Agile as it is the topic of discussion everywhere!

    ReplyDelete