Download - Managing Software as Knowledge (2005)
Copyright © Joe Gollner 2005
Managing Software as
KnowledgeDefense Software Symposium (2005)
Joe GollnerGnostyx Research Inc.
@gnostyx
@joegollner
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
Software as Content
Software as KnowledgeExpression 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
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.
Software Engineering Solution
SituationOptical 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
SolutionRequired 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
Software Engineering Solution
Key Points:
Exposing design
content in an
“intermediate” form
permits a variety of
“content processes”
to be run that extendthe core behavior by
enhancing:
- Quality control
- Online collaboration
- Continuous change
integration
Global Case Management System
SituationLarge 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
SolutionRigorous 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
Global Case Management System
Key Points:
Addressing the integration
challenges using an
extensibility modeladdressed 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).
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
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
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
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
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
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
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
Managing Software as Knowledge
Software and ContentSoftware 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
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