agile > chapter 3 iterative and incremental execution and delivery > 9 agile engineering practices

Agile Engineering Practices

We apply agile where there is a high concentration of knowledge workers - engineering, UI/UX, software engineering, education, etc. This article focuses on some recommended engineering practices that will help in agile projects.

Simple design

We design by subtraction - if a feature does not add business value to the customer then there is no use in including it just as gold plating as this is a sure way to waste time, effort and money

Refactoring

We change the internal workings of a system or product so that it performs better without deviating from its usual function. Something as simple as rewriting a method for a lab (to make it more approachable to students) can be considered as refactoring.

Test-driven development (TDD)

Unit testing

Here is where we test every component in a system to ensure we minimize wastage and achieve the desired effect - a chain is only as strong as its weakest link.

Continuous integration

We put systems in place to automate the integration of new parts of a system. We do not wait until we have many changes backed up before we hurry to make patches.

Pair programming

Two pairs of eyes are better than one.

Technical debt

This is the cost incurred by the additional work required to produce and maintain a system. These tasks do not add business value to the product or system. Some examples of technical debt are: