Agile Methodology

by Kenneth Raz Balana

Using agile is like key to success by agilist, it is to develop a system through a given period of time accompanied with evolving its features every single day of the work flow, focuses one area at a time. In agile we use the methods: requirements, design, implementations, test and deploy.

In some reason, agile is similar as Divide and Conquer algorithm. That is to divide the main problem into many sub problems, solve all the sub problems put it together and it will solve the main problem.

Like Divide and Conquer Algorithm, agile use different strategies to come up with solution in every sub problems in developing a system. Some developer said that agile is “created before implemented” methods. Solve the sub problems earlier so that the company or the developer reduced its problem in a short time. Even if it is still in work process, the developers passed their deliverables continuously.

Iterations is well known when we talk about agile, it is cycle of work flow that is capable of updating the features that has done earlier. This is the fastest way to develop a system with a satisfying output but first you have to provide a time boxed or Gantt chart to know the deliverables that has done and not. It is all about time management, example when the client wants to own an application; first thing to ask by the client is of course how much will it cost? The developer or the manager has to explain all the instances before a conclusion. If the manager says that the project will cost ten thousand pesos per month and the project will be deploy in five months he/she will confidently answer the client question. But there is a risk, if the manager assured to deploy the project without any hesitation to the days that the application is created. The options are provided by the manager but only the client has the authority to start it and take the risk or not. If the client pursue the application the manger can now talk to his/her group and start the application by scratch, lets add something in this, imagine we have x, y and z features that has to be in the application, if the group finished the x earlier than it could be of course we can start to add y in advance and could be also the z. that is just a simple time management with a lot of collaboration by the manger to his or her group or the group itself and the client.

To make agile work, we need an honest and collaborative developers and smart engaged client. Honest and collaborative developers talks about any good and bad possibilities that could happen along the systems workflow. If the developers see any instances that make the application looks like a Childs work because the clients wants to add something that is not totally useful in the said application, the developer should have suggestions to the client whether it should replace or not. Smart engaged client is an open minded one, it is to collaborate to the developers, always wanted an update to any task the developers done and not start yet. The client & developers constantly work together to prioritize what is going to be the next feature that provides the most business value.

If we compare the agile to the waterfall the agile works better in creating a system, waterfall is just a step by step procedure but it never change the output that is being done before unlike the agile it is a cycle that the developer must always make an update to a certain task or feature in deliverables that are finished over and over again but just a portion to prioritize the task that are not already made. When the deliverables are done by portion it is possible to pass to the client to ask for feedback so that the client satisfy every single time and not hoping for something because he/she was just hoped that the application is done by five months, it is like wasting time to give all the information’s to some people by not giving anything in return.

In present according to Wikipedia we have twelve principles included in the agile methodology the customer satisfaction by fast delivery of useful software, welcome changing requirements, even if it is overdue in development, working software is delivered frequently, working software is the principal measure of progress, sustainable development, constant pace is able to maintain, business people and developers has daily co-operation in between, the best form of communication is face-to-face conversation, in motivated individuals the projects are built around, who should be trusted, continuous attention to technical excellence and good design, simplicity, self-organizing teams, regular adaptation to changing circumstances. Also we include the Individuals and interactions over processes and tools which mean the interactions by two parties to come with the solution according to the problem given by the customer or client.

Working software over comprehensive documentation, it is like huge document rather than small but many documents gathered, this is to do the iteration which is to study the huge documents so that part by part the developer can do the application because they already the solutions to the problem.

Customer collaboration over contract negotiation sometimes the date that the application or the system deployment is being adjusts because of some reason that makes it long. And it is also included to the budget, customer will not provide extra money for extra time that the application will consume even if it is overdue. But if the date Is prolong because of the features wanted to add by the customer that is not in the documents or plan that they have customer or client have to pay for a that extra effort for another features to add. Responding to change over following a plan, as I said, following plan makes you wrong in some way, if the system analyst is wrong to his conclusion to provide better solution to the problem it might be a trash, and will never use. It is better if we always consult to the client because he/she is the source of all the problems to come up with the answers.

Comments