Agile Engineering Practices

Agile is a whole with processes and practices as two pillars of Toyota Production System(TPS); Just in Time, Autonomation. Agile practices like Test Driven Development (TDD), Continuous Integration, Refactoring and Test Automation have massive impact in success of a project from the Agility perspective.

Test Driven Development

Test Driven Development is a rapid cycle of testing, coding, and refactoring. It’s the practice of always writing test codes before the code is written. Writing the tests first allows to see the list of tests that must pass. In addition, the risk of finding bugs/change needs late in waterfall software development are overcomed by obligatory writing classes which meet the requirement. Using test classes are also useful to handle additional business scenarios in the future rapidly.

Benefits of TDD shortly;

- increases the code reliability,
- increases the code quality,
- increases the understanding of the code,
- reduces error,
- ready to deliver code anytime,
- reduces the total cost of ownership.

Continuous Integration

Continuous Integration is the system that aims to continuously integrate the code generated by the development team with the codebase. The integration process can be automated by some specific tools that uses scripts and processes as frequently as needed. This way the compatibility of the new code is being tested automatically which also supports the integration errors being found earlier. In addition to that, unit test or system level tests can be done automatically without any human effort. Running tests frequently without any effort ensures that the system is reliable and stable which results in high quality products.

Benefits of Continuous Integration shortly;

- errors are able to find and fixed earlier,
- ease of monitoring and measuring the health of the system,
- testing is done over working software any time, not over assumptions,
- repeated human effort is decreased,
- able to deliver working software anytime or in a very short time,
- builds transparency in,
- helps building trust inside and outside the team.