Back to Support

Customizing CS/10,000 for Your Organization

Introduction
Brief definition of Terms
Overview
The Knowledge Base
Data Required for Task groups
Data Required for Tasks
Data Required for Selection Criteria
Data Required for Estimation Factors

1. Introduction

CS/10,000 can be customized to meet a wide range of needs. The options range from the simple addition of tasks that can be done by the end user to a full blown replacement of the CSCL methodology with custom client- generated methodologies. The Estimation Advisor can also be customized for specific needs with questions optimized for the unique processes of an organization. The goal of this section is to provide the reader with the knowledge needed to decide how to best customize CS/10,000, taking into account both needs and available resources.

2. Brief Definition of Terms

Advisor:

This is a term used for the intelligent questionnaires within CS/10,000. These are used to gather input about the project from the user. Estimation Factors:
Attributes of a project which affect how long it will take.

Examples: Is data conversion needed?

What is the experience level of developers assigned to the project?

Knowledge Base:

The overall repository of corporate knowledge organized into a set of one or more Advisors.

Selection Criteria:

It is usually necessary to include specific task groups and architectures in a project. The selection criteria are used to determine whether or not a task group or architecture should be included based on the user's answers to the Advisor.

Task:

The actual steps that must be taken in order to complete a task group.

Task Group:

Groups of tasks that accomplish a specific goal. A process or activity is made up of many task groups and each task group will contain several tasks.

3. Overview

When deciding on how to approach a customization project the first issue which needs to be addressed is whether you want to create your own knowledge base or modify the one provided by CSCL. If you choose to create your own knowledge base you will need to create a set of one or more CS/10,000 Advisors.

Creating a custom knowledge base is the most powerful customization option. It gives you complete control over the content selection and estimation facilities of CS/10,000. Additionally, creating a new knowledge base will insulate your customizations from future upgrades to CS/10,000. However, it can be very time consuming. This approach is recommended for large organizations with well-established and documented processes and methodologies who want to use CS/10,000 as a tool to deliver their methodologies. It is also the suggested approach if you are designing processes that are radically different from the existing CSCL methodologies.

The other choice is to modify the Knowledge Base provided by CSCL. This approach involves adding your own task groups and tasks to the CS/10,000 repository and saving your work as a custom template. These new tasks can then be linked to the current Estimation Factors so that they can be estimated. However, there are several drawbacks to this approach. The first is that you cannot modify the default Task Advisor to select tasks based on your answers to questions. Each new task group will be included by default in every project based on the template you have created. Secondly, you cannot add questions to the Estimation Advisor. This is not a problem if you are adding tasks which have Estimation Factors similar to the ones used by the CSCL task groups. However, if the process you are creating has unique Estimation Factors that have no similar counterpart in the CSCL knowledge base (KB) then you will not be able to accurately estimate their duration. Lastly, if you choose to modify the CSCL KB you may lose compatibility with future upgrades. This is because, while most upgrades will make only minor database changes, it is possible that dramatic changes will be made to the database as part of an upgrade. If this happens you will need to choose between having to re-do the changes you made to CS/10,000 and not gaining the improved functionality offered by a new release.

The remainder of this paper provides information that is needed by those CS/10,000 administrators who decide to create a customized knowledge base. It is required that anyone who is trying to create their own knowledge base understand how CS/10,000 functions "under the hood" as such people will need to provide CSCL consulting services with the low-level data used by the software.

4. The Knowledge Base

The information in the CS/10,000 repository is organized into Knowledge Bases (KB's). A KB consists of one or more Advisors. An Advisor may contain templates, questionnaires, expert system rules, or neural network estimation factors. Each Advisor is used to deliver a specific knowledge focus. The CS/10,000 KB is comprised of the following six Advisors:

1) Task Advisor:
The Task Advisor provides a questionnaire that gathers user requirements. These requirements are used by the CS/10,000 Expert System to determine which task groups need to be performed for a project.
2) Estimation Advisor:
The Estimation Advisor provides a questionnaire that gathers information used by the Neural Network to generate estimates of project duration.
3) Architecture Advisor:
The Architecture Advisor provides a questionnaire that gathers data from the user and then recommends one or more architectures based on the answers given.
4) Documentation Advisor:
The Documentation Advisor provides a questionnaire that combines the users answers with pre-defined document templates in order to generate project documentation.
5) Network Advisor:
The Network Advisor provides a questionnaire that recommends Network types based on the users responses to its questions.
6) Estimation Reconciliation Advisor: The Estimation Reconciliation Advisor provides a questionnaire that tunes the project duration estimation neural network based on the user's responses to questions and the actual duration information in the task grid.
A customization project involves changing the information in one or more of these Advisors. Which Advisors are customized and how much they are changed depends entirely on the needs of the customer. The Advisors which do not need to be changed can be seamlessly integrated with the newly generated, custom advisors. Two examples will be discussed below. In the first example a project involving the customization of the Task Advisor and the Estimation Advisor will be discussed. The second example discusses the creation of a custom Advisor-Assisted document for the Documentation Advisor.
Example One - Customizing the Task Advisor and Estimation Advisor

The data to be customized can be divided into four areas. These areas can also be defined as entities, and this section describes the relationships between these entities. The four main entities are:


The first and most important entity is the Task Group. A Task Group can be thought of as a Task that is split into several steps (Tasks). Tasks are the steps or sub-tasks needed to complete a Task Group. Each Task Group can therefore have either one or many Tasks connected to it. A Task Group typically has multiple tasks but can have zero tasks. This is therefore a zero-to-many relation on an E/R diagram. A task group can, in the same fashion, be connected to 1 or more Estimation Factors that influence the Task Group's duration. The Selection Criteria affect whether or not a specific task group should be included in a project plan generated by the CS/10,000 Task Advisor.

A high level Entity/Relation diagram is displayed below:

Entity/Relation Diagram

Example Two - Customizing the Documentation Advisor Customizing the Documentation Advisor is a fairly straightforward procedure. Advisor-Assisted documents are really very simple. Basically they just insert the answers to questions at pre-defined insertion points (Bookmarks) in a base template. In order to produce the base template, one needs to create a document which has the insertion points noted. In addition, CSCL needs to know what type of data needs to be placed at each point. Finally, a list of the questions that will provide the data needed at each point is helpful, although this can be produced by CSCL if necessary. This will result in an Advisor-Assisted document which functions exactly like the ones included with CS/10,000.

5. Data Required for Task Groups

This section details all the data that must be collected to customize the CS/10,000 tool to utilize custom methodologies. This data must be collected from an expert associated with each Task. For each Task Group the following data must be collected:

CS/10,000 Phase
CS/10,000 phase to place the Task Group in (Define, Plan, Prototype, Implement)

Task Sort Order Number
Number given to Tasks and Task Groups, in increments of 10, within the range assigned to the methodology by CSCL. While each Task Group receives (or is given) a Sort Order Number, underlying Tasks must also receive a number. For example, if a methodology has Task Group A and B, Task Group A has Tasks I and II, and Task Group A is given Sort Order Number 2010, then Task I in Task Group A will have to be 2020, Task II would be 2030, and Task Group B would be 2040. This is required, due to the fact that CS/10,000 does not have two tables (Task Groups and Tasks), but rather only one table that has a field which defines a Task as a Group or not.

Example:

Task Sort Order ID

Task Group or Task

2010

Task Group A

2020

Task I

2030

Task II

2040

Task Group B

Task Group Name
Name of the Task Group
Task Group Description
Text description of the Task Group
Mandatory Status

CSCL needs to know if the Task Group should always be performed, or performed only if certain criteria are fulfilled. If the Task Group is mandatory, then there is no logic in letting the expert choose criteria.

6. Data required for Tasks

Each Task Group can have one or more Tasks, as stated earlier in this paper. It is recommended that the expert create up to ten Tasks per Task Group. If there are more than 10 Tasks in one Task Group, then they should in all probability be separated into two or more Task Groups.

The data that must be collected for each Task is:
Task Name
The name of the Task
Task Sort Order Number
Identifying number for the Task (Please See the explanation in the Task group section)
Task Description
A text description of what the task involves along with the desired goals of that task
CS/10,000 Phase

CS/10,000 phase to place the Task Group in (Define, Plan, Prototype, Implement)
Effort Weight
A percentage, the sum of which (for one Task group) will be 100%.

Example:

Task Group A

Effort Level

Task I

25

Task II

75

Deliverable
Indicate if there is a deliverable or not associated with the Task

Deliverable Tool
Tool associated with the deliverable (ex: winword.exe)

Deliverable Parameter
Usually the name of the file (ex: templatename.dot)

Deliverable Description
Text description of the deliverable

Additional Deliverables
Up to four deliverables per task can be assigned in CS/10,000. Repeat deliverable tool parameter and description for each additional deliverable.

7. Data Required for Selection Criteria

Selection Criteria are used to determine whether or not to include a task group (and, by definition, all of the tasks associated with that task group). It is suggested that the expert designing the task groups create a master list of questions/criteria to determine whether or not task groups are needed in a certain project. For example, imagine a company with a policy that all projects expected to cost over $100,000, or last more than 3 months, need to be approved by the project planning office. This would then require 2 questions/criteria. One would determine the expected cost and the other the expected length. These Selection Criteria would then be used by CS/10,000's Task Advisor Expert System to decide whether or not a task is needed for a certain project.

Such Selection Criteria need to be created for each non-mandatory Task Group. The master list can then be made from all the questions/criteria which have been created. The CSCL consultant will then use this list to create questions and rules for the Task Advisor.

The selection criteria data will include the following information:

Question ID
Id of the question

Question Name
A short and unique name to identify the question

Question Text
The actual text of the question

Question Description
A detailed text description/explanation of the question

Question Response
The possible answer choices

Response Description
Description/Explanation of each response

8. Data Required for Estimation Factors

In several important ways, the Estimation Factors data is very similar to the Selection Criteria data discussed above. In both cases it is necessary to examine the task groups very closely and create a list of questions/criteria which will determine what factors will affect the task groups duration. The factor data will require the following information:

ID
Id of the factor

Factor Name
Name of the factor

Factor Description
Complex description of the factor describing the factor in detail, with possible questions and responses that would influence the factors weight in a given project. It is possible to create custom Estimator Factors. If you decide to create you own factors, these will be stored as CS/10,000 "Rulegroups", as described in section 5, "Estimation Rules" of the "Format and Content Requirements" document. Normally, the factors provided by CSCL are sufficient. The twenty-one factors supplied by CSCL are as follows:

rulegroup_name

description

Application complexity factor

Application Complexity factor: Will the interdependency of business and system processes affect the length of time required to complete this task group?

Centralized design approval factor

Centralized Design Approval Factor: If the application or database designs need to be approved by a centralized design team, will it affect the duration of this task group?

Coding expertise factor

Coding Expertise Factor: Will the level of programming skill affect the duration of this task group?

Corporate politics factor

Corporate Politics Factor: Will the amount of political discussion surrounding the project and its implementation strategy affect the duration of this task group?

Database complexity factor

Database Complexity Factor: Will the degree of normalization, the quantity of tables and the database distribution strategy affect the amount of time required to complete this task group?

Database transaction complexity factor

Database Transaction Complexity Factor: Will the complexity of the queries, stored procedures and triggers affect the duration of this task group?

Development environment stability factor

Development Environment Stability Factor: If new or unstable hardware platforms and software tools are going to be used, will this affect the length of time required to complete this task group?

Development tool factor

Development Tool Factor: Writing an application in a third generation language such as C generally takes longer than developing an application in Visual Basic, a GUI builder. Will the development tool being used affect the duration of this task group?

Documentation expertise factor

Documentation Expertise Factor: Will the level of project documentation skill affect the duration of this task group?

GUI complexity factor

GUI Complexity Factor: Will the quantity and quality of screens to be built affect the duration of this task group?

Legacy system complexity factor

Legacy System Complexity Factor: Will the size of the legacy system and the developer-level expertise available affect the duration of this task group?

Management skill factor

Management Skill Factor: Will the manager's prior experience on similar projects affect the duration of this task?

Modeling expertise factor

Modeling Expertise Factor: Will the level of modeling skill affect the duration of this task group?

Production environment stability factor

Production Environment Stability Factor: Will new or unstable hardware platforms, software tools, and network infrastructures in the production environment affect the length of time required to complete this task group?

Project size factor

Project size describes how complex a project is, relative to the number of project teams involved and the number of projected subsystems involved.

Project team prior experience factor

Project Team Prior Experience Factor: Will the level of familiarity the project team members have with each other, their development environment and the project type affect the duration of this task group?

Project team skill factor

Project Team Skill Factor: Will the skill and experience level of the project team members affect the duration of this task group?

Staffing factor

Staffing Factor: Will the number of people devoted full-time to this project affect the duration of this task?

System criticality factor

System Criticality Factor: If this project is on the essential business processing path, will it affect the length of time required to complete this task group?

User participation factor

User Participation Factor: Will the user feedback on system requirements, scope and quality assurance affect the duration of this task group?

User requirement volatility factor

User Requirement Volatility Factor: If the system requirements and scope are changed once the project is fully defined will this affect the task group's duration?

Back to top