Here is my
attempt at summarizing some of yesterday's discussions.
system lives in an environment where change is the only constant. The
world is changing, the users are changing. The system must be capable of
changing in unexpected ways.
The information system must be designed in such a
way that it is capable of dynamically "growing"
and "changing" through user interactions. That
system must be capable of growing to support "more of" an existing
capability. I refer to this capability as "system extensibility".
system must be capable of changing to support capabilities that were never
imagined by the system designers. I refer to this capability as "system
the initial system is launched, the system
designers and developers are out of a job! The system grows and changes on its
own, as a result of interactions with the users.
Example of Extending an Information
Suppose that the system development team has implemented a keyword search
capability. Further, the team
has provided a mechanism for users to add additional keywords (and map them to
the system's data). The keyword
search capability already exists. It was designed and implemented a
priori. The users are simply
extending an existing capability.
Example of Evolving an Information
Suppose that the system development team has
NOT implemented a capability to
search based upon category. Suppose that some time after the system has
been in operation the users realize the need for category-based searching. Let's suppose that the team has provided a generic mechanism which allows the users to create mappings to the system data. The users employ
this mechanism to create the category-based search
capability. This new capability
was never conceived by the system developers. Thus, the system has
evolved (in an unexpected way).
[Len, help me
here] New systems may spawn off from the original information