Wednesday, October 31, 2012

Hacking The Essence of Software

Working paper on the nature of Software


This paper is a condensation of second part of a monograph called “Tangled Hierarchies” which has been cut down a briefer version for publication. The first part of the paper concerned the way in which tangled hierarchies might be used to model the design of systems, and perhaps give us a way to show the consistency of domain specific design languages like the Integral Software Engineering Methodology (ISEM) first described in Wild Software Meta-systems[1]. In a subsequent paper “Reworking the Integral System Engineering Method Domain Specific Languages” at CSER11 the original language was expanded from 750 to 1700 some statement templates based on research into General Schemas Theory in the dissertation of the author Emergent Design[2]. This further part of the monograph looks again at the core of the realtime minimal methods which is the State Machine along with its dual the Petrinet and attempts to look at them in a new way based on the ideas of C.S. Peirce which are used to re-understand the notion of the Turing Machine. In order to understand Software in its essence we must return to well-worn concepts again and again and attempt to comprehend them more deeply. There are perhaps more secrets for them to give up and sometimes what seems so familiar and commonplace have aspects that are not recognized due to the assumptions we make about them that are unwarranted. C.S. Peirce was the greatest American Philosopher, but is hardly known in many circles where is ideas on Pragmaticism have not been fully appreciated. It could be that his work could give us a new perspective on the Turing Machine and within it the state machine if we applied the principles that he developed in his philosophy and semiotics to the Turing Machine to comprehend it in a new way.

The Essential Nature of Product Traceability and its relation to Agile Approaches


Working Paper written for INCOSE2013

Discussion of the essential features of product traceability maps in relation to requirements, architecture, functional models, components and tests as a set of order type hierarchies and their crosslinks. The paper lays out the structure of these ideal traceability relations which define the essence of the product under development. Then the intrinsic connection of these trace relations to the representations of the product design is discussed. The importance of the trace relations to the product are made clear and then abandonment of traceability in Agile approaches is discussed, and a way to transform between narrative (story) representations that appear in the product backlog and the canonical form of the trace structure of the product is discussed. The fact that it is possible to transform back and forth between narrative and canonic representations of trace structures, and the fact that trace structures can be produced in a just in time fashion that evolves during product development shows that it these trace structures can be used in both an agile and lean fashion within the development process. Also it is shown how by doing trace structure outside the narrative representation has the additional benefit of helping to determine the precedent order of development so rework can be avoided by developing component out of sequence that their technological infrastructure and architectural expression of capability demands. Thus canonical trace structures using this model can be seen as an essential tool for product owners to use to help structure and prioritize the backlog in the Agile approach to software and systems development.

What are the Principles that arise in Practice?:

Working Paper on Principled Software Systems Engineering Practices


Bret Victor (http://worrydream.com/) has made an appeal for Principles in Life and in Software Engineering. His own principle is that creators should not have their tools obscuring their work, so that outcomes are transparent even in Software Programming. He has created some examples of what that means to him which he expresses eloquently in the video “Bret Victor - Inventing on Principle” at http://vimeo.com/36579366. Watching Bret Victor’s presentation brought home to me something I had always felt and believed, but had not articulated very well to myself previously, which is that we need to live by Principles, and guide our lives and our work in the world by Principles, and also if necessary die by Principles (like Freedom). And this includes not just our moral life as he says but our creative life within our chosen vocation. But where I differ with Bret Victor is that there is not just one guiding Principle but many of them in my life’s work and I thought I would attempt to lay the groundwork for expressing something about the nature of principles and their implications in this paper which is inspired by the work of (Bret) Victor.