Category Archives: Information Revolution

Lean or Agile? Pick any two.

I still see many people writing about adopting Lean and/or Agile software development. I can remember how difficult it was for my team to work out what ‘Agile’ was and I think it has got harder since, as growing popularity has drawn charlatans into the area. I see two main types of useful articles.

  1. What (theory) : “It’s a philosophy” articles which usually point first towards the different values of agile and lean practitioners. But you can’t “do” a philosophy, so we get:
  2. What (practice) : Methodology – the study of methods that embody the philosophies. Many will say that Lean & Agile are not processes but I disagree; I think they are ‘software development process’ change processes.

I’d like to try something different: WHY?

The old ways of planning engineering projects, used for building a tower block, didn’t work for software. We don’t know enough, with sufficient certainty at the beginning of development to design top-down and are rarely sufficiently constrained by physics to be forced to build bottom-up.

Unusually for computing, the words ‘lean’ and ‘agile’ have useful meanings.

Lean is about ‘travelling light’, by avoiding waste in your software development process. It uses observation and incremental changes of your current process, while you incrementally deliver business value via working software.

Agile is about doing only valuable work, being nimble and able to change direction, in response to changed requirements or better understanding. It recognises that there are very few completely stable business processes, so software developers need to identify changes that will have impact on the software under development and apply effort in a new direction.

I recommend that you consider both approaches, as they are complementary. Neither removes the need for appropriate engineering practices. We’re only throwing out hard-engineering stuff we packed but didn’t prove useful on a software journey. We throw out what we don’t need, to prevent the weight of unecessary baggage holding us back.

Managing a Post-Hierarchical World

[ This post is a version of my reply on LinkedIn to a post by Euan Semple,
‘A Plague of Managers’ (upon your WikiHouses?).

See: https://www.linkedin.com/pulse/plague-managers-euan-semple ]

There’s an interview with Jimmy Wales of WikiP in CMI’s ‘Professional Manager’, Winter 2016. He says a manager has five functions: planning, organisation, co-ordinating, commanding and controlling. Wales would like to change the last two functions to: inspiring and coaching.

The ‘Agile movement’ is pushing the remaining three functions towards fluid planning and self-organised, networked teams rather than hierarchical power-structures. That suggests to me that the only function left is picking sufficiently inspirational strategies to keep the attention of your teams and to meet their coaching needs. It seems an environment in which teams should be appointing their managers.

If I was a manager, with no remaining knowledge of ‘how things are done now’ myself, I’d be fighting against all this modern nonsense and trying to maintain the status quo; lashing myself in position at the top of a tree made of single-points of failure for information flow, so that I could cut off any branches as threats emerged.

Ah… I see!

Do you need a WiWi?

There have been HiFi, WiFi and Wiki. I demand WIWI (yes, wee wee.)

Ignoring the truth, that Wiki means “quick” in Hawaiian, and believing the later redefinition that it stands for the self-documenting “What I Know Is”, why can’t we have “What I Want Is”s?

There seems to be a huge disconnect between people who think of good product ideas and people who can build them. Imagine a system where noone had to take the credit for an idea and better things got built by software and hardware hackers, simply giving credit to the person who thought of it.

Money would be nice, obviously, but that demonstrates how silly any idea of “Intellectual Property” that doesn’t include ‘ideas’ is, in an information economy.

This idea has been: ‘a WiWi’ by Woo.

I’d like this to be a Free software reference implementation with a distributed system and open interfaces but if I’m stupid enough to give away ideas for the common good…

Sub-atomic Idea Collider – too much WIP

Long-time readers of this blog may remember when I build the SIC out of recycled Internet meme-pipes and any random noise I had lying around. The basic engineering principle was that creativity happens when ideas collide, so by maximising the number of streams, then crossing them, I could get the Internet to super-charge my creative process. In no time at all I had started three different books.

Lean practice puts a maximum limit on Work-In-Progress. The less you do, the faster you will achieve, the quicker you will deliver value.

The Bad News:

  • You can either be creative or efficient.
  • You can be really competitive or really care about quality.
  • You can be decisive or know about the details.

Compromise is balance. It’s a Yin and Yang thang.

I shall probably continue to oscillate between the two, attempting to optimise cadence. I may come back to cadence when I feel I really understand what it is.

1-D Upon a Time-line

Warning: Choking danger – may contain small pieces of Physics.

I think most people have difficulty visualising any world with more than three dimensions. I’ve always struggled to think about 1-D.

A football has three dimensions. You can kick it somewhere else, a short time later. A flat piece of paper has two dimensions and a straight line has one, I was told. “Later”, “flat” and “straight” are clearly references to particular ‘higher’ dimensions. Draw a straight line on a flat piece of paper and roll it up then throw it and I have a line in four dimensional space-time. ‘Lower’ dimensions refer to, perhaps are defined by, constraints in ‘higher’ dimensions. As we are not yet capable of switching off time, I’m not convinced the human mind has the necessary hardware to experience one dimension.

I’ve always known intuitively that 1-D was very difficult to isolate. A line is the path an imaginary point might take over time if it was banned from the second and third dimensions, or indeed if we just ignored any movement through those two dimensions. If the line on the piece of paper had instead been an optic fibre on a roll, the light passing down it could still be considered to be in our conventional understanding of one dimension (plus time.) The only way it is possible to observe 1-D would be as a point at a moment in time, though it would have to be an infinitely small light source. We can imagine a set of such points at exactly the same moment in time. Such a line could never be observed by a human. I’d normally blame Heisenberg but I think the ‘infinitely small in all but 1 dimension’ thing has given him a lucky break this time.

I returned to this subject after reading James Gleick’s description in his book ‘The Information’ of Richard Dawkins’ thoughts in ‘The Selfish Gene’ that although we are all familiar with the 3-D double-helix structure of DNA, the information it contains is effectively a bit-stream, like the light in our fibre. If we watch a single firefly, flashing against a jet black night, we are observing the output of the one-upon-a-time dimension. That may be as close as we can get.

1-D is hard for the same reason as 5-D; we have never seen it. We now have the technical capability to construct virtual worlds in more than 3(+Time) Dimensions but we humans don’t have the sensory input equipment necessary to observe them all at once. We may need to take our brains to another dimension, as predicted by ‘The Prodigy’, and Max Romeo before them.

It is left as an exercise for the reader to estimate the size of a bit.

https://en.wikipedia.org/wiki/Out_of_Space.

Remoting-in to the Virtual Box

As no-one spoke up yesterday, I’ll assume everyone has accepted the notion that all software runs in a virtual universe, free from the laws of physics. That’s why we don’t need to run software developments like an engineering project. They are not subject to all of the constraints that make engineering hard. We can ‘build the roof first’ and worry about ‘how strong the foundations need to be’ later, when we understand more about the model we have built of our incomplete idea. Like this blog post, Agile products are almost free-floating in a world of our invention, until they need to communicate with people. We are stuck here, interacting with this parallel universe, using our big, heavy ape arms and clumsy interfaces. We drag behind them like tired children.

Did you see the original ‘Tron’ film? Do you remember how the programmers’ personalities were represented by the programs? That was a true story. Programs can be gentle, kind, beautiful but shallow, or bullying ego-maniacs, just like their creators. They can appear to have a certain character while actually being something else entirely. Software reflects aspects of the personalities of it’s creators, as expressed within their self-imposed cultural boundaries.

I think most people reading this will accept that evolution theory is most likely true and that genes carry the necessary code to make new life. I want to propose my own hypothesis. I don’t know if I’ve re-invented an old idea so please tell me if you’ve heard of it before. I think that every form of life has its own culture and that DNA and culture have evolved together in a symbiotic relationships, like a third interlocked spiral. The main difference is the speed at which the invisible cultural strand can change. We may still have the emotional responses of cave dwellers due to our DNA but we can change our political and religious opinions in a day. Every system that survives, protects itself, so we have evolved early-adopters, fashion-victims, people who want to fit in and reactionaries, to quality-check dangerous ideas. As a species we resists change, because change has proved to be really dangerous. At the same time, we constantly strive to try something new because that has been proved to give evolutionary advantage, if you don’t die trying. The variation in the attitude of humans is one of our evolutionary advantages. The two are kept in balance by death of the over adventurous and economic failure of the over-cautious.

“Where’s he going with this?”, you may ask. Well: just as Richard Dawkins put forward the idea that we are carriers of our selfish genes, I’m in turn proposing the idea that selfish us and our selfish genes are carriers of our cultures and that if we can project human culture into software, we can free it, and ourselves from the rules of physics and the constraints of limited resources and thereby, finally, from the drive to be selfish.

Inside the Virtual Box

After its Autumn maintenance shutdown, the Large Idea Collider is back up to operating temperature. I’ve run a few simple tests in the shower this morning (the cooling system?)

A link provided by video provocateur http://emmapuente.com/ showed a dancer interacting with a digital grid, projected onto an invisible net box in which she performed. It reminded me of a band called ‘Mad Action’, that I saw in about 2003. They were a 2-piece who performed inside a 3-sided white box onto which were projected the shadows of 2 other virtual musicians, probably also them, who were also playing on a pre-recorded backing track. Their ‘real world shadows’ were also cast onto the sheet. The audience experience was a combination of reality and projection from a virtual world and different from those trapped inside the boxes, arguably more ‘real’.

For quite a while, I’ve been using the Internet slang IRL (In Real Life) fairly sarcastically, as a large proportion of my life seems to take part in this semi-virtual domain. Obviously, I’m not alone here, @euan regularly talks about his networked life, http://euansemple.com/theobvious/.

As already reported, the time-shifted video of Hal Abelson’s (http://codequarterly.com/2011/hal-abelson/) 6.001 course at MIT re-enforced my belief that process (and therefore software) exists outside of our gravitational field. It is a world in which, he argues, we can do anything we can imagine. He must lack imagination but we can do ALMOST anything.

The question then, is: where is the Human Computer Interface now? Forget that question! Half of the computational machinery I use is virtual too. Where is the boundary between reality and our (almost) wildest dreams?

Here’s a woman dancing in a virtual box. Or is it the other way around?
http://thecreatorsproject.vice.com/en_uk/blog/dancer-bends-light-in-stunning-projection-mapped-performance?utm_source=Facebook

p.s. Is this what famous mathematician Charles Dodgson was grasping for, in his philosophical book about mirrors? https://en.wikipedia.org/wiki/Lewis_Carroll

An Open web service protocol for distributed notification

We all need ‘a place of our own’ in ‘the Cloud’, to replace ‘the desktop’ as the place notifications are sent to and distributed from. To be successful, it would need to be based on open protocols, so that any service provider can host the service, and must include at least one good FOSS implementation so we can DIY it. Is there a W3C committee working on this, that I haven’t heard about?

I frequently move between Android phone & tablet and Ubuntu desktop. I am sick of being repeatedly notified of something I read 2 hours ago. My devices don’t read my notifications, I do and I don’t want to have to go to a web wite to fetch them. I want them to find me, be read, then be cleared unless I say not to and for that to be propagated. Most of the OSs seem to have finally got a working notification system, about 3 years after it might have been useful without such a service.

Ubuntu or Mozilla would have been obvious places to launch an anti-competition service back then, for the good of the users. Now, I guess we’ll have to depend on Mozilla and even then they’d try to market it to sound like it depends on sign-up to Firefox Sync.

Overlapping-tribes notification would be an obvious expansion. Google Circles would have been a good place to start, if we could trust them. A WebRTC Googlist told me that the people who took the XMPP out of Googe Talk are ‘no longer with them’. The trouble is: I’m not sure if that was for being Evil or for getting caught.

The Value of Software

I’ve been reminded of the fastest 1980s transatlantic software delivery method:

  • Put software on a magnetic tape.
  • Put the tape in your hand luggage.
  • Fly to the USA.
  • At customs, when asked if you had anything to declare, say “This tape”. If asked the value of the tape, make a fast decision whether to say $10 and risk 12 hours of interrogation as a possible communist spy, there to steal America’s software secrets or say $150,000 and be sure of an hour of form filling.

It has occurred to me that the correct answer was:
“$10. The licence costs far more but I’m not carrying that. It will be sent on later.”

Software is worth nothing until you use it and only until you stop using it. Free software costs nothing, so developers need to get paid in a different way. Should Free & Open Source Software be paid for only by those who use it to generate a profit and could it generate an international income for the countries that fund it, adjusted for national wealth?

Could we have a licence to receive free software updates, only paid for by businesses, according to their income (before tax fiddles) and routed to the teams that developed the software that is most used? Commercial software could join the scheme too, with higher prices if less rights are handed over. I don’t think it is healthy for FOSS to kill the commercial software market, because it encourages anti-competitive service monopolies like Facebook and Google.

[ This is a first draft of an idea ]