Agile Development

Learn Access VBA With The Smart Method.  Microsoft Access tutorials, Discussion Forums, Training Courses and Support info@learnaccessvba.com
Home Home  Site Map Site Map  Free Tutorials Free Tutorials Application
Development
application development Buy The Book Buy My Book Classroom
Courses
Classroom delivered courses Contact Contact Details
The Agile Development Methodology
A new alpha release every day?  It sounds impossible, but with the colossal productivity of the Microsoft Access environment and a vast array of pre-written software modules we've had very impressive results with the agile approach.
 
The agile concept
Agile development delivers a working application, free of all known bugs, at the end of each development iteration.  The resulting alpha release is then delivered to the client for testing and feedback. 

Most developers practicing agile development will take between one and four weeks to deliver each alpha to the client.  We take the methodology to the extreme by usually delivering an alpha every day during development!

The agile method emphasises face-to-face or telephone contact between the developer and business experts rather than written documentation.  Working software, rather than progress reports, communicates success to the client during the development process.

agile development
Advantages of agile development
  • Very high levels of Customer satisfaction and confidence by rapid and continuous delivery of working software
  • Working software is delivered frequently (usually at the end of each working day)
  • Working software is the principal measure of progress
  • Even late changes in requirements are welcomed
  • Close, daily cooperation between business experts and developers
  • Face-to-face or telephone conversations are the best form of communication
  • Projects are built around motivated individuals who fully understand what the business needs
  • Continuous attention to technical excellence and good design
  • Simplicity
  • Regular adaptation to changing circumstances
Disadvantages of agile development
  • Requires very experienced developers who understand business and administration as well as software development
  • Because the requirements of the application are largely unknown at the beginning of the project it is difficult to provide an accurate time and cost estimate at the beginning of the development cycle
Agile development in action
Our first step is to create the database by a brainstorming session.  At this session a very experienced developer with a full understanding of accountancy and business processes will sit at a table with one or more business experts.  The business experts need to know exactly what the new system needs to achieve.

During this session the schema (all tables and relationships between them) will be created.  The developer will continue to assert the information provided by asking questions such as: "One client may have many loans but is it always true that a loan can never  be shared amongst multiple clients"? It is often the case that some of the information provided needs to be corrected as assertions are found to be incorrect.  We've often finalised databases with 20-30 tables in a single day using this technique.

When the database is complete a first alpha release is created.  This may contain many generic elements such as user name/password log-in screen, static data maintenance forms and mail-merge facilities.  These are created from pre-built code modules from our code library.  Everything does not need to be created from scratch. 

The application framework (alpha release 1.0) is usually delivered upon the second working day.

Every day (or at least most days) upon which work takes place thereafter, a new alpha release, free of all known bugs, will be delivered to the client for testing with release notes detailing all of the new features added since the previous night's alpha.  The client will then test the release and provide feedback (such as "we need a field for date of birth on Customer records", or "There's a bug when I add a new contact...").  This feedback is then usually incorporated into the next night's alpha.

When all features are implemented a freeze is declared on any more new features and the release is declared Beta Release 1.0.  From this point forward the application is extensively tested and any bugs found fixed.  When the client is confident that no more bugs remain the application is declared complete and can go live as release version 1.0. 

If required, documentation and training materials can be written at any time after the first beta release.  One of the advantages of rapid development is that the business experts who tested the incremental alpha release are already fully trained expert users of the application and ready to work productively from day one.