More on Our Agile Approach

The promise of agile software development is building quality software that closely meets the customer’s needs, faster. The methodology is a customer-centric way of doing business rather than simply a process to be followed. At Project Balance we take this methodology seriously. The end product is better; our clients are engaged and our development team is happier.

Using iterative development, our clients are involved and informed of progress as the development happens; you see the features as they are developed and can request adjustments as the product is built. This approach increases the likelihood that we build the product you envision and the software has a business value for you and your company or department.

At the beginning of a project, project horizon planning (3 months or less) and as detailed requirements definition as possible done within the first iteration. Very often we start with a requirements workshop to pull in as much information as possible for as many stakeholders as possible. At the end of one iteration and in anticipation of the next, any previously defined requirements are reviewed and more details are added as needed. The number of development iterations depends on the size and scope of the project.

Project Balance works with you to understand your business objectives and project requirements. In this planning iteration, we work with our client to determine the project scope, high level schedule, communications plan and functional requirements via a series of facilitated workshops and meetings. Deliverables may include a business concept documentation, software platform documentation, overall planning documentation, minimum data set articulation, a broad schedule and expected resource allocations. Typically our clients want to know “How much will this cost?” and “How long will the system take to develop?” The answers to these questions depend on many factors but at this stage we can certain estimate the level of complexity and overall size of the project.

The plan stage is done in more detail for the first iteration or pre-development phase. As the project cycles through multiple iterations, the requirements are reviewed and enhanced as needed. The goal at this stage is to understand as much as possible about the project goals, to find gaps and to pull in the right technical resources to build the system or application.

The Design phase details all of the features of the software and includes writing use cases for the initial feature set, creating screen mock-ups/storyboards or wire frames, hardware setup and purchasing software licenses as needed. At this stage we also document the software architecture, database architecture and detail out the components, methods and interactions. Scalability and performance criteria are also determined. Hardware requirements are locked down and testing plans are written.

At each subsequent iteration requirements for new features or enhancements to existing features are documented in detail along with use cases, user interface mock ups and data dictionary updates.

During the Develop phase, software code is written and unit tested. Working features are produced as per the iteration plan. The status of all project activities are monitored and reported including completion and resource usage reports. Technical documentation may also be written during this phase.
In the Test phase, the software is tested as per the test plan and test cases. With agile approach, the testing phase is highly integrated with the development phase and may not seem like a separate phase. Project Balance includes testing as a separate phase to emphasize this very important and required step and to highlight the special skills needed to test well as well as the test specific deliverables such as test plans, test cases and database testing scripts.

The Testing phase includes functional testing of the new features and regression testing of the existing features for the software under development. Project Balance also reviews the usability aspects of the software and verifies the user interface is intuitive. Performance testing may be done to assure that data pulled from large databases displays in a reasonable amount of time. Depending on the project, we may test on multiple web browsers and deploy the software on different hardware. Defects that are found in this iteration will be fixed if time allows within in the same iteration. However, if the iteration time box has run out, defects are added to the list of potential development work to be prioritized by the client for the next iteration. User guides may also be written or updated during the test phase.

As part the Agile approach, the customer is required to see the results of an iteration. The client will be invited to review and approve the features that are developed. Changes to the product can be scheduled a future iteration as determined by you. At the end of a project when the software is ready to deploy there is a final User Acceptance Test/Review. There should be no surprises in terms of what the software will look like, how it will function and when it will be completed.

Go Back to Approach Page