Joint Application Development
JAD is an Important Technique for Iterative Development. An important aspect of the iterative development approach is the Joint Application Development (JAD) process. JAD is used as a technique for developing business system requirements. The purpose of JAD is to bring together IT and the business community in a structured workshop setting to extract consensus based system requirements. This is accomplished by using a trained JAD facilitator and customized, planned agendas to assist the participants in arriving at complete, high quality requirements. Experience has shown that the JAD process substantially reduces development time, costs and errors.
JAD is typically used in the early stages of a project life cycle. This article shows how a project can be supported through Joint Application Development workshops.
Iterative development methodology includes JAD techniques for determining user requirements. These requirements are reflected in a set of products that are produced using Object Oriented Analysis and Design.
The Iterative Approach Divides Applications
The iterative approach divides applications into smaller versions for incremental delivery. The diagram (below) is a simplified illustration of how an application might be divided up by segmenting the application in a top down fashion. When a team divides an application, it has to balance between meeting the needs of the users; working within available resources and minimizing project risk.
JAD/Iterative Approach Roles and Responsibilities
In addition to the project team roles and responsibilities, the JAD workshop requires defined roles and responsibilities to provide effective requirements sessions. The roles involved are:
JAD Facilitator. The workshop facilitator is an impartial guide. The job of the JAD facilitator is to structure the workshop so participants can describe their business, guide them through the agenda, and ensure that all parties are heard. The facilitator’s role is to facilitate the decision-making process by asking questions, seeking out ideas from all of the participants, ensuring that the discussion is focused and capturing sufficient amounts of information for documentation and review. The goal is to make sure that the participants are satisfied that they have reached wise decisions and have consensus.
Documentor. During the JAD sessions, the documentors are impartial assistants to the JAD Facilitator. The job of the documentor is to capture notes about the discussion and design. The documentors use personal computers to capture this information in an orderly fashion. They document only what the group decides. When using development tools, consider using one documentor for notes and updating the prototypes and another to drive the development tool.
Business Experts. All user participants are responsible for describing their business, as it should be in the future. User participants are the key contributors in the workshop. They ensure success or failure. The appropriate business people can design a high-quality system. There is no rank in the workshop.
Technical Support. Technical support participants are responsible for the technical design of the system. In the workshop, the MIS participants should make sure that all appropriate questions are asked and answered completely. They should present new technology and capabilities of systems.
Project Manager. The project manager is responsible for delivering the system design. In addition, the project manager may make suggestions to assist the users or provide alternatives if cost considerations arise.
Executive Sponsor. The executive sponsor is usually the manager of the business area for which the system is being designed. The executive sponsor is the person who has set the purpose, scope, objectives and constraints that bound the project. The executive sponsor usually has the final word when policy decisions are to be made.
Observers. Observers are those interested in the JAD process or in the specific project. IT project team members should try to observe a JAD session before attending the JAD training. Observers will listen and watch but will not participate in the discussion.
JAD/Iterative Requirements Session Planning
To ensure the success of a JAD session, the sponsor, project manager and JAD facilitator must work as a team to plan and prepare for the workshop.
The JAD facilitator and project manager should conduct business sponsor and participant interviews and orientations. During the preparation phase you will also need to identify the management perspective document, determine the workshop deliverables with the project team, identify the participants for the requirements sessions and uncover any potential workshop or project issues.
It is the job of the project manager, with the support of the sponsor, to ensure appropriate participation in a JAD session. A JAD workshop cannot be effective unless the right people are selected and willing to participate. This is true for both application developers and user participants. Some qualities of a JAD participant:
- An understanding of the current and future business needs
- A good level of business knowledge
- A commitment to designing a quality system
- The ability and authority to make decisions
- The ability to describe their business processes, needs and problems
- The ability to communicate
- The ability to function without rank
- An understanding of the opportunities available through automation
It is important to get representation across departments, cross-functional business areas, or companies and to make sure political factors are represented. It has been found that user-to-developer ratio is roughly 3:1.
It is important to remember that the JAD Project Plan does not replace the Application Project Plan. The JAD project plan concentrates solely on those project deliverables that will be developed through JAD.
The JAD leader will work with the project manager and development project manager to develop the JAD project plan for each project that requires more that one workshop. The purpose of this document is to provide a cohesive picture of how JAD will be used to reach the stated objectives. The important steps involved in preparing a JAD project plan are:
- Identification of the project deliverables and required checkpoints
- Organization of project deliverables by checkpoint
- Identification of key participants
- Definition of the workshops; scope, approach and length
- Determination of any required pre-JAD education or kick-off meetings
- Reviewing the flow of information to be produced and ordering the workshops appropriately
- Determination of the required preparation time
- Scheduling dates and location for the proposed workshops
Although dates are estimated for every JAD workshop at the time the JAD project plan is developed, each JAD session date should be confirmed. This ensures project continuity, and gives all participants an idea of exactly how much time will be available for preparation.
JAD Requirements Gathering Sessions
The definition of an application’s business requirements is an iterative process. The main purpose of the JAD sessions is to capture consensus based business requirements and provide the developers with a good understanding of what the business wants the system to do. JAD sessions should create documents describing the business activities and system interfaces by utilizing use cases and business models.
JAD Requirements Analysis Session-Activity Steps:
- Build the High Level Activity Diagram
- Develop the Use Case requirements by identifying the following:
- Further document the software requirements by identifying the main flows, alternate flows, exception flows, business rules, and design constraints.
- Prioritize the use cases and requirements lists. These are later used for the iterative release strategy.
- Create the State Diagrams for GUI design and/or a Requirements Storyboard
- Site Maps (Storyboards) and screen inventories can also be developed
- Identify the business objects and their relationships for each use case. The steps for building the Domain Object Model are as follows:
- Identify the “real world” objects
- Identify the associations to the other objects
- Identify the multiplicity
- List the attributes and operations associated with each object
- Build a glossary of definitions – actors, use cases and business objects
JAD Focus Groups
Iterative development requires that further analysis be done on user requirements to support each incremental release. This requirement is addressed by having JAD-like sessions (focus groups) that build on the results of the requirements sessions. The purpose of these focus groups is to drill down the requirements into a high-level design solution. These focus groups are made up of the technical project team and business subject matter experts.
JAD Focus Group Analysis (High Level Design) Session- Activity Steps:
- Provide a detailed definition of the use cases created in the requirements analysis phase. The use case should describe the details of the user interaction with the system and have the associated screen shots or paper prototypes.
- Build use case views for each use case to show how the objects are used in the use case.
- Build the sequence diagram for use cases with more complicated workflows and refine the domain object models.
Conducting JAD requirements sessions and focus groups are key to a successful iterative development approach. These types of requirements and analysis sessions allow for collaborative requirements gathering and design. The entire project team is able to produce consensus based high-quality requirements deliverables in a short period of time.