Development of Web-Based Document Generation System
The project is designed to create a Rich Internet Application (RIA) client for an existing standalone application that provided automated document generation.
IBA Group implemented the project in close cooperation with the customer. The IBA responsibilities comprised the following:
- Establishing and following the SCRUM development process
- Application development
- Unit testing/ functional testing/ end–to–end testing
- Quality assurance.
IBA developed the RIA client by SCRUM agile methodology that assumes the following:
- Two–week sprints and small release cycles of 4–6 sprints
- Product backlog: a prioritized wish list managed by Product Owner
- Sprint planning: determine the work to be done in the Sprint and determine how the work will be accomplished
- Sprint backlog: the team's commitment to a Sprint
- Product Backlog Refinement (grooming): maintain and clean up the backlog, as well as estimate (planning poker) the backlog items
- Daily scrum meetings: 15–minute status meetings (same time, same place, every day)
- Sprint Review: demo of product increments
- Sprint retrospective: improvements.
Enhancements in the development process included the following:
- Continuous integration. All the changes that different people/teams are working on should be merged together as early in the development process as possible.
- Golden Trunk. The code in the trunk can be shipped to a customer at any time.
- Test–driven development. Unit tests are used heavily with at least 80% of target coverage. The current coverage is more than 86%. For a number of functions, tests are created before code development.
- Pair programming
- Coding standards. Before commit, the entire code is checked for compliance with code standards (internal + JSlint).
- Code review. The code should be reviewed before commit. All senior developers both on the IBA and customer sides are involved in this process.
- Behavior–driven development. Automated scenarios are created using JBehave and EasyB frameworks. As functional automated tests are run on a nightly basis, every morning we have a full report of the test run for all supported browsers. All stakeholders are notified if anything fails.
About 20 people were involved in the project. They were grouped in two teams of 6 developers and 4 testers each. These teams were geographically distributed.
Software Environment and Technologies
Development tools, languages, frameworks
SVN Subversion, Bitbucket (Git based)
Continuous integration and testing tools
Jira, Jenkins, JSTestDriver to run unit tests and calculate code coverage, Selenium WebDriver + JBehave/EasyB to run functional automated tests
The customer received a high quality application that incorporated the latest technologies.
The customer was able to reduce the development costs while maintaining high quality. All deliverables were completed on schedule and exceeded quality requirements specified by the customer.