Revisions
|
Ver |
Date |
By |
Pages |
Description |
|
1.0 |
January 1997 |
E Roberg |
Overview only. |
|
|
2.0 |
November 1997 |
E Roberg |
Added sections on Programme Management; Detailed Discovery and Assessment Phase. Created in MS Publisher 95. |
|
|
3.0 |
May 1998 |
E Roberg |
Reverted to Word 97. Added sections on Remediation, Verification & Validation and Implementation. Reworked much of existing text. |
|
|
3.1 |
July 1998 |
E Roberg |
Various adjustments and corrections made. |
Confidentiality and Process
Restrictions
This document is the property of Business Transformation Services.
In the interests of a successful and timely completion of Year 2000 projects, the document is made available for general use.
This document may thus be freely copied and used subject to the following provisions:
Disclaimer: The author, nor Business Transformation Services, can accept no liability for any unsuccessful results that may flow from the use of this document and any aspect of it.
Every care has been taken to ensure the correctness of the information provided in this document, however, considering the urgency of dealing with Y2000 problems, expediency has taken precedence over rigour.
References
ANSI/IEEE 1008-1987 Software Unit testing.
ANSI/IEEE 1012-1986 Software Verification and Validation Plans.
Beizer, Boris. Testing and the Year 2000 Problem. American Programmer, Vol10 No8, Aug97. Cutter Information Corp.
Chaabouni, Moez. A Framework for Testing Year 2000 Application Conversions. Compuware Corp. Internet Article.
IEEE 2000.1 Standard for Year 2000 Terminology.
IEEE 2000.2 Recommended Practice for IT Year 2000 Test Methods.
ISO 8601:1988 Data elements and interchange formats – information interchange – representation of dates and times. (Available in South Africa as ARP010 : 1989)
ISO/IEC 12207 Information Technology Software Lifecycle Processes.
ISO 9001 : Quality Systems – Model for Quality Assurance in Design / Development, Production, Installation and Servicing.
ISO 9000-3 : Quality Management and Quality Assurance Standards – Part 3: Guidelines for the application of ISO 9001 to the design, development, supply, installation and maintenance of computer software.
Jones, T Capers. The Year 2000 Software Problem. Wokingham: Addison-Wesley, 1997.
Kaner, Cem; Falk, Jack; Nguyen, Hung Quoc. Testing Computer Software. 2nd Edition. New York: van Nostrand Reinhold. 1993.
Kappelman, Leon A. Year 2000 Problem: Strategies and Solutions from the Fortune 100. Boston: International Thomson Computer Press. 1997.
McCabe, Thomas J; Watson, Athur H. Structured Testing: A Testing Methodology Using Cyclomatic Complexity Metric. Internet Article.
Ragland, Bryce. The Year 2000 Problem Solver: A Five-Step Disaster Prevention Plan. New York: McGraw-Hill. 1997.
SABS ARP 021: 1992 The application of SABS 0259 to the validation of computer programs.
SABS ARP 034 : 1993 Quality assurance in the verification of computer software development.
Ulrich, William M. & Hayes, Ian S. The Year 2000 Software Crisis: Challenge of the Century. NEW Jersey: Yourdon Press. 1997.
Contents
Introduction
*Managing a Year 2000 Programme
*Introduction
*Programme Management Framework
*Best Practices and Worst Practices
*Zachman Framework for Enterprise Architecture
*Methodology Framework Summary
*General Approach
*Project Administration
*Overview
*Awareness & Planning
*Overview
*Year 2000 Compliance
*Is the Y2000 a Leap Year?
*The Responsibility of Directors
*Discovery & Assessment
*Overview
*Determination of Y2000 Risk Level
*Is it critical?
*Is there a Y2000 impact?
*Will it be a lot of work to fix?
*Taxonomy
*Classification Process.
*Remediation
*Overview
*Verification & Validation
*Y2000 Testing Process
*Awareness
*Discovery & Assessment
*Remediation
*Validation
*Implementation
*Y2000 Testing Project Deliverables
*Testing Proposal
*Testing Strategy
*Test Plans
*Functions
*Acceptance Criteria
*Refined Test Bed Requirements
*Test Case
*Test Log
*Test Incident Reports
*Reducing Testing Time
*Implementation
*This document describes a generic approach to managing Y2000 projects. But why have another Y2000 methodology?
The Year 2000 Software Problem presents the IT industry with some never-before faced challenges.
The word deadline comes from a line that was around prisons of old. If a prisoner crossed over that line, he was shot. No warning given.
Now the IT industry is faced with a project that has such a deadline. What’s more, almost every organisation world-wide is faced with it, at the same time.
In fact, project management is just not adequate to deal with the challenge. Senior IT project managers will have to learn, very quickly, to become programme managers.
The date is fixed, resources limited, technology will vary in every organisation resulting in unusually high risk.
What every project manager needs, like a hole in the head, is to learn a new method.
What we are presenting here, is the application of familiar techniques, to a complex problem.
This methodology distinguishes itself from its peers in the following ways:
Further, we proceed from the following two basic assumptions:
Managing a Year 2000 Programme
In essence, Y2000 projects are no different from many other familiar type of project.
So why make such a fuss of Y2000 projects? Mainly, because there are some characteristics of Y2000 projects that demand a slightly different approach.
Usually, when speaking of critical success factors (CSF), we would think of factors like time, cost, scope, quality and communication. They all apply here, but there is tendency towards a particular alignment of CSFs.
Firstly, there is the fixed end date. In the case of Y2000 projects, it cannot be moved. No legislation, no edict from the pope, nothing, will change when 1 January 2000 will occur.
Secondly, there is the matter of quality. South African IT staff have tended to lag in the ability to find most bugs before handing applications over to their users. In the case of Y2000 projects, this is not acceptable - so, much more attention will have to be paid to the quality aspects - reviews, walk-throughs, testing, and so on.
Thirdly, cost. One may take the high-handed approach, which says, it will cost what it will cost, however, this is not likely to win lifelong friends - and remember, we will probably need jobs after the Y2000 has finally been put to rest.
What is a given, is that costs will rise, as the gap between supply and demand gets greater. Better, would be if we could show our customers that we are doing everything in our power to keep those, inevitably high costs to a minimum.
Finally, there is the matter of communication. There is nothing worse than nasty surprises. Y2000 projects offer the opportunity for many.
So far, so good, as to what are considered to be project CSF’s. Here however, is another, one you will agree, that becomes almost paramount: risk management.
If we accept the conventional wisdom that 50% of organisations will not be ready in time, what do we do? The trick will be in choosing which items to focus on, so that the organisation is not unduly threatened.
Programme management ensures that there is a common vision across all sub-projects. Furthermore, it ensures that the failure of one or more projects will not jeopardise the success of the programme as a whole. It considers that the whole is made up of many independent and interdependent chunks that are tangible, achievable and measurable. It ensures that the interfaces (between projects, partners, applications, etc.) are managed effectively, especially where dependencies occur.
Based on the flock of geese principle, it ensures that the end objective is not dependent on one critical component. It is concerned with business risk, as opposed to project risk, so that the project objectives may be modified if these are found to not be in line with business objectives. Finally, it recognises that there are many different strategies that may be applied, given the characteristics of a project.
In keeping with the programme management approach, the tendency to focus on one deliverable (or set of deliverables) to the detriment of business objectives is avoided and each deliverable is merely seen as one part of the overall goal.
Programme Management Framework
The accompanying diagram describes the different components of a Year 2000 Programme.
Some of the key functions of the programme office would be to
Best Practices and Worst Practices
During 1995, the US Dept of Defence contracted a group of highly respected industry experts (called the Airlie Software Council) to define what would be considered to be the best practices in the IT software development industry.
9 best practices were identified. We believe that every one of the "best practices" is applicable in a Y2000 project, and we have structured the methodology to take them into account. In addition, we believe there are some additional best practices that extend the work done, that are specific to Y2000 project.
Adopt a programme management architecture (there are just too many interdependent projects to manage independently).
Apply robust, Y2000-specific project management life cycles that take into account the different compliance approaches and strategies.
Use appropriate tools (researchers have shown that the starting time for a large Y2000 programme aiming for completion by end 1999, without effective tools, has passed).
Validate conversion strategies and approaches against the plan. Whilst certain conversion strategies and approaches may be the most desirable, the plan may not allow for such "luxuries". For example, there has been much debate that compliance approaches like windowing or language extensions are merely postponing the problem. However, from a business risk perspective, this may be the only workable approach. This validation needs to be done at each project review point. If this approach becomes a paradigm, then projects will be planned with the assumption that it may need to be necessary to change course mid-stream.
Recognise that there are probably as many opportunities as there may be risks. Plan flexibly, so that opportunities may be capitalised, when they are identified.
Part of the programme management approach would be to identify additional "best practices" and "worst practices" and communicate these to all partners.
In addition to these "best practices", the Airlie Software Council also identified 9 "worst practices". We believe that these are as applicable to Y2000 projects.
Caveat Emptor!
Airlie Software Council: Worst Practices
Airlie Software Council Best Practices
Zachman Framework for Enterprise Architecture
The Zachman Framework for Enterprise Architecture is a model of the real world as it applies to an enterprise. Models are abstractions of real objects (which Zachman calls "artefacts") or situations (e.g. a risk occurrence). In fact, Zachman suggests that it would be possible to apply the framework to a much broader scope, namely, life itself. That, however, is not the subject of this exercise, except to indicate, that if it can be applied to something much larger, it can also be applied to a more constrained example (like an enterprise).
Models are useful because they allow us to take a very complex real-life and abstract it down to a level where we can deal with it in a manageable fashion. For example, consider the problem of two trains hurtling towards each other on the same track. If the problem is "what will the impact be when they collide", we probably do not need to consider the context (involving the weather at the time, whether the wheels were made of stainless steel, what the driver’s name was, who was the sultan of Brunei at the time, or whether Bill Gates was still the richest man in the world), in fact, we can probably abstract the problem down to a simple mathematical formula. One, in fact, which could probably be resolved by a high school pupil. It obviously depends on what the question is which will determine which factors must be included in the abstraction (or model). For example, if Bill Gates is on one of the trains, that fact may be relevant, or it may still not be.
Since humans (and computers even less) are not very good at dealing with masses of facts, it is imperative that we break the problem down (abstract it) to a level where it can be dealt with. It is amazing how simple some abstractions can be, regardless of the complexity of the problem. All will agree that there are probably only a handful of people who really understand what the theory of relativity is all about, it can be abstracted to a level where even a child can at least memorise one of its major assertions: E = mc2. His first paper on the subject was published at the age of 26 (in 1905), but the concept was already there, at age 12, when he "decided to devote himself to solving the riddle of the ‘huge world’". It was only on 29 May 1919 when his theory was verified by a scientific expedition to photograph a solar eclipse, and "the modern world began" (as the historian Paul Johnson asserts).
From observation, it is possible to organise Einstein’s work into a framework - from the concept (and even the concept can be abstracted into: Why? What? How? When? Where?) to a physical reality: the atom bomb.
The framework was first proposed in the IBM Systems Journal in 1987 and has, thus been around for a substantial period of time. In that time, it has been picked up by a number of people and applied to a variety of problems. Zachman originally got the idea of the framework from a combination of looking at the way a manufacturing company build products, and realising that it was not a miraculous invention how they went about it, but merely common sense. No doubt, his degree in chemistry, with its fundamental Periodic Table, must have got the juices flowing as he struggled with IBM’s Business Systems Planning methodology to which he was a contributor. This common sense he then applied to creating a model of the enterprise.
At is lowest level, the framework is made up of 6 rows and 6 columns.
The rows define a perspective of the problem or issue. Zachman described these to be the perspectives of the planner, the owner, the designer, the builder and the sub-contractor (as the one who actually does each little bit of work). The final perspective is (or should be) that of some result or reality.
Secondly, the columns describe a particular focus, namely, the "What? How? Where? Who? When? Why?" of whatever is being considered. So, R2C1, would describe what was required from the perspective of the owner. R2C2 would describe how the owner wanted it to be done. Note also, that whilst that may the owner’s primary perspective at that time, no cell is independent of the cells above, below or beside it.
Zachman went on to show that whilst the framework could be used to effectively represent the dimensions of the reality, the framework is in fact multi-dimensional and recursive.
Firstly, there may be any number of product frameworks in any enterprise (many iterations, which vary in content to the nature of the product).
Secondly, there is also a framework that describes the enterprise and how it works to produce or service the products that it provides. All these procedures, etc. are the model of the enterprise.
Thirdly, whilst there may be many enterprise frameworks (many iterations which vary in content to the nature of the enterprise), it is possible to create an abstraction of how the enterprise works. This abstraction, the information system, is really the meta-model of the enterprise.
Finally, we have a model that describes the way in which we create the enterprise information system. This model consists of similar artefacts that exist in the other three abstractions - and answer the "What? How? Where? Who? When? Why?" of the model of the model (or meta-meta-model). This is the framework that the CASE manufacturer uses to manufacture a repository which contains all the artefacts which are required to build the enterprise information system, which supports the enterprise which makes the product.
But there still appears to be one interrogative that is missing: "Which?" In fact, it should be evident that each framework describes the "Which?"
Furthermore, it is even possible to have parallel iterations of the various frameworks that describe the current situation ("is") as opposed to desired future situations ("to be").
Also notice the following: as an artefact passes from one row to the next, it undergoes a transformation. For example, a plan results in a number of design specs, which result in various types of diagrams (e.g. an electrical circuit diagram). These diagrams result in spec sheets, which ultimately result in a physical unit (e.g. a circuit board, or a transistor). This process of transformation usually also results in an explosion in detail. Whilst there may be less than 10 artefacts in row 1, there could be many millions of artefacts in row 6.
We believe that the Zachman Framework for Enterprise Architecture is particularly useful as a "control mechanism to ensure that nothing is missed. Since it is not known very widely as yet, we have taken the time to discuss it in more detail.
We suggest that the proposed standardised deliverable address levels 1 and 2 (Scope & Enterprise). At levels below that, the deliverables should be customised to the environment and objectives.
Year 2000 projects can vary dramatically according to the objectives and scope of the work to be done.
On the one hand, we may need fix a system that was developed internally. In some cases, the system may be so old that much of the original source code is lost. In other cases, the versions of the underlying platforms may have to be upgraded before the code can be fixed.
In other cases, we may need to upgrade a package to the latest version. This may be as simple as purchasing the latest version and letting the software do all the work for us, or it may be necessary to perform a cascade of upgrades (from v3 to v4 then to v5 to finally get to v6). Along the way, there may have been a change in technology, so that the platforms would need to be upgraded first, before an upgrade can be made to a particular version.
Then there may be cases where the original builders of the system no longer exist, and, if the software is important enough, we will have to replace it with something else, or worse, rebuild it ourselves.
The point is that there is such a wide variety of problems that no single detailed methodology would be able to address every variation and problem domain.
Thus, whilst we have tried to address the as many of the most common issues as possible, the methodology cannot be all things to all men.
In any event, project management is a "thinking head process" and what we are attempting to do here, is to provide a good starting point for the project manager who has been given a Year 2000 project and has been told "go and solve it".
Now he sits with a blank sheet of paper before him and wonders where he should start.
We have followed the general life cycle for Year 2000 projects as described by IEEE P2000.1.
We identify every task by a CoA ID (Chart of Accounts identifier), which is not the same as a WBS ID (work breakdown structure identifier), although it would be preferable that the CoA ID be used as a part of a WBS ID. Our recommendation would be the WBS be made up of CoA ID and Deliverable ID. If this is done, it is easy to record actual time spent (effort) and duration for the completion of each deliverable. This information is invaluable for calibrating estimating models.
The structure of the CoA ID is as follows: PATTS where
P: Phase (0 – 9)
A: Activity (A – Z)
TT: Task (01 – 99)
S: Sub-task (a – z)
Deliverables are identified according to the following convention:
TT: Deliverable type
NNN: Number
Exit Criteria describe the checkpoints that define completion of the task. There are 3 priorities: A (must be conformed to); B (should be conformed to, or by way of an alternative, if appropriate); C (is a useful check, though may not always be applicable).
We have created an MS Access 97 database that can be used to capture and store the information that is collected during the Assessment phase. The database is under continual enhancement (for example, at the time v3.0 of this document, the database was being enhanced to incorporate Change Control and Time Recording).
In addition, MS Excel 97 and MS Word 97 templates have been created to support various of the tasks defined by the methodology.
Resources
The following resources are available:
Please see the Project Management Guide for the general discussion of how to plan projects. What follows is a list of the activities and tasks that would typically be performed in any project.
It is our experience that around 25% of total project effort be budgeted for these activities. This is much higher than what one normally expects for IT projects (usually 9% - 18% depending on the size of the project), but is borne out by observation.
|
0A Feasibility Study |
|||||
|
0A01 |
Create Project Request |
||||
|
0A02 |
Perform Feasibility Study |
PM010 |
Feasibility Report |
||
|
0A03 |
Create Project Definition |
PM030 |
Project Definition |
||
|
0A04 |
Obtain Approval |
||||
A feasibility study is initiated by the receipt of a project request. Typically, the amount of effort is determined by the amount of time available to do the study. When the time is up, the results are documented, and presented to management. As a consequence, one or more projects may be defined. These are then described in the Project Definition.
|
B Planning |
|||
|
0B01 |
Scope Definition |
YM101 YM102 YM111 YM112 YM121 YM122 YM901 YM902 YM903 YM904 YM905 |
Business Unit Inventory Locations Inventory Application Area Inventory System Inventory Platform Inventory Vendor Inventory BU / Location xref BU / Application Area xref Applic Area / System xref Vendor / System xref Vendor / Platform xref |
|
0B02 |
Estimating |
PM102 PM100 |
Est Criteria Y2 Estimating Template |
|
0B03 |
Scheduling |
PM202 PM231 PM303 |
GANTT Chart Resource Histogram Milestone Summary |
|
0B04 |
Budgeting |
PM013 |
Project Budget |
|
0B05 |
Create Project Charter |
PM040 |
Project Charter |
Planning involves collecting summary information about the scope, so that a detailed estimate may be prepared.
If possible, an estimating tool should be used.
Once the size of work is known, and the levels of skills required, it is possible to schedule the work.
Rates are typically associated with skill level. This, timephased as per the schedule, together with additional costs (travelling, infrastructure, training, etc.) then go into the budget.
Finally, all of this is consolidated into the Project Charter, which becomes the formal contract between management and the project team.
|
0C Organise Project |
|||
|
0C01 |
Staff Project |
PM232 PM233 PM231 PM230 |
Resource Inventory Skills Inventory Resource Histogram Responsibility Matrix |
|
0C02 |
Establish Project Environment |
YI601 |
Facilities Required Memo |
|
0C03 |
Establish Reporting Requirements |
QM110 |
Project Reporting Requirements |
|
0C04 |
Project Kick-off |
||
Organising the project involves recruiting and selecting staff for the project team, defining roles, agreeing what reporting will be required, and setting up the physical environment - work areas, hardware, software, and so on. A kick-off meeting is held to describe how the project will be run, its objectives and so on.
|
0D Risk Management |
|||
|
0D01 |
Perform Risk Assessment |
PM501 |
Risk Memo |
|
0D02 |
Manage Risks |
PM511 |
Top-10 Risks Summary |
|
0D03 |
Problem/Opportunity Management |
PM512 |
Opportunity Memo |
Risk Management is one of the most important activities in any Y2000 project.
Two types of risk need to be distinguished: Business risks, which describe what will happen to the business should we fail in any way; and Project risks which describe what could cause us to not complete on time.
Understand that inherent in any risks, there are also usually opportunities. These opportunities typically involve an entirely new set of risks.
However, it may only be from taking risks, that we can achieve the best results.
|
0E Quality Management |
|||
|
0E01 |
Establish Quality Requirements |
QM001 |
QM Statement |
|
0E02 |
Maintain Mission, Objectives, Procedures, Guidelines & Standards |
||
|
0E03 |
Perform Joint Reviews |
QM911 |
Joint Review Report |
|
0E03a |
Conduct Joint Review of Software Architectural Design |
QM911 |
Joint Review Report |
|
2E03b |
Conduct Joint Review of Software Detailed Design |
QM911 |
Joint Review Report |
|
0E04 |
Perform Quality Audits |
QM912 |
QR Audit Report |
Y2000 projects cannot afford defects to creep through. After all, this is the reason we are conducting Y2000 projects.
|
0F Communication |
|||
|
0F01 |
Management Communication |
PM301 PM302 |
Progress Report Progress Summary |
|
0F02 |
Steering Committee |
||
|
0F03 |
Users |
||
|
0F04 |
Project Team |
PM301 PM310 |
Progress Report Time Report |
|
0F05 |
External |
||
Communication within projects and between projects making up the programme is vital. At every step of the way, concerned parties must be kept informed about how the work towards readiness is progressing.
|
0G Configuration Management |
|||
|
0G01 |
Change Management |
||
|
0G01a |
Administer Change Requests |
PM412 |
Issue |
|
0G01b |
Perform Impact Assessment |
YI900 |
Impact Assessment Report |
|
0G01c |
Approve Change Requests |
||
|
0G01d |
Perform Impact Analysis |
||
|
0G01e |
Plan Changes |
PM411 PM210 |
Change Control Summary Project Plan |
|
0G02 |
Manage Project Office |
||
|
0G02a |
Manage H/W Baseline Library |
||
|
0G02b |
Manage S/W Baseline Library |
||
|
0G02c |
Manage Support Tools |
||
|
0G02d |
Manage Policies, Procedures, Standards & Guidelines |
||
|
0G02e |
Manage Training Baseline Library |
||
|
0G02f |
Manage Work Products |
||
|
0G02g |
Configuration Status Reporting |
TD821 |
Version Control Report |
Once the Project Charter has been accepted, the estimates and schedule become the baseline against which progress and costs must be measured.
Inherent in every Y2000 project is change - scope will fluctuate as the degree of compliance is revealed. Missed items will be identified.
To retain control, every one of these changes must be recorded, course of action determined, approval obtained and then tracked in concert with the baseline plan.
Similarly, the project environment needs to be kept up to date and modifications made where necessary.
The format of deliverables should be modified as the need arises.
|
0H Controlling |
|||
|
0H01 |
Status Management |
PM300 |
Project Control Workbook |
Project control involves regularly checking on the status of work, determining whether the plan is still on target. If not, then contingency action must take place, or the baseline must be reviewed. The plan can only be changed if management approval is first obtained.
Often changes in approach, or re-assignment of staff can make the difference to bring the project back on track again.
The best form of control is still via management by the sole of the foot!
|
0I Contract Administration |
|||
|
0I01 |
Negotiate Contract |
PM030 PM090 PM012 PM502 |
Engagement Cost Summary Billing Summary Arrangement Letter/ Contract Engagement Risk Assessment |
|
0I02 |
Administer Contract |
PM310 PM091 |
Time / Expense Report Invoice |
|
0I03 |
Contract Close Off |
Engagement Sign Off |
|
Contract administration involves ensuring that the relationship between all parties involved in the assignment is at an optimum level. That there are no undue risks as a consequence of improperly defined responsibilities, that everyone is paid correctly and on time, and that all issues of due diligence are properly taken care of.
Awareness
: Define the year 2000 problem and gain executive level support and sponsorship. (IEEE P2000.1 Draft Standard for Year 2000 Terminology.)During the Awareness & Planning Phase, a quick assessment of the possible impact of the Year 2000 on the systems must be done, and the organisation must be then be convinced that urgent action to rectify these problems is required.
Experience has shown that most organisations have taken up to 9 months to pass through this phase.
Usually, the Y2000 champion is faced by disbelief that there could be such a problem (after all, what difference could two digits in a date make - be real!). This is then followed by denial (it can’t be that big. Bill Gates will invent a tool that will fix it. We spent millions to buy a system that would last us 10 years. You promised us.)
When the nature of the beast really dawns, panic often sets in.
Since we just do not have 9 months, in most cases, the Y2000 champion must convince senior management as soon as possible that there is a problem, and how it can be solved.
Some early estimating techniques to determine impact and cost have been proposed by groups like Gartner ($x per line of source code), the British Computer Society (Rx per head working in the organisation) and Capers Jones (cost per function point, normalised to industry and technology). By mid 1997, many estimates had already started appearing in the press, so that organisations can find comparable situations elsewhere as an order-of-magnitude measure.
None of these measures are likely to be definitive, and it is necessary to move to a Discovery & Assessment Phase. However, to be able to do this, one needs to obtain commitment and resources. These are the major challenges of the Awareness phase.
In practice, the Awareness exercise will probably continue in parallel with other activities, because the level of awareness varies within the enterprise, let alone in the supply chain.
We will not say much more here, except to mention that there are many resources available in places like the Internet, which include descriptions of the problem, presentations, and so on.
Some of the most useful sites on the Internet are:
By 1998, numerous books have been written on the subject. Some of which have been included in the references at the front of this document.
In addition, there are a seemingly endless list of conferences and there is hardly a week that goes by without extensive references to the problem in the media.
There are many differing views on compliance. Here are some definitions.
The IEEE P2000.1 Standard for Year 2000 Terminology has the following definitions:
"Conformance
"Vendors who claim that their products conform to this standard declare that their use of the term "Year 2000 Compliant" and of defined terms within its definition are in accordance with the definitions in this standard.
"Definitions
"Year 2000 compliant: Technology is Year 2000 compliant if it is capable of accurately processing, providing, and/or receiving date data within and between the 20th and 21st centuries, provided that:
1. the technology is used in accordance with its associated documentation, and
2. all other technology used with it properly exchanges date data with it.
"Technology: Hardware, software, and firmware systems and system elements including but not limited to information technology, embedded systems, or any other electro-mechanical or processor-based systems.
"Date processing: The handling of date data within a system or system element.
"Date exchange: The interchange of date data between two or more systems or system elements. In order to facilitate proper date data exchange between two or more systems or system elements, defined formats should be identified and documented by the suppliers of systems or system elements. Such formats may be specified by the standards or other publications listed in section 2, other generally accepted industry date representations, or other documented methods of date representation. Depending upon the date formats selected, additional information such as, but not limited to, valid date interval, pivot year, and encoding technique may also need to be documented."
The British Standards Institute views compliance this way:
"Year 2000 conformity shall mean that neither performance nor functionality is affected by dates prior to, during or after the year 2000. In particular:
"Rule 1: No value for current date will cause any interruption in operation.
"Rule 2: Date-based functionality must behave consistently for dates prior to, during and after the year 2000.
"Rule 3: In all interfaces and data storage, the century in any date must be specified either explicitly or by unambiguous algorithms or inferencing rules.
"Rule 4: Year 2000 must be recognised as a leap year.
"Amplification:
"Rule 1: Known as "general integrity rule".
Ensures that rollover between all significant demarcations (days, mths, years, centuries) will be performed correctly.
Current date means today's date as known to the equipment or product.
"Rule 2: Known as "date integrity rule".
All equipment and products must calculate, manipulate and represent dates correctly for the purposes for which they were intended.
Functionality includes both processes and the results of processes.
Rule does not exclude reference points for date values and calculations (e.g. integer date)
No equipment or product shall use particular date values for special meanings (e.g. "99" = "do not erase", or "00" = "beginning of file")
"Rule 3: Known as "explicit/implicit century rule"
Explicit: representation of century in year
Implicit: based on inferencing rules (e.g. yy>50 implies 19yy, yy<=50 implies 20yy)."
Others have described less complex definitions. For example, the US State of Washington, describes Y2000 Compliance as follows:
"Information systems are Y2000 compliant if they are "able to accurately process date data - including but not limited to, calculating, comparing, and sequencing - from, into, and between the twentieth and twenty-first centuries, including leap year calculations."
The definitions assume that all software must be able to process dates correctly. Since this is unlikely to be true of many older applications, this could result in enormous costs, and more importantly, reduce the chances of being ready on time.
Organisations therefore need to take a more pragmatic view and focus on the software items that are most critical to the organisation and assess to what degree compliance is important.
For example, many fax machines have the ability to print the date and time of transmission or receipt, together with the sender name and telephone number. If your organisation is a firm of attorneys, where the automatic logging of date and time is important to establish when something was done, then there is no question that this needs to be fixed, but otherwise? Does it really need to be fixed?
To avoid delays later, you need to define your rules early.
Leap years are years that are divisible by 4, unless the year is also divisible by 100.
However, if the year is divisible by 400, then it is a leap year.
Therefore, 2000 is a leap year (divisible by 4 and by 400), but 1900 wasn’t (divisible by 100, but not 400), nor will 3000 be a leap year (ditto). 2004 will also be a leap year (divisible by 4, but not by 100).
The reason for these strange (or so it appears) rules, is that a year is not 365 or 366 days, but approximately (ha!) 365.24219878 days.
The Responsibility of Directors
This matter is sometimes referred to as "Due Diligence" and it involves the responsibility of directors and others entrusted with the protection of stakeholders’ interests.
In essence, directors have the responsibility to ensure that the concern under their supervision is maintained as a "going concern". As such, they have the responsibility to take every reasonable action to ensure that the enterprise does not fail, or failing that, to make this known to stakeholders.
If they do no do so, they may expose themselves to legal action. If lives are lost, the legal action may involve criminal prosecution.
What we have been able to establish from discussion with various attorneys is the following:
There are a number of firms of attorneys that are specialising in this field. If in doubt, an attorney should be consulted.
|
Deliverable |
Exit Criteria |
|||||
|
CoA |
Name |
Description |
ID |
Name |
Prio |
Description |
|
1 Awareness & Planning |
||||||
|
1A |
Determine Exposure |
|||||
|
1B Create Awareness & Obtain Support |
||||||
|
1B01 |
Internal Awareness |
|||||
|
1B02 |
Business Partners Awareness |
|||||
|
1B03 |
Other Agency Awareness |
|||||
|
1C |
Develop Macro Estimate |
|||||
|
1D |
Establish Executive Committee |
|||||
Assessment
(Inventory): Evaluate the year 2000 impact on the enterprise; develop contingency plans to handle data exchange issues and system failures (dysfunction or system crashes); triage (prioritise) systems by identifying those that are mission critical. (IEEE P2000.1 Draft Standard for Year 2000 Terminology.)Before we start, we need to be clear about just what we mean by compliance. This compliance needs to be defined in context: in the case of COTS, the context is what it interfaces with, and the platform(s) it runs on. In the case of embedded software, what would be the consequences of an incorrect date being returned. Sometimes it matters, sometimes it does not.
Vendors and other developers need to specify what the degree and level of compliance is. Be aware that a conditional reply may be of no value.
The scope of the project is confirmed by checking that all application areas that support a business area have been identified. As well as who the key decision-maker is. We need to also identify the systems, or applications, that make up the application area. In addition, identify the platforms that the systems require to operate effectively and the vendors that supplied the software.
This information would typically be obtained by conducting interviews with the key people. They also need to be asked about how important the systems are to the business - would business operations be unaffected if date problems had to cause errors. Establish to what degree the business would be affected.
All this data should be captured into an inventory, and the results published.
The next step is to conduct a Detailed Investigation.
Each of the platforms must be described in detail to identify whether the specific version or release has Y2000 implications. This would be obtained from the vendors who supply or support the platform.
Each system, or application, must also be described in full. Note however, that if a COTS package is being reviewed, the amount of detail will depend on how it is used. In some cases, it may be sufficient to establish that the COTS is Y2000 compliant.
In many cases, these systems interact with other systems, and it is important that the nature of this interaction is defined. Again, judgment should be used: the level of detail one is required to collect depends on the nature of the interaction.
Having now collected a great deal of information, it is now possible to review the priorities and the degree of Y2000 impact. It may also be necessary to revisit some aspects to gain greater clarity.
In the case of bespoke or custom developed systems, it may be necessary to do code and database analysis to identify exactly which lowest level items (line of code or data field) may have Y2000 implications.
Whilst one is performing this exercise, it may also be possible to identify redundant code, or improvements.
Having completed this detailed analysis, priorities and risks need to be re-evaluated. If it is found that risks are very high, it may be necessary to adopt a different approach - possibly fast-tracking the readiness project for one of the systems or platforms.
At this time, we would also determine, for each system, what the course of action should be - do we retire the system, modify it, upgrade it, or how else should we deal with it.
Then we need to define just how we may be certain that we were successful, by identifying what testing will be required, and the nature of that testing.
All of these changes must then be documented.
The full inventory is then reviewed during the Level 1 Compliance Verification, to ensure that nothing has been left out. Assumptions regarding risk and readiness must be revisited to ensure that they are still correct. Finally, the work required to convert non-compliant systems and platforms must be estimated, and the time that is required to complete the conversion work must be determined.
Typically, the results will be unacceptable because of timing and resource constraints, which means that one will have to review different scenarios to determine the most appropriate course of action.
Having done this, the plans need to be authorised by the client, so that work may start on the conversion activities.
Considering the great number of variables and concurrent tasks that need to take place, project and programme management will need to be effectively conducted.
Determination of Y2000 Risk Level
Risk level is a summary of the overall risk that a Compliance Configuration Item (CCI) is seen to have. As the accompanying figure shows, Risk Level considers three basic factors:
This implies one or more of the following:
JM Juran describes the process of Criticality Analysis as to "identify the ‘vital few’ features so that they will receive priority of attention and assets." He goes on to list what he calls the product features that should be considered as critical:
Juran’s perspective is essentially a manufacturing one, but it looks at criticality from the view of the customer and the supplier and it is a useful model.
(Juran, J.M. Juran on Quality by Design. New York: The Free Press. 1992. pp174-175.)This question addresses whether there is a date-related impact to do with the changeover from 1999 - 2000. The answer is either Yes or No.
Will it be a lot of work to fix?
This question is not so easy to answer, since "a lot" is a relative term. A lot of money means something quite different to a poor person as opposed to the CEO of a Fortune 500 company. Similarly, "a lot of work" seen in our context must be taken in relation to the enterprise. A company like Fluor manages multibillion projects as a matter of course. The same is not true of most companies. We recommend that a questionnaire be created that would place the following issues into context in the company concerned, to ensure that subjectivity is reduced and classification can be consistent.
We describe "a lot of work" in one or more of the following ways:
All of these require, potentially, a lot of work to resolve. Note: the guidelines given assume that remediation projects will commence by latest 3rd quarter 1998!
Note that none of the above lists are necessarily conclusive! The evaluation of the risk level criteria could be a lot broader than what we have described above.
That is why we have developed a classification scheme of CCIs to assist with the determination of risk level.
This classification scheme considers each CCI from a number of different perspectives. The exact classifications are summarised at the end of this document.
CCI type classification.
Configuration Item Type.
This describes whether the CCI is an application or a platform. If it is a platform, what type of platform is it.Configuration Item Type (Jones).
Capers Jones has described 20 different types that give a good indication of the complexity and effort associated with each type.Configuration Item Scope.
The scope ranges from a single line of code (which is the CCI that a code scanner typically addresses), through to a compound system (like SAP, BPCS, etc. which are actually sets of systems).Importance Index
. This describes the level of usage, ranging from a single user to a COTS, which may be used by millions. There is usually a correlation between development and maintenance cost and rigour and the nature of the use of the CCI.Date Involvement.
This set of classes describes the extent and nature of date usage in the CCI.
Date Class.
The date class considers the manner in which dates play a role in the applicationAcceptability Index.
This classification considers the types of dates used (Julian, ordinal, ISO8601, etc.).Risk Assessment.
Compliance Certification Level.
This classification describes the level of certification of the CCI. The range is from a system that has already been retired (but still appears on lists) to uncertified.Note also that certification is a sticky issue. Very few and quite possibly only foolhardy vendors would be prepared to offer a carte blanche certification for their product. This is because certification depends on so many different factors, including the way in which the CCI is installed and its interaction with other CCIs. As a consequence there has been significant backtracking on the part of many vendors in the last year with regards to the certification level of each CCI.
In any event, compliance level can only be verified if the certificate is accompanied by a description of the testing process (often a proprietary issue, or trade secret) and documented test results, which can be replicated consistently.
Risk Category.
The risk category considers the likely result if a CCI is not fixed. It ranges from no impact (if there is no date processing involved – although there may be dates in the system, but they are for sight purposes only, not used in calculation, access, sequencing, manipulation, etc.)Compliance Item Priority.
This classification describes the use of the CCI in the enterprise and its likely effect if it should fail.Proposed Action.
Compliance Strategy.
We need to determine how the problem will be addressed at a high level. For example, elimination, repair, retirement, developing an interim solution, replacement, transfer, and so on.Compliance Action.
The compliance action describes what should be done to address non-compliant CCIs (nothing, fix, etc.).Compliance Approach.
If the proposal is to fix a date related problem, then what is the approach that is proposed – expansion, masking, etc.All of these aspects come into play in finally determining the risk level of a CCI.
The process that is followed can be roughly described as follows:
The classification of items is based on the following simplified model of the role of technology in the enterprise (see the accompanying figure).
In its most simple form, an enterprise is made up of business units, which are supported by application areas. Application areas are made up of one or more applications or systems.
Business units can be functional, geographical, hierarchical, or according to any other classification. For example, they may be Admin, Finance, Manufacturing. Or they may be Gauteng region, Western Cape region.
Application areas are typically groups of applications or systems that work together to support a particular function or set of functions, for example, Financial Accounting, Production Planning, Order Processing, etc.
The terms systems and applications are used interchangeably as any combination of software and procedures that are applied to supporting a business function (for example, Debtors, General Ledger, Salaries, Master Production Scheduling, etc.)
A platform is any technology that is required by the application or system
Platforms therefore only have a reason for existence by virtue of the applications that require them.
|
Deliverable |
Exit Criteria |
|||||
|
CoA |
Name |
Description |
ID |
Name |
Prio |
Description |
|
2 Discovery & Assessment |
||||||
|
2A Preparation |
||||||
|
2A01 |
Define Y2000 Compliance |
Year 2000 compliant: technology, including but not limited to, information technology, embedded systems, or any other electro-mechanical or processor-based system, when used in accordance with its associated documentation, is capable of accurately processing, providing, and/or receiving date data from, into, and between the twentieth and twenty-first centuries, and the years 1999 and 2000, including leap year calculations; provided that all other technology properly exchanges date data with it. (IEEE P2000.1 Draft Standard for Year 2000 Terminology.) Describe how the enterprise views compliance. Note that there are instances where it will not be necessary for technology to be compliant. |
YI001 |
Compliance Requirements Definition |
A |
Approved YI001 |
|
2A02 |
Create Draft Compliance Information Request |
As a pert of the "due diligence" process, it is essential that one obtains statements of compliance from vendors, customers, partners and other enterprises that provide services or sell products to the enterprise. It is not practical to send the same letter to everyone. Letters need to be tailored according to potential risk and information required. If you right one all-encompassing letter, and send it to 5-6000 enterprises that interact with your enterprise in some way, and let us say that a miracle occurs and they all complete the 20-page missive completely, how will you process all the information received? |
YI101 |
Compliance Information Request |
B |
Compliance Info Request letters sent |
|
2A03 |
Confirm Scope with Sponsors |
Scoping a Y2000 project is very difficult. It is only at the end of this phase that one will be able to say with some measure of confidence what the impact of the Y2000 on the enterprise is likely to be. Be especially careful to not use "definite language" in this phase. Most enterprises find that they are faced with scope ballooning (rather than scope creep) when entering into a Y2000 project. |
YM101 YM102 YM111 YM112 YM121 YM122 YM901 YM902 YM903 YM904 YM905 YM101 YM102 YM111 PM230 FD400 WP001 |
Business Unit Inventory Locations Inventory Application Area Inventory System Inventory Platform Inventory Vendor Inventory BU / Location xref BU / Application Area xref Application Area / System xref Vendor / System xref Vendor / Platform xrefBU Inventory Locations Inventory AA Inventory Responsibility Matrix System Inventory Meeting Notes |
A |
Scope agreed to. |
|
2A04 |
Create Macro Inventory |
All known information, at a high level, should be captured using a reusable mechanism, so that detail may be added as it is discovered. |
YI801 YI803 |
CCI Inventory CCI Summary |
||
|
2A05 |
Determine Priorities |
Identify which systems are most important to the enterprise, and where the highest Y2000 impact is likely to be (in conjunction with the projected work to make the systems Y2000 ready). Identify which systems will need to be code scanned. Start preparations for taking code off-site for scanning. Agree whether the approach is to be impact assessment only, scanning only or scanning and remediation. If code scanning is to be done, be aware that most factories will have a methodology that is to be followed. |
FD400 FD400 |
System Inventory Inventory of Systems to be Scanned Impact Assessment Strategy |
||
|
2A06 |
Document Findings |
The purpose of this deliverable is to act as the first definitive measure of the impact of Y2000 on the enterprise. It can be used to determine a macro estimate for the amount of work, cost and time that is to follow. Users should use this deliverable to verify that no important areas have been missed, and that the project team is on the right track. |
YI901 |
Macro Assessment Report |
A |
User signoff of information presented. |
|
2B Detailed Investigation |
||||||
|
2B01 |
Describe Platforms |
YI121 YI122 |
Platform Summary Vendor Summary |
A |
All platforms identified |
|
|
2B02 |
Obtain Vendor Compliance Statements |
YI101 YI121 YI122 FD401 |
Compliance Information Request Platform Summary Vendor Summary System Summary |
A A A |
All vendors identified Vendors ranked by importance Letters sent to all important vendors |
|
|
2B03 |
Investigate System |
Depending on the Assessment strategy, assess the systems through interviews, documentation reviews, sight checking, or code scanning. |
WP001 YI131 YI411 YI422 |
Notes Database Compliance Summary Inputs Compliance Summary Outputs Compliance Summary |
||
|
2B04 |
Describe System |
YI655 FD401 |
System Map System Summary |
|||
|
2B05 |
Define Application & System Interfaces |
FD430 FD431 YI432 |
Interface Inventory Interface Description Memo to Partner System Project |
|||
|
2B06 Check Compliance |
||||||
|
2B06a |
Do Code Analysis |
YI804 YI806 YI805 |
Code Removal Contract Code Removal Plan Code Changes List Unused Code Summary Collateral Improvement Summary |
|||
|
2B06b |
Identify Replacement / Upgrade Items |
YI113 |
COTS Replacement / Upgrade Summary Compliance Requirements High Level Compliance Assessment |
|||
|
2B07 |
Confirm Priorities |
FD400 |
Systems Inventory |
|||
|
2B08 |
Confirm Business Risks |
YI412 PM504 |
Contingency Requirements Business Risk Summary |
|||
|
2B09 |
Determine Compliance Strategy |
YI652 YI801 YI803 |
Recommended Compliance Strategy CCI Inventory CCI Summary |
|||
|
2B10 |
Specify Changes & Action Steps |
YI802 YI651 YI602 YI670 YI701 YM014 |
CCI Segmentation Summary Implementation Alternatives Conversion Tool Recommendation Conversion Environment Recommendation Configuration Management Tool Recommendation High Level Cost Estimate |
|||
|
2B11 |
Define Compliance Testing Requirements |
TD701 YI702 YI703 |
Test Proposal Testing Facility Requirements Testing Tool Recommendation |
|||
|
2B12 |
Finalise Requirements Specification |
YI900 |
Impact Analysis Report |
|||
|
2C |
Level 1 Compliance Verification |
YM112 YM121 |
Platform Inventory Platform Summary |
|||
|
2D |
Planning & Authorisation |
PM014 PM203 PM210 |
Programme Budget Sub-Programme Work Plan Project Plans |
Client Authorisation of Budget Client Authorisation of Sub-Programme Work Plan |
||
Remediation
(Renovation): Convert, replace, or eliminate one or more system elements; modify interfaces. (IEEE P2000.1 Draft Standard for Year 2000 Terminology.)The Remediation Phase is the most difficult to provide a definitive framework for, since the exact tasks will depend on the remediation strategy (replace, retire, repair) and approach (expansion, encapsulation, masking). The tasks below should thus be regarded as being at a high level only. We recommend that sub-projects be created for, especially, the system renovation tasks. These can then be consolidated into tasks at a macro level in order to provide a comprehensive picture.
For example, if the renovation strategy is that a system will be replaced with new development, then the sub-project would be made up of the tasks that are typically associated with a new development framework. If the strategy is to repair, the sub-project would be made up of all the tasks typically involved with a maintenance framework. Instead of a project per system, one could group similar systems, or the systems that make up an application area. Alternatively, systems could be group by strategy.
However one groups remediation work, risk must be considered. It would generally be bad practice to group together high-risk systems with those of lower risk.
In fact, if a system is high risk (Risk Level is A or B), one should consider managing it as a separate project. This ensures that the focus on high risk systems is not lost.
When lower risk systems are grouped with a high-risk system, there is the possibility that attention will focus on the lower risk items to the detriment of the high-risk system.
The first step in remediation is to review the strategy that was proposed during the Assessment phase. One needs to confirm whether this strategy is still the right one – especially if there has been a number of parallel Assessment phases (typical in large enterprises).
The activity is concluded with the acceptance of Project Charter(s) for the Remediation Phase. A separate Charter should be created for each remediation project.
Having obtained management approval on the way to go, the next step is to prepare for the renovation work. If platforms are non-compliant, then they need to be updated (typically involves a "patch" or a "service release) or upgraded (usually involves a new version). The amount of work varies quite dramatically, depending on whether we are dealing with an update or an upgrade. Updates are often free, whilst upgrades must usually be paid for.
Upgrades may also involve changes in functionality. Therefore, it is possible that follow-on work may be involved (for example, if functionality has been added, or existing functionality has changed, or underlying data structures have changed).
Then, if a platform runs on other platforms, the upgrade may result in a cascade of upgrades. For example, the enterprise uses an MS-DOS-based accounting package that is not compliant. As it turns out, the only compliant version is the latest version, which requires Windows 95. In this case, to upgrade the package, the enterprise will probably have to replace the hardware, then upgrade to Windows 95 before the accounting package can be upgraded. As an additional knock-on effect, it is possible that other software would also need to be upgraded (like the word processor, spreadsheet and so on). Then, the users will have to be trained to work with a mouse, graphical user interface and so on.
In addition, if physical renovation work has to take place, it may be necessary to prepare the technical environment for this – latest versions of platforms must be ordered and installed, etc.
If code renovation is to be done off-site, authorisation must be obtained to do so, etc. In addition, it may be necessary to obtain software factory quotes, negotiate impact analysis and / or code renovation contracts, and so on.
Having done the preparatory work, it is then necessary to design the changes that will be made. This will depend on the nature of the remediation strategy. If a system is to be replaced, the existing system must be taken out (retired), this may involve modifications to partner systems, since it is unlikely that the functionality of the replacing system will match the existing system exactly.
If a system that is no longer required, is being replaced, one needs to be certain that there are no partner systems that depend on functionality that will no longer be available.
Therefore, the design of the solution can be quite complex and an essential task.
If there are any interfaces, the changes need to be planned, designed and implemented very carefully. An interface always has at least three essential components.
The "owner" of the interface is the system that has control over the layout of the data in the interface, how often it occurs, what the format must be, and so on. The owner is usually the system that required the interface to be created in the first place.
One of the main challenges is co-ordinating that all of these things occur in a properly synchronised fashion.
If the remediation approach is to expand dates, then data file layouts will change. Again, there may be other systems (partner systems) that share the same data. Changes to data layouts may impact on these partner systems.
Regardless of the strategy and approach that is adopted, the changes to the system need to be designed.
If a masking approach is adopted, bridging routines must be developed.
Before the renovation is attempted, the production system must be backed up and a freeze zone started. By definition, no changes may be made to the production system during the freeze zone (other than what one would call emergency changes - statutory changes or bug fixes).
The remediation strategy is then implemented, and regression testing is performed (note: it is vital that the remediation work be limited to Y2000-related changes to ensure that the duration of the frozen zone and complexity be kept to a minimum). Regression testing merely tests that the changes that have been made have not caused the software to regress – or go backwards, i.e. the system still does exactly what it did before the changes were made.
There is often a temptation to fix other problems that are uncovered in the process. Care should be taken that this extra work does not jeopardise the successful and timely completion of the Y2000 project. Note that allowing other changes to be made would impact on regression testing, and could require changes to be made to standard test cases.
Before the system can then be transferred back into production, a delta analysis must be performed to identify any changes that were made to the production system that slipped past change control. This is typically done by doing a binary comparison between the copy made of the production system when it was transferred to "maintenance" and the production system. If any changes did slip through, plus if there were "emergency" changes recorded by change control, these must first be retrofitted to the renovated system before it can be transferred back to production.
Finally, there would typically be a "warranty period" during which time the renovation project team would be on hand to fix any failures that might occur, before the renovated system is signed off.
|
Deliverable |
Exit Criteria |
|||||
|
CoA |
Name |
Description |
ID |
Name |
Prio |
Description |
|
3 Remediation |
||||||
|
3A Confirm Phase |
||||||
|
3A01 |
Review Remediation Strategy |
Consider whether the strategy proposed during the assessment phase is still correct (replace, retire, repair). This may have changed as a consequence of elapsed time (there is not enough time anymore to implement the proposed strategy, if the time to go-ahead decision point was too long); enterprise priorities as a result of other projects force a change, etc. |
PM040 |
Project Charter |
A |
Approved Strategy |
|
3A02 |
Review Remediation Approach |
Review the proposed approach (expansion, bridging, windowing, etc). Is the approach still feasible within the time remaining? |
PM040 |
Project Charter |
A |
Approved Approach |
|
3A03 |
Approve Phase |
Create a | ||||