managing software as knowledge (2005)

17
Copyright © Joe Gollner 2005 Managing Software as Knowledge Defense Software Symposium (2005) Joe Gollner Gnostyx Research Inc. [email protected] @gnostyx @joegollner

Upload: joe-gollner

Post on 15-Jan-2017

202 views

Category:

Engineering


1 download

TRANSCRIPT

Page 1: Managing Software as Knowledge (2005)

Copyright © Joe Gollner 2005

Managing Software as

KnowledgeDefense Software Symposium (2005)

Joe GollnerGnostyx Research Inc.

[email protected]

@gnostyx

@joegollner

Page 2: Managing Software as Knowledge (2005)

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

Page 3: Managing Software as Knowledge (2005)

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

Page 4: Managing Software as Knowledge (2005)

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.

Page 5: Managing Software as Knowledge (2005)

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

Page 6: Managing Software as Knowledge (2005)

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

Page 7: Managing Software as Knowledge (2005)

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

Page 8: Managing Software as Knowledge (2005)

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).

Page 9: Managing Software as Knowledge (2005)

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

Page 10: Managing Software as Knowledge (2005)

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

Page 11: Managing Software as Knowledge (2005)

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

Page 12: Managing Software as Knowledge (2005)

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

Page 13: Managing Software as Knowledge (2005)

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

Page 14: Managing Software as Knowledge (2005)

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

Page 15: Managing Software as Knowledge (2005)

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

Page 16: Managing Software as Knowledge (2005)

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

Page 17: Managing Software as Knowledge (2005)

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