I discovered Agile Methods while working for Docubase which put them in place at the end of 2007. I found them to be a realistic approach to IT project
I didn’t take formal computer training but learned to program through maintaining an application in C that I didn’t ever understand completely. I also used the “Kernigan and Ritchie” book.
Later I took training about Object Programming. During this course, I understood why Procedural Programming hasn’t been a solution for the long-term software creation and how but it is preferable to use Procedural Programming for smallest disposable programs.
After this course, I realized software which was conceived by project managers. I progressed to conceiving some programs by following the managers’ examples and studying from books.
Then, I took a traditional course about computer analysis. In 2004, the course only proposed the Predictive Methods Which leave an unsolved problem: how to manage the fluctuating needs of customers.
The discovery of Agile Methods allowed me to understand that this problem is inherent not to the customers themselves but to the Predictive Methods.
The Predictive Methods assert that all computer projects can be analyzed globally. A project comes to fruition in five steps.
· The needs analysis
· The writing of specifications
· The realization of project
· The tests
· The delivery
It’s called Predictive because it states that we may predict the entire usage situation for a computer project.
The agile methods suggest a totally different approach. They offer to construct a project in short steps which, apart from the last step, are finished by partial delivery.
The strength of these methods is to involve the customer and the user from the beginning of the project. They quickly have a usable partial product. Special users can quickly test the software and inform the team about any changes in order to obtain the project approval.
Since I known the Agile Methods, I have found them to be natural as much as pragmatic.
Later, while I read the magazine “La recherche”, an article about quantum physics allowed me to understand why Agile Methods is preferable. It spoke in particularly about the Uncertainty Principle.
One the expressions of this principle is:
The state of a system depends on the observer. The main representation of this is the Schrödinger’s Cat experiment. See this article in Wikipédia http://fr.wikipedia.org/wiki/Chat_de_Schr%C3%B6dinger
The Uncertainty Principle is certainly far from computer science. Yet it has an expression in computer science.
The customer needs constantly change as the customer develops what they want to achieve.
If this idea is true, the Predictive Methods can not be applied because the studied need is always different to the real need of the customer.
In fact in each step, it studies a need that the customer doesn’t have anymore. This is the most simple explanation as to why computer projects realized with this method need to change as soon as they deliver.
The Agile Methods give a solution to this idea. Indeed, they consider the change as part of the project and offer an organisation and tools to accept and manage it.
My experience and that of the project manager who I work with, shows me that this idea is true. This idea doesn’t contest the computer ability to solve complex problem. It simply works with the adaptability of humans.
This process is based on the idea that a person or a group of people adapt themselves systematically to the world around them. It simply uses the adaptability of humans.
When a customer decides to computerize a function in his company, he starts to study this function. From this moment, this function is going to change. First, some small bad functioning always exists. Next, the computer as a tool imposes some constraints which are going to change the way of working. These elements can be managed with predictive methods. But the changes in the mentality of customers and the users aren’t seen during the study. They come up when the software is delivered.
To be able to deliver a high-performance and a well accepted tool, it needs to know these changes as soon as possible and the only possibilities is to deliver as fastest as possible an operational software even partially.