Agile Software Development

Agile Software Development

When you move into a furnished apartment, you don’t expect to find the beds, chairs and tables fastened permanently to the floor. You want to be able to move things around, to make your living space work to serve your needs.

You want your apartment to be configurable.

We like things that are configurable: flexible, agile, modular, multi-purpose. We like to know that we can change things if they don’t suit us. We like to know that we can use something again in a different way.

The software you use is like a furnished apartment. Except that, with most software, the ‘furniture’ is fastened to the floor. To change it around, and get it put into a different configuration requires calling a professional with specific tools to take it up and put it back down again – every time you want to do it.

You want your software to be configurable, too.

With the fast pace of today’s changing world, maintaining a team of highly paid IT professionals to keep up with the changes you need made to your software, becomes both costly and challenging.

There is a solution: agile software design.

Using highly configurable, agile software is a cost-effective strategy. It can lead to improved quality of software outcomes. It can shorten the development and testing cycles. It can enhance documentation, and bring the monumental task of software documentation down to manageable sizes. As well, it creates a vehicle for improved communication between the users and the technical implementation team.

To start with, identify common functions that are needed in multiple parts of your software application. Like a generic routine for saving data to a file or a routine for reading data from a file, which can be used in many scenarios for saving data to files and reading from them.

If you think of these capabilities as ‘building blocks’ or reusable modules, then you’ll realize how your software application can be built by combining these building blocks in various ways.

As in the case of the configurable apartment, you could create interior designs that make sense and works well for your needs by placing your furniture (or building blocks) in various ways.

But that’s not all.

Moving furniture is not always an easy task. Sometimes it’s awkward and heavy. Beds don’t fit through doors. Big tables don’t fit in small spaces.

The best kind of furniture is the kind that can be made even more configurable, so it fits anywhere. Software should be agile enough to allow all of the business-specific logic (policy and procedures, business rules, and so forth) to be expressed in a technology neutral format, which then can be interpreted by a computer, and carried out accordingly.

Just as you don’t call professional furniture removalists when you rearrange your living space in your apartment, you shouldn’t need professionals to come and move things around when you rearrange your software.

Business operators can be coached so that they themselves can adjust the configuration on the fly, with minimal to no technical help. You can make your changes quickly, with fewer steps, and less opportunities for error.

The benefits to configurable software systems (apart from not stubbing your toe on the leg of the wrongly placed sofa in the middle of the night) are substantial.

•   Less testing is needed. Once well-defined software modules are implemented, tested and documented, they can be used again without having to be re-tested.
•   Easier to understand. The technology-neutral language used to describe the business logic within the system is easier for business operators and software developers to interact with. More common ground, and less misunderstanding.
•   Quicker results. By putting reusable building blocks together, the business operator and developer team can put together prototypes together and make changes in little time. Real software users can give feedback early in the process. It reduces development time and increases quality.
•   Any size business can benefit. With coaching, businesses of all different types can successfully implement high configurable software systems, from small companies to multinational financial institutions and transportation corporations.

Looking for a more flexible, agile software system? AVIER can help you to start building smart, configurable software today that will let your business adapt to fast changing business environments with high efficiency.

Leave a Reply

Your email address will not be published. Required fields are marked *