Agile development & management
In this section you will learn about:
- My own agile work
- Agile software development
- Agile marketing, agile management, agile company
My own agile work
I started to test agile development methods in late 2005 and early 2006, the first project I (re)launched using agile principles was
CorneliOS in early 2006 then, followed by the
Galaxiki system software. I moved all of my projects to agile development within 2006, except for
OLEFA which went agile in July/August 2007.
Both
CorneliOS and
Galaxiki are based on methodologies I'd call "Agile Management" or "Agile Marketing", and I'm quite satisfied with the current results. The result of my attempts to unify Agile Development, Agile Management and Agile Marketing is
The Joopita Project.
Agile software development
Agile software development can eleminate many of the problems with traditional / classic "waterfall" development methods, it offers several advantages (better software quality, faster releases, meeting deadlines,...) and can - if applied correctly - make everyone happy, from the management (better software and faster releases may mean more sales in future) to the developer (better results, less working hours, less stress).
You may have noticed that most modern companies (Google for example) have used Agile methods since their first days in business, and even the more traditionally oriented large companies (like IBM, Microsoft or SAP for example) are now moving more and more work units to the Agile galaxy. So what is it about, and why are agile companies more successful than their competitors?
There are many agile "flavours"
Before going into the detail I want to make clear that this page describes my personal approach to agile development - there are many agile methodologies, like Extreme Programming (XP) for example. I think that there is no "perfect method" for some company or some project, it's best to define your own "agile framework" for your personal environment. The ideas I describe here are those of the "Joopita Scrum Project", which is my own "agile management, marketing & development framework", as described in the "Joopita Agile Method" (JAM) document. An agile framework should be agile enough to allow changes to itself, don't you agree?
Agile development vs the traditional waterfall model
First of all I'll tell explain why "classic" or "traditional" software development methods just don't work (some studies even claim that over 80% of all software projects fail when traditional waterfall methods are applied). The "waterfall model" means that 1) you first analyze the customers needs (requirements specification), then 2) you "design" the software (define what it shall look like, what it shall do and how this shall be achieved), then 3) the software is being developed, 4) the software is "integrated" (test installation), 5) it's tested and debugged (verification), then 6) the customer's end production system is being installed and 7) it is maintained.
Makes sense, doesn't it? So why doesn't it work? The answer is not that simple, but I think we have two basic factors that cause problems: a) developers are human beings, not robots, and software development is not "mechanic" but highly affected by personality and emotions, and b) the chaos theory (including the butterfly effect) that tell us that is simply cannot work (but don't make the mistake now to make the developers responsible for the chaos, that's just an inevitable effect).
Ad a) The "waterfall" model has been inspired by industrial production schemes, and this simply doesn't work with software development. Developers cannot be compared to robots, and programming is always something very "personal". Tell 10 developers to write a small piece of software, and you will get 10 completely different solutions. Software development is an art, not a production process, and that's why it's largely affected by emotions and moods.
Ad b) First of all the "requirements specification" maybe a good starting point, but you should NEVER rely on it. It is simply impossible to determine what the customer really needs, and during the development process the requirments are even often changed by the customer himself. Same thing with the "software design" - it may be a good idea to do SOME planning before you start write code, but you CANNOT plan such a complex thing as software is. Another issue is that problems are only detected far too late and sticking with the initial static plan will slow everything down. The result is that the software will not be released on schedule and/or it will become much more expensive then previously expected.
So how and why can agile development help?
Still interested?
Go ahead and get to the next page to learn more about the advantages of agile software development
Agile marketing, agile management, agile company
The basic principles of the agile methodology can also be applied to marketing, to the company management or to the entire company as such. More information about the agile company will follow soon, so make sure to check back from time to time!
©1996-2007 Jos Kirps | All rights reserved |
Site Map|
rate