The document discusses managing software as knowledge by treating software as a type of content that can be represented and processed using XML. It provides two examples where exposing the underlying content of software solutions, such as business rules and interface definitions, allowed the integration of different software tools by developing supplemental components to process and bridge the exposed content. This content integration approach addresses integration challenges and allows requirements to be accommodated with minimal additional cost. The document argues that all software solutions can be viewed as content solutions and automation can be applied to implement solutions to persistent software challenges by contextualizing and optimizing the underlying knowledge content.
2. Software as Knowledge
Knowledge
Usefully understood as a public
artifact
• Like information, knowledge is a
communication intended to inform
recipients (human or surrogate)
• Unlike information, knowledge
exhibits a degree of abstraction
supporting a range of potential
applications in various contexts
Software
A formalized expression of
intention designed to guide the
behaviour of automated systems
3. Software as Content
Software as Knowledge
Expression of desired behavior
Embodies layers of abstraction
supporting a range of operations
within different contexts
Enables progressive delegation of
functions to automated tools
Exhibits high degrees of
• Structural complexity
• Internal redundancy
• Contextualization
Emerges as an output of a complex
formative process
Gravitates towards Barnaclization
(degeneration by incremental improvement)
» Software as Content
» Text adhering to a
specialized syntax
» Not generally managed, or
at least, not efficiently
4. A Tale of Two Software Projects
Software Engineering Solution
Requirements: high speed development, client-specific customization,
rapid adaptation to environment changes, evolving quality controls.
Solution: integrated software design and code generation solution
featuring fully declared design objects and the ability to output
precision code modules in a variety of languages for different devices.
Global Case Management System
Requirement: integration of document and content management
system with enterprise Customer Relationship Management (CRM).
Solution: introduction of a minor component into the CRM that enabled
the ongoing extensibility of the CRM functionality to meet core
requirements. Avoided a multi-million dollar integration
and roll-out project.
5. Software Engineering Solution
Situation
Optical Networking venture building a new product suite
Distributed, multinational development team
Speed of software adaptation core to their “value”
Needed to wholly control and own their work environment
Solution
Required a complete Software Engineering Platform
Core System: design environment and code generation modules
Targets: enhanced quality, improved productivity, more refined
contextualization
Supplemented the original CASE tool with extensibility layer
Permitted all stakeholders to participate in the design process
Developed in five months and met all system objectives
6. Software Engineering Solution
Key Points:
Exposing design
content in an
“intermediate” form
permits a variety of
“content processes”
to be run that extend
the core behavior by
enhancing:
- Quality control
- Online collaboration
- Continuous change
integration
7. Global Case Management System
Situation
Large scale enterprise solution for an Immigration and Citizenship
Case Management system supporting global user community
Document and Content Management dimension of requirement was
very significant, very challenging and absolutely essential
Initial concept was to integrate a COTS DM/CM Solution with the
enterprise CRM package and to undertake parallel deployment
Solution
Rigorous requirements discovery and distillation effort undertaken
Alternative architectures assessed
Target solution introduced a minor enhancement to the CRM
platform that extended the Case Management capabilities to
encompass essential Document Management & Content
Management requirements
8. Global Case Management System
Key Points:
Addressing the integration
challenges using an
extensibility model
addressed all of the core needs
and permitted a wide range of
parallel requirements to be
accommodated at minimal
additional cost.
The solution embedded
content intelligence into the
underlying database and
network layers. Deployed a
“micro-document architecture”
that supported working with, and
serving, document fragments
(content components).
9. Lessons Learned
In both of these cases:
Mainstream COTS software products were inadequate
• In isolation and in unison
Initial integration efforts proved unworkably complex
Integrating different COTS applications highlighted
differences in the underlying “paradigms”
• Traditional CASE tool versus real-time network management
• CRM versus workgroup case management
“Leading-Edge” scenarios exposed internal limitations in
the concepts behind each of the COTS tools
10. Solution Secrets
In both of these cases:
A workable solution emerged by exposing the content being
managed and processed within the COTS tools
A workable solution emerged by exposing the system logic
governing the COTS tools as content that could be highly
parameterized
Supplemental components processed the exposed content and
effectively bridged the gap between different COTS tools and
between tools and requirements
The end solutions were very simple to implement and maintain,
and provided for ongoing adaptability to address other needs
11. The Common Ingredient
Content Integration
Exposing the “content” is analogous to reverting to first
principles or finding the common denominator when
solving a problem
Any impedance between the paradigms governing
different COTS tools can be addressed by analyzing
and processing the exposed content and logic
The content integration interfaces become
independent components that can be used to address
parallel requirements as they emerge
The common form used to expose content - XML
12. Touch Points
Key Points:
XML simply provides an
extensible form in which a
wide range of content types
can be represented including
those needed to fully express
the intentions behind software:
- business rules
- data types
- validation parameters
- interface definitions
- contextualization rules
- programming notes
- user messages….
All these can be
programmatically interpreted
13. The Persistence of Knowledge
Knowledge:
Exhibits the highest level of
persistence when compared
to business demands or
system capabilities
Manage the knowledge & all else follows
14. Knowledge as Touchstone
Knowledge Assets:
The availability of executable
knowledge assets enables a
pragmatic posture to be adopted
with respect to exploiting
process and tool options
Well-managed knowledge assets
can be deployed in many ways
15. Solving the Real Integration Challenge
Integration:
The integration of tools is only
one part of the challenge with the
real challenge being
overall solution integration
Processable integrated content has been
the missing ingredient
16. Managing Software as Knowledge
Software and Content
Software is a knowledge artifact instantiated as “content”
XML can be exploited as the format for this “content”
Managing software can be fruitfully viewed as an
application of “content management”
All software solutions become “content solutions”
Automation can be applied to implement solutions to many
persistent software challenges, for example
• Contextualization – tailoring code to specifically match a particular
set of requirements while being drawn from a larger pool of more
generalized components
• Optimization – streaming the knowledge behind the software into
the exact right expression for the target deployment and thereby
making the end product a perfect fit for the environment and the
resident tools
17. A Brief History of Content Management
Early Content Management
Managed content as “files”
Provided revision control including differencing
Indistinguishable from “software revision control environments”
Challenges with Early CM Systems
Functional requirements rapidly outstripped underlying paradigm
Management and processing of sub-structures became key
Complexity profile of environments grew “exponentially”
“Contextualization and Optimization” are the contending poles
Next Generation CM Systems
Truly manage “content” & the associated processing
Handle the natural complexity of content
Turn content assets into executable knowledge