Software

3D Project Methodology can help you streamline development projects

If you're looking for an application development methodology to organize your projects or for comparison to what you use, consider this one, sent to IT Consultant Republic by a TechRepublic member and IT consultant.


By Catherine Baird

Like a three-act play, successful development projects must possess a beginning, a middle, and an end. With that simple structure in mind, BairdClaw Solutions Inc., an Atlanta-based consulting firm that develops enterprise-level applications, has put together a “3D Project Methodology” to deliver client solutions in three steps:
  • Discovery
  • Development
  • Delivery

Here’s a detailed look at what’s involved in each step and how the company works with clients to produce deliverables at each project stage.

Editor’s note
We recently asked TechRepublic members to share their project methodologies. BairClau Consulting founder Catherine Baird, who will soon relaunch the company in Atlanta as BairdClaw Solutions Inc., sent us her company’s “3D Project Methodology.” This is a condensed look at BairdClaw’s process, from the company’s point of view. Although it’s written to apply to BairdClaw’s potential clients, we hope you can use it to develop a strategy for your own contract design work or to improve your current approach.

Discovery
During this stage, we work closely with the stakeholders to determine the scope and dimensions of the problem, and potential ideas for a solution. Carried out during two to 10 business days, BairdClaw representatives go on-site for a walk-through of the problem. We examine the client’s infrastructure, systems, and capabilities to determine which of our solutions, if any, best meets the objectives.

The client’s challenge may be so well defined that minimal or no discovery is required. However, with most business process improvement initiatives, the full scope and issues involved are not transparent, and an on-site exploration is necessary to arrive at a solution.

We do not advocate lengthy consulting engagements for the rationale of unearthing all possible parameters that might be involved in the problem or its solution. Instead, we recognize that issues will arise during the course of the second phase, Development, and leave such concerns to the time when they may actually affect the solution.

Standard deliverables
  • Project definition, scope, and GAP analysis
  • Anticipated ROI, project plan

Additional deliverables
  • Current state analysis and costing
  • Facility(s) process flow and data map
  • Infrastructure plan and systems integration plan
  • Training, staff allocation, and change management plan

Development
The Development phase is determined by the client’s corporate needs and the proposed solution. It may involve nothing more than a select team of consultants operating on-site to establish and execute new business processes. It may require coding of a full software application solution to automate or Web-enable certain sectors of the client’s enterprise. Regardless of the scope, BairdClaw aims to demonstrate progress to clients with each every two-week iteration. The incentive for embracing such an approach comes from our experience with development and process improvement projects. Too often, the client’s needs or priorities shift during the course of an initiative, and the traditional Change Request fails to align all parties to the new objectives. In both internal and outsourced projects, we have witnessed the unfortunate consequences when the deadline or milestone approaches and the solution no longer suits the company’s requirements.

Our methodology also enables us to offer Optional Scope pricing in our contracts, thereby minimizing the client’s risk in terms of financial commitment. Finally, when it comes to application development, this approach reduces the overhead involved in gathering extensive requirements and establishing fixed design specifications.

What’s generally used and why it doesn’t always work
A standard application such as an online Order Management system would require approximately a six-week design documentation phase before one line of code is written if a rigid practice of traditional methodologies such as Rational Unified Process (RUP) or Unified Modeling Language (UML) was applied.

With such processes, if you decide a few weeks into the development that it’s necessary to incorporate returns management or credit card authorization, these features would either have to wait until the initial application was completed, or all development would have to stop until new design specifications were drawn.

BairdClaw Solutions alternative
We establish the basic initial requirements and scope during the Discovery phase. Once the project terms and conditions have been agreed upon, we begin development immediately. For a software application, the work will generally follow the following model.

The development team meets with the customer representative(s) for a planning and design session that normally takes one business day. The discussion is limited to those requirements that have been prioritized for that two-week iteration. This could include such functions as Request Bid, Approve Order, Prepare Shipments, Perform Inventory Count, and Enter Contract.

More minor requirements might be features such as Search, Find, Add User, or a given Report. There are also system requirements such as Save/Backup/Retrieve, Test Concurrent User Performance, and Optimize Database that would be covered.

Outcomes:
  • Tasks needed to complete the requirements
  • Estimates for each task
  • Acceptance Criteria (measurement to determine if functionality has been provided)
  • Reprioritization of requirements. The Team may determine that there are too few tasks to fill up that iteration and thus request additional user-centric requirements, or there may be too many and the Customer will be asked to choose the most important requirements. At this time, the Customer may decide that some functionality is not really important to the entire project and either cancel or delay its completion.

After the planning session, the Team begins development on the established tasks. Generally, the team members code in pairs to improve speed and accuracy. Continuous unit testing and integration is our standard approach. The Team prioritizes functionality first and will work to meet the established acceptance criteria.

During this process, the Customer representative(s) should be available to confirm the business requirements and provide additional examples of calculations or acceptance test scripts. Depending on the client, this role of “Customer” can be handled by the client’s business experts or by a BairdClaw business analyst.

Outcomes:
  • Functionality that meets the Acceptance Criteria
  • Estimate verification or update (result of requirement or system uncertainty)

One additional way that we mitigate the risk of project slippage is to identify requirements that contain a high degree of uncertainty. When this occurs, we perform a limited “spike” (one to two days) to determine how the requirement might be implemented and to establish more accurate estimates.

Once the required functionality has been achieved, and has passed the acceptance tests, the Team moves into an intensive Quality Assurance phase to round out the iteration. Any bugs identified during the development are resolved, the code is refactored to ease ongoing maintenance and upgrades, and minor cosmetic issues are fixed.

Outcomes:
  • Demonstrable, working software
  • Maintainable, well-documented code

By breaking down the requirements into manageable pieces and proceeding in this objective, systematic manner, BairdClaw enables successful development projects.

Standard deliverables
  • Demonstrable solution
  • Test results and draft solution definition documentation
  • Updated tracking project plan

Additional deliverables
  • New policy and procedures documentation, including process models
  • Demonstrable systems integration and alerts
  • User guides or online help
  • Training materials, curricula, and course schedule
  • Metrics assessments and costing analysis

Delivery
At the conclusion of the Development phase, BairdClaw deploys the solution and obtains Client acceptance of all final deliverables. Delivery can be performed in a variety of ways, depending on what solution is involved.

1) Production Release of a Stand-alone Software Solution
  • Full installation
  • Installation guide and training
  • User acceptance and training
  • Operations guide for ongoing maintenance
  • Final solutions definition package
  • Quality assurance sign-off
  • Customer acceptance checklist and updated ROI

This operation is generally performed between seven and 10 business days.

2) Production release of an integrated software solution
  • Full installation on development or test environment
  • Installation guide and training
  • User acceptance and training
  • Summary of integration test run results
  • Quality Assurance sign-off on development or test environment (of integration as well as core functionality)

We advise that the client maintain the old system running in parallel with the new solution for one to two weeks after “go live” as a contingency plan and to facilitate data integrity testing and confirmation.
  • Full installation on production environment
  • Updated installation guide and training
  • Quality Assurance testing and sign-off
  • Operations guide for ongoing maintenance
  • Final solutions definition package
  • Customer acceptance checklist and updated ROI

If our contingency plan is accepted, these types of Delivery may require two to four weeks to complete.

3) Manual business process improvement solution
  • Metrics and assessment of improved performance
  • Final policy and procedures package
  • Customer acceptance checklist and updated ROI

Delivery for these types of solutions should usually not require more than one to two business days.

Editor's Picks

Free Newsletters, In your Inbox