AGILE DEVELOPMENT METHODOLOGY

The Data Warehouse Group is a Melbourne business providing data warehouse systems and services to Australian organisations.

We recognise the shortcomings of the traditional “waterfall” software development approaches and have developed an alternative process, based on agile philosophies. This robust development methodology reduces overall project risk whilst ensuring that projects are delivered on time, on budget, without frivolous features and meet the actual needs of end users.

Agile Development Process

For every project, we:

  1. Assess the business intelligence limitations of current data sources, identifying any quick-win areas if possible. This includes testing the access, extraction and transformation of the major legacy data sources.
  2. Agree with client an overarching strategy for the project that promotes high information reuse, scalability, cost-effective data management, and rapid iterative low cost business intelligence development.
  3. Set up project team, appoint stakeholders including operations and support people where required, and identify the customer’s key contact person.
  4. Work through a full software development cycle every 3 to 4 weeks, delivering small increments of working software. The iterative cycle includes planning, requirements analysis, design, coding and unit testing. As illustrated in the diagram below, we choose not to divide the project into sequential phases where all data is extracted from the source systems first, then moved to a centralized repository and so forth. We prefer a layered approach where each indicator is developed from source system to the presentation layer, allowing us to constantly test and refine the overall architecture.

    The Data Warehouse Group's Agile Development Methodology

  5. Acceptance testing occurs when the incremental product is demonstrated to stakeholders. Any issues, changes and additional functionality are noted and included in the next iterations’ release. This not only serves to demonstrate the benefits of the system to stakeholders but also mitigates any risks of project abandonment by securing their buy-in and commitment. In addition, end users now have a bit of experience with the system and the short feedback cycle aids them to quickly refine their needs into a practical functionality that really works for them.
  6. Stakeholders and customer representatives review progress and agree the next iteration’s priorities with a focus on high value adding activities. This optimises the project’s return on investment by ensuring constant alignment with end user needs and company goals, decreases overall project risk and allows the project to quickly adapt to changes.
  7. Documentation ranks equally with working software. Stakeholders are encouraged to prioritize it with other iteration outcomes, based exclusively on perceived added business value at the beginning of the iteration.
  8. Regular face-to-face communication is encouraged in order to help make team collaboration easier and ensure continued support from project stakeholders.
  9. Working software is regarded as the primary measure of progress.

Benefits of an Agile Development Methodology

The benefits to our clients of our agile development methodology approach are:

  • Continuous feedback throughout the business intelligence development cycle results in systems that meet the actual needs of end users, and deliver massive business value.
  • Actively involving end users in the business intelligence development process creates buy-in and a commitment to using the system, reducing possibility of project abandonment.
  • Waste in the form of never-to-be-used features is minimised, significantly reducing the overall project risk and cost, thus improving the project’s ROI.
  • Streamlined face-to-face communications improve Client-Net Assets relationships by developing trust and sharing knowledge.
  • End users are involved in defining the time lines instead of leaving the activity to the development team.
  • Early detection and repair of bugs within each iteration dramatically improves the quality of the developed system. The cost of fixing bugs as they arise is noticeably reduced when compared to fixing issues at project completion.