Tag Archives: IT

To Be Derived

I thought I’d said something about this but I can’t find it, so sorry if you’ve heard this before:

Professor Brian Cox turned to Dr. Hannah Fry and said, “You have 30 seconds to define ‘calculus'”.
She replied, “It’s the study of change.”

What we call “The IT Industry” deals almost exclusively with change. As a business analyst, I’ve worked in business process re-engineering which is the process of changing the processes which cause those changes. I’ve worked in agile software development teams that try to change software while the requirements for the target they’re travelling towards are changing, so the changes have to change.

I’ve met calculus in maths and physics but never in computer science. Why on earth aren’t computer scientists up to their necks in calculus?

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.

The British Computing Society

I just engaged in a debate about the BCS on LinkedIn . Yes, THAT again: https://andywootton.wordpress.com/2013/11/08/is-it-whats-in-a-name/

Officially, the three letters B, C and S, don’t stand for anything. They used to mean British Computer Society and that is what it still says on the Royal Charter that bestows upon the BCS the royal privilege of awarding Chartered status to members. I’ve suggested we get out the correcting fluid (or an appropriately skilled scribe) and change the middle word to “Computing”.

In his famous book title, Niklaus Wirth said, “Algorithms + Data Structures = Programs”
https://en.wikipedia.org/wiki/Algorithms_%2B_Data_Structures_%3D_Programs

My suggestion was that ‘Computing + Information = what BCS members do’

Look what Wiki-P says about the word “computing”: https://en.wikipedia.org/wiki/Computing

“Computing is any goal-oriented activity requiring, benefiting from, or creating algorithmic processes—e.g. through computers. Computing includes designing, developing and building hardware and software systems; processing, structuring, and managing various kinds of information; doing scientific research on and with computers; making computer systems behave intelligently; and creating and using communications and entertainment media. The field of computing includes computer engineering, software engineering, computer science, information systems, and information technology.”

At the moment, the ambitions of BCS Council only extend as far as the ‘IT’, which comes last in the list. Some of us “software engineers, computer scientists and information systems” people feel we are not being adequately represented. I promise I didn’t change Wikipedia to prove my case.

There aren’t many things in informatics (the Anglicised version of what the rest of Europe call ‘computing + information’) that can’t be represented by a ‘directed graph’.
https://en.wikipedia.org/wiki/Directed_graph#/media/File:Directed.svg

The ‘blobs’ normally show the ‘processes’ where the computing happens (people or machines) or ‘information at rest’, typically with a different colour or blob-shape. The ‘arcs’ or ‘edges’ typically show potential ‘flows of information’ or ‘control’. It is an unfortunate coincidence that the directed graph example I found shows us going around in circles.

Computing is post-Tech

  1. When cars were new, rich people hired a mechanic, who also drove the car.
  2. After a while, cars were reliable enough that driving skills became more important than mechanical knowledge and the rich hired a chauffeur.
  3. Eventually driving became easy enough that anyone could do it and cars were cheap enough that most people could have one.

Computers are mostly ‘3’ with a bit of ‘2’ for the tricky stuff. Why do we still call the career “Information Technology”?

I want my next computer to be a red one that goes with the lamp-shade and has a bit of “umph”, for when I’m late for a deadline. Complexity has been virtualised, or at least Clouded .

But is IT art?

What is IT? It’s Information Technology, clearly but why is it that rather than “Information and Communication Technology”, as UK schools call it? Is communication simply information on the move? Are messages only data in transit? Conversely, ‘are’ data messages that have been frozen? Is communication more than messages? Perhaps communication is related to messages as information is related to data?

What are data, information, knowledge, wisdom and enlightenment? Most of modern computer science is built upon Claude Shannon’s Information Theory: http://en.wikipedia.org/wiki/Information_theory

“Information theory is a branch of applied mathematics, electrical engineering, and computer science” How would the worlds of applied mathematics, electrical engineering, and computer science take it if I publish a book that points out that Shannon’s definition of Information is, at best, unhelpful and possibly wearing holey clothes? Well, I’m sure that because of the enquiring minds of scientists etc.

In ‘A Mathematical Theory of Communication’:
http://cm.bell-labs.com/cm/ms/what/shannonday/shannon1948.pdf, Shannon said,

“The fundamental problem of communication is that of reproducing at one point either exactly or approximately a message selected at another point. Frequently the messages have meaning; that is they refer to or are correlated according to some system with certain physical or conceptual entities. These semantic aspects of communication are irrelevant to the engineering problem. The significant aspect is that the actual message is one selected from a set of possible messages.”

Shannon’s theory appears not to relate to what we would now call ‘information’ at all but to data or even pattern.

Since we are questioning the foundations of computer science, what is art?  Is art everywhere?

Donald Knuth produced a 3-volume ‘Art of Computer Programming’. Clearly he saw the creation of new algorithms as a creative act.

Does Software Engineering deserve it’s name? Or is it Software Craftsmanship? Agile software development is a recognition that the project management methods from hard engineering cannot be applied to software, where the butterfly effect of uncertainties in requirements can lead to chaos. Agile works by leaving decisions later in the process when a feedback loop from incrementally delivered software better informs the requirements and allows emergent designs. But are Agile/Lean teams doing incremental delivery ever able to create beautiful design? Does great art/design need an architect who owns and drives the creative vision?

I remember going to a talk about Smalltalk where the speaker claimed that “No worthwhile piece of software has ever been written by a team of more than 2, maybe 3 people.” to an audience largely made up of the Inland Revenue IT department.

How to make friends and influence people. You know that Shannon bloke? Pah!

Power and Lust

I’ve spent a few days attaching solid-wall insulating lining-paper to the walls of my home office. To stop me climbing up said walls and hopefully to drown out most of the swearing, I’ve been listening to the ‘Business Shift’ podcasts by Megan Murray and Euan Semple. I started with #19 after seeing @Euan tweet about it, then listened to #6 on “Power”, largely because I feel a recent victim of its abuse. Since then, I’ve gone back to the beginning and forward, so far, to #10 “Security”.

Megan and Euan are interested in some of my many obsessions and we seem to share similar values but they come at everything from a slightly different angle, which is always interesting. Listening quickly to several podcasts, recorded over months, allows you to see recurring themes: change, corporate culture, process, networks, complexity, infinite shades of gr(e/a)y (including ball-gags), relationships, anarchism, agility and “IT”.

Their distrust of ‘IT’ is very similar to my distrust of ‘Management’ and they blame it for exactly the same things I blame managers. I see IT from below, where well-meaning and knowledgeable techies propose great ideas that get watered down and corrupted by ‘IT Management’ who feel the need to simplify everything, and then blame the resultant crass decisions on other managers ‘in the business’ (I’ve never quite understood why IT isn’t .) Where I hear “the business won’t pay for it”, I guess Megan and Euan are told, “IT say we can’t do that.” A quick comparison with science and politicians is alarming.

I’ve finally been pushed over the edge into responding by the suggestion that information ‘Security’ is an IT issue. I spent a year of my life telling IT managers that they may own the ‘Technology’ but that the ‘Information’ belonged to the business; that IT controls were only an answer after you had helped the business identify information resources and analysed value and risk. My attempt to change culture was countered by making my post redundant, centralising IT Security and appointing someone who didn’t want to mess with the borders of power. I’m sure my customers were told that I’d wasted a year but now they’d bought in someone who knew what he was doing and they got a single desk-top with automatically updating anti-virus software and fire-walls, whether we needed it or not.

Megan and Murray talk around the way in which the world of work is being ‘Shift’ed by Internet-enabled networks of (hopefully) intelligent humans. A world where people in the business who are trying to do useful things can connect directly to people who have expert knowledge of the tools they need, bypassing the layers of power-hungry or frightened people who corrupt the signal to further their own selfish interests.

You should have a listen and decide whether you want to take back the world from the people who think they own it http://business-shift.com/. I particularly recommend http://business-shift.com/podcast/2013/4/25/shift-episode-006

IS, IT, What’s in a Name?

I’m a Member of the British Computer Society. In order to be granted a Royal Charter to take its place alongside all the old professional engineering institutions, the BCS needed to decide its members were going to be Chartered something Engineers.

There was a big debate. The obvious choice was “IT Engineer” but that proved unpopular with members. Some felt it sounded like the bloke who comes to fix your photocopier and some people didn’t really see themselves as technologists. They were more interested in things like business processes or theoretical data models. The outcome was that BCS Members who also passed the entry requirements of the Engineering Council got to call themselves Chartered Information Systems Engineers. I was one of those people.

Now, I may have stopped watching for a while because the next thing I knew, MBCS who weren’t also Engineers were going to become Chartered too. Clearly they needed a different title. Maybe I was busy that year but suddenly I wasn’t a CISE any more – I’d been B.O.G.O.F.ed. My CISE got swapped for a CITP and a C.Eng. Yo!

Hang on!… a C IT P? Yes, a “Chartered IT Practitioner”. But I thought we all decided we didn’t want to be called “IT”.
‘Well, yep,  you did, but Marketing has tested it with focus groups and it has poor public recognition. They don’t know what “IS” is. They want to call us “IT”.’

Well, that’s All Very Well BUT “The Public” are totally devoid of clue. If they don’t know, it’s because Marketing have failed to explain it to them properly and by now they probably have a PC at home and might actually be interested in listening. If we could have explained the difference between a system and the technology it runs on then maybe people wouldn’t have gone out and bought a Linux netbook and had to take it back because it didn’t have Microsoft Word on “and the kids need that for school” – because the government don’t understand either!

I was working in an “Information Systems” department so, obviously, it needed to be restructured about every 18 months.
Clearly this is dangerous so you don’t want anyone internal to do it, in case it all goes wrong. Instead, you get in a consultancy to tell you whatever they are telling everyone else at the moment, until they either run out of customers and have to have a new idea, or everyone finds out what a really bad idea it is. They are VERY good at moving on just before that happens though. It is their second core skill, right behind ‘recycling old ideas with new names’. (I know this doesn’t sound likely to be true but we found the slide pack on the Interwebs with only the logo changed.)

This time The Plan was to split “IS” into Demand (analysis), Domain (development) & Delivery (operations).
Names in parenthesis are the names from the 1990 restructure, for reference and because they make more sense.

Then you simply rename the department to “IT” to show it’s all shiny and new.

Stage 2: Outsource Delivery – with all the hardware and communications technology
Stage 3: Outsource Domain – with all the software and database technology

Leaving: an “IT” department that has no “technology” and very few people who know anything about “technology” but is the customer for all the “Information Systems”. You know IT makes sense.