Tag Archives: Albert Einstein

Applying the Science Process to Process Change (see Recursion)

Now that we’ve established that very few people who work in “IT” have anything to do with technology, except as a tool, and that “computer science” isn’t about computers, we’re back at the original reason I began to write a book. I was once an ‘Information Systems Engineer’ and wasn’t very sure what any of those words meant, particularly “information”.

Software development teams often see their role as solving their customer’s problems. Software package providers say they are “solution providers”. What does the ‘unspeakable profession’ actually do? We got some clues from Hal Abelson in the video I linked to in my last post, that new areas of intellectual endeavour often confuse the ‘essence’ of their subject with their tools; so do we really engineer software?

Hal said that writing software is the process (or function) of formalising our intuitions about process (function.) Our software is a speculative formal abstraction of our intuitive understanding of a process we may not entirely understand. No wonder software projects so often fail. Like the rest of science, software is built on ideas that haven’t been proved wrong yet.

Software developers are presented with, or attempt to discover, experts’ (declarative) knowledge of the business process in the ‘domain’ we are about to change. This is ‘the abstract requirements’. Some of this may have to be implied from imperative knowledge embedded in existing software. It may be presented as imperative solutions. It may be incomplete.

We then follow our own process (function) for: ‘the way we do software’, in order to design a new process, some of which is also likely to be have to be embedded in software. Applying functions to change functions? That’s what functional programming does, isn’t it?

I believe that the ‘stuff’ of ‘computer science’, is state-change of systems of process and data. Who remembers ‘Data Processing’? Functional programming points out that the processes themselves are data and dynamic state-change is unpredictable and therefore dangerous.

Engineering would apply ‘project thinking’ to this unstable, poorly defined change. I may once have tried to be an information systems engineer but I saw that it didn’t work and took a 20 year break from software development.

Agile frameworks recognise such changes as risky experiments and carefully apply the scientific method, incrementally with feedback loops, to check assumptions.

We may need to return another time to see what functional programming has to say about 2 projects making concurrent changes from the same initial state. Until then, good luck with those.

As simple as possible, but no simpler

The title of this post is a phrase that is often ascribed to Albert Einstein. Indeed I have ascribed it, doubly-wrongly, myself in relation to modelling, without checking. I am a Bad Physicist. One of the many things I’ve learned since yesterday is that he didn’t say it. Ironically, it is probably an over-simplification of something he actually said: “It can scarcely be denied that the supreme goal of all theory is to make the irreducible basic elements as simple and as few as possible without having to surrender the adequate representation of a single datum of experience.” OK, maybe one-and-a-halfly wrong but let’s not get into the equivalence of modelling and theory right now.

There have been a few times in my life when I have known for a long time that there was something inherently wrong in my understanding of a subject. Yesterday, at the age of 55, I set a new record for Wrongness longevity. Despite having passed ‘O’ Level, ‘A’ Level and half a degree in physics, I confirmed my suspicion that I didn’t really understand Alternating Current electricity AC.) I’m not keen to discuss the details of how I proved this but I was relieved there was a circuit breaker.

I still wouldn’t say I really understand AC still but I have reached the point of knowing my unknown. Enlightenment may have to wait but in getting where I am, I’ve discovered there are lots of other people who don’t understand either and some of them are qualified electricians, making it very lucky for all of us that we in the UK are protected by a very well designed electrical system and ‘The Regs’ which allow people who don’t understand to navigate adequately with their one good eye, by following an explicit set of rules.

I also came across students struggling with the same misunderstandings as me, being advised by the kind of over-academic idiots that I thought were legally restricted to computing forums. If a kid is asking what “electron flow” means in an AC-circuit, s/he is probably not looking for an answer that involves quantum mechanics. But there is the problem: one of my secondary-school physics teachers, by trying to keep things as simple as possible, used an over-simplistic analogy between DC and AC current that has confused me for 40 years. Or he didn’t understand either.

To check if things had improved, I looked at current school science revision notes. If anything, they were worse. In summary: +ve and -ve don’t mean much in AC but “Live” and “Neutral” do. Current doesn’t so much “flow” as “oscilate”. Zero load is BAD. All the current! The advice not to mess with mains voltage unless you really know what you are doing also applies to me, and I was only trying to change a ceiling fan.

What I’ve learned may eventually find its way into my ‘Finds & Thinks’ book.

My Mindmap Wants To Womble Free

I’m writing ‘a book’ (possibly four) at the moment. I’ve already made public my idea that the ‘social networks’ that we’ve knitted out of the Internet can be used as an “idea collider”, to generate creativity; in the same way that particle accelerators are used to increase the rate of improbable collisions and accelerate scientific data collection and discovery.

Last night I read a tweet from Dave Winer. He both wrote and uses the outline editing tool Fargo to collect his creative sparks. Dave linked to an article by Alex Hillman on ‘Lifehacker’, which suggested that we should all keep such a ‘spark file’ for our light-bulb moments. This excited the idea particles floating in my brain. You might say it dropped a ‘spark’ on the dry tinder I’d been collecting and I replied. Dave didn’t understand a word I said. This post is an attempt to clarify what I think, at least to me.

What I didn’t look at last night was the embedded video, ‘outlining’ Steven Johnson’s book. It ends, “Chance favours the connected mind”. Steve smashed into my thinking the notion that we are not colliding ideas but idea components. We may not be bouncing ideas off one another, hoping for more sparks but fusing together half-baked ideas to make a whole. Almost like ‘society’ still exists on the Internet. Yikes!

Fargo is a web-accessible, scriptable, outlining tool that uses Cloud storage. “An outliner is a text editor that organizes information in a hierarchy”; what we often call a tree but is more often represented as a root system, drawn from the side.

Trello is one of many software implementations of ‘Kanban boards’. The idea was adopted from the Japanese automotive industry to become very popular with Agile software developers and several other more specialised software implementations exist. Trello’s blog proposed “The great horizontal killer applications are actually just fancy data structures. Spreadsheets are not just tools for doing “what-if” analysis. They provide a specific data structure: a table.” Trello’s specialist data structure is ‘List of lists’.

My own brain problem is not memory fragmentation but memory capacity. The fire-bucket I’ve used to catch my sparks for the last few years has been Mindmapping. A mind-map is a tree (or root) drawn from above (or below.)

The first point I failed to express last night was that ‘outlining’, Kanban boards and mind-mapping are topologically equivalent activities.
Hierarchies, list of lists and mind-maps are sylistic variations of exactly the same idea. My Spark File tool of choice is a mind-mapper called Freemind. I particularly like it because (it’s Free, ) it is graphical and allows links between branches, at any level. It breaks the hierarchy. The results are often ugly – just like reality.

Albert Einstein said that a model should be as simple as possible but no simpler. Human society is not a hierarchy but a complex network built on personal relationships interspersed with imposed structure. One of our favourite models is a delusion. If you doubt this, look at a platypus. Yes, I believe there is a better model but I’m still Wombling for half-baked ideas.

References:
Dave Winer’s tweet that started this <https://twitter.com/davewiner/status/448587642813546496
Alex Hillman on Lifehacker <http://lifehacker.com/5941997/defrag-your-brain-with-a-spark-file, including the video outline of Steven Johnson’s book ‘Where Good Ideas Come From’.
Trello blog entry on data structures http://www.joelonsoftware.com/items/2012/01/06.html

Tools:
Outline Editors http://en.wikipedia.org/wiki/Outliner
Fargo http://threads2.scripting.com/2013/april/introducingFargo
Kanban boards http://en.wikipedia.org/wiki/Kanban_board
Trello http://blog.trello.com/trello-ios-2-5/
Mindmapping http://en.wikipedia.org/wiki/Mind_map
Freemind http://freemind.sourceforge.net/wiki/index.php/Main_Page