Agile development & management



In this section you will learn about:

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



Subscribe via RSS

Galaxiki, a fictional galaxy that anyone can edit. Get your own solar system now!





Free Tibet!







Jos Kirps

About me
Blog
Contact
Important Stuff

My Projects

CorneliOS
Galaxiki
Joopita
OLEFA / AFELO

Cool Stuff

Agile Development
Books
Marketing
Music
Movies
Physics
Technology
Various

Blog

Recent Posts
Happy Birthday, Galaxiki!
Changes
Did You Ever Hear Of A ZISC Processor?
Happy birthday, Max Planck!
A short history of the PowerPC as a desktop processor

Last comments
Gee, thanks! About time! <---- Irony.
Wow the grand pappy of Unix. that is pretty c...
wow, pretty cool. I always wondered who was i...
When did MJ learn to play 10 instruments? He ...
Hi, It is just mapping Artificial Neural Net...

Categories
science
astronomy
music
movies
software
hardware
marketing

Archives
July 2008
June 2008
April 2008
more archives...

Sponsored Links

AddThis Social Bookmark Button
home page