Guidelines and Tips for Iterative Software Development
When developing the iHRIS software, we follow an iterative software development cycle. Iterative development is a process that supports development of a system incrementally. The process builds in regular and frequent cycles for feedback from stakeholders based on reactions by end users to a working, although incomplete, system. This enables the development team to deepen their learning and understanding of the system as development progresses and to flexibly adapt to changes in requirements as they come up. This process helps ensure that the end result will be a system that best meets the current needs of all stakeholders, yet can change or grow to adjust for new and unforeseen needs.
In this way, the iterative development process reflects what most of us actually experience as the reality of software development, that requirements cannot be frozen and new requirements are frequently discovered once programming is under way. Instead of trying to impose artificial deadlines and milestones on a project, as is common in traditional models of software development, the team can tailor the development process to conform to the situation as it actually exists, and therefore increase the chances for success.
It is our intention that locally based developers customize and expand the iHRIS software to meet their needs and requirements. That is why we released the software under an Open Source license. I have posted a series of articles in our HRIS Strengthening Knowledge Base that provide guidelines and tips for developing software iteratively, including gathering requirements and managing the process. The articles are posted on our wiki, which is open to all collaborators, so we welcome any suggestions or improvements to them.
The full series of software development articles are:
- Guiding Principles of Iterative Development
- Software Development Project Management Guidelines
- Visioning: The First Step in Software Development
- Requirements Gathering and Analysis: The Second Step in Software Development
- The Iterative Development Process
- Understanding Use Cases
More articles may be posted over time, so keep visiting the Knowledge Base.