Thursday, April 26, 2012

Why do caged birds sing, or being agile in a waterfall world

I have been doing agile since the late 90's, even though I didn't know it at first, so being customer-centric just comes naturally to me, and trying to work with systems to have systems that promote better software development, rather than hindering development.

Unfortunately, many companies seem to be stuck in a rut of wanting requirements finalized before any changes can be made, and requiring a large amount of paperwork in order to move any software from one environment to another.

I have been in two companies that either had a system in place to help developers get their job done, or I was able to help influence the system, so it was not in the way of getting work done.

Trying to help companies stuck in the waterfall rut change is a struggle, but one that may be worth fighting, as the end result could be a compromise where the system bends a bit in order to help alleviate the effort to do a quality job.

A simple approach is to ensure that unit tests are written, by you if no one else, and to show the benefits of unit testing, in debugging and the quality of code released.

If there are many manual steps in order to move software from one environment to another, work to get permission to write programs to help automate the task.  For example, if files must be updated in order to move software, then a program could do the software promotion, and document what was moved, why and when, and if possible, what features were moved.

For example, at one job I wrote an ant script that would compile, test then increment the version number when it built the war file, and zip up the source code that was in that war file, to meet the business needs, otherwise I was having to do these each time.  I also had it possible to deploy the code, if I chose, so with once command I could meet all the needs, and this was around year 2000.

For mobile application agile methodologies are the only approach that will work, as, no one can adequately figure out how a UI should look, as, once it gets on a phone there will be comments that UI elements need to be shifted, or, there may be some other functionality that becomes important, so, the best approach is to start with a UI, get it to the testers quickly, and then begin to add functionality, and get the feedback as to the usefulness of the program.

No comments: