Category Archives: Information Revolution

A Functional Mindset

When I started learning Clojure, I thought I knew what functional programming was but I’ve learned that the functional paradigm is now more than I expected.

Everyone agrees that it’s a computational model based on evaluation of mathematical functions, which return values. This is generally contrasted with imperative programming languages such as FORTRAN, C, JavaScript or Python, which are also procedural and some of which are object-oriented but may make functional coding possible, in a hybrid style. I wouldn’t recommend learning functional concepts in a language that gives you short-cuts to stray back  to more familiar territory.

Clojure is a member of the Lisp family, first specified in 1958. The unusual feature of Lisps is their homoiconicity – code and data are the same thing. Learning Clojure has informed my thinking about business process change.

Some modern, functional languages such as Clojure use immutable data whenever possible, to eliminate side-effects. This allows better use of multi-core processors but requires a complete change in thinking, as well as programming style. ‘Variables’ are replaced by fixed ‘values’, so loops have to be replaced by recursive functions. New data can be created but it doesn’t replace old data. Yesterday’s “today’s date” isn’t automatically wiped when we decide today has happened.

Objects with their methods and local data were designed for simulating the current state of real-world objects by changing (mutating) object data state. The object model, like relational databases, has no inbuilt representation of time. Functional programming splits these objects back into separate functions and data structures and because values can’t change, they may be transformed by flowing through networks of functions, some recursive, to keep doing something until a condition is satisfied. Eventually, code must have a side effect, to tell us the answer.

Rather than computation being a conditional to-do list with data being moved between boxes, it becomes a flow of data through a network of ‘computing machines’; and the data and machines can be transformed into each other.

I hear that map, reduce & filter data transformation functions will change my world again.

Advertisements

Moderately Grouped

One of the rules I try to live my life by is: “Small pieces, loosely joined”

Then this happened.

http://phys.org/news/2015-06-social-networks-group-boundaries-ideas.html

I don’t know who I am any more. I already feared de-selection from the cult of Unix and now this.

Then I realised that although I favour hi-fi separates, I don’t  design my own amplifiers and hand-wire the components. I don’t compile Linux from source every time. I’m not a fanatic.

Popular Scrum tweaks

Contentious, I know, but the Scrum framework for agile software development may not be completely perfect yet. That’s fine because because we can improve on it, like science.
A few problems that often come to light are:

  • Very few people agree what Agile is. I’m one of them.
  • Few people agree exactly what Scrum is (despite it being defined by a very short document, The Scrum Guide.) “Like chess, Scrum is very simple.”
  • There is a lot of common agile practice that is used by Scrummers and taught on courses but isn’t part of Scrum.
  • Many people think they are ‘doing’ agile and/or Scrum but may not be. Who knows? The rules are: there are no rules.

In my last post I mentioned pragmatic changes to Scrum. Below are some that seem common and I’m not sure are always wrong. I think they come from the fact that Scrum makes assumptions about the mere humans who fill the Scrum roles that are, to be polite, idealistic:

  • The use of Business Analysts to supplement the Product Owner’s knowledge and skills and the developers ability to listen and ask the right questions. Developers are not all good at dealing with people or at business analysis. The people who are, are not all good at development. Part-people who add up to a whole role may be the best a team can realistically achieve.
  • The use of stakeholders who know areas of business better than the Product Owner (PO.) Product Owners need to be super-human: trusted by whoever is paying, knowledgeable, decisive, able to write good stories and constantly available. The PO is there to make dangerous business decisions, so the Team don’t have to. If they make bad decisions, it isn’t the Team’s fault. They are allowed to have help. By this logic, any BA who helps the BA should be outside the Development Team because business process is not “IT”. I have not yet seen any organisation with a business process department. I think we will soon. Process design is often considered a management responsibility but very few managers have appropriate experience.
  • The use of technical/engineering/architecture specialists to supplement the skills of the Development Team. One small team is assumed to consist of generalising specialists with knowledge of everything that will be necessary to complete the project, though you don’t know what that is yet, so ‘be lucky’
  • Network communicators/organisational specialists. Scrum assumes autonomous teams but at scale, organisational efficiency considerations start to apply pressure to centralise scarce and expensive skills. Co-ordination of networked teams becomes necessary. Traditionally, managers are likely to have filled similar roles but in future there may be more collaboration than typical managers have experienced while fighting for influence and resources inside a hierarchical organisation.

Agile as something you do

I have spent the last 2 evenings in Birmingham listening to talks by @diaryofscrum at @ScrumUK and @stevejpitchford at @bcsbrum about management and ‘Agile’ software development, which brought some of my own concerns into sharper focus, particularly about the Scrum framework. In many discussions with practitioners over the last couple of years, I’ve heard the following phrases:

“Agile is an adjective not a verb”
“Agile isn’t something you do, it’s something you are”
“Agile is a philosophy not a method”
“Agile isn’t a process”

Someone who ISN’T agile has to start somewhere. They typically need to DO something, to write software. Would we claim,”Scientific” is an adjective not a method? We wouldn’t, because it is both. The scientific method is a function which delivers what we call “scientific knowledge” as its value. If it didn’t, it would be pointless.

Managers are generally trying to get things done. Each team must agree its own Agile Operating Model (thanks to BCS’s ‘Agile Foundations’ book for that useful phrase.) What came out of the last couple of evenings was pragmatic application of philosophy. Many organisations take Scrum as a starting point, without realizing that “framework” is to be taken very literally. Scrum doesn’t paint the complete picture. It is (part of) a process to organize work. It says almost nothing about how to do that work. It is an alternative to writing a project plan “up-front”, when you know least.

An Agile Operating Model is a process which delivers a value, so it is a function. My scientific hypothesis is that it delivers valuable business function change, sometimes in the form of software. It is itself a business function. Agility has business functions as first class citizens. It doesn’t meet general expectations of a process because it can recursively self-modify. That doesn’t mean it isn’t one. As the kids say, “get you an agile function that can do both”.

Where is ‘Midland’?

I’ve been involved in a number of heated debates recently about the creation of the https://westmidlandscombinedauthority.org.uk/ and the original attempt to call it “Greater Birmingham. As my neighbours in the Black Country define themselves primarily by the fact that they “ay a Brummie”, this proposal from the Birmingham council seemed extremely culturally insensitive to many of us.

The recent Silicon Canal Whitepaper has once more dug up the dead parrot so I’ve continued to try to come up with suggestions that might be more acceptable to everyone. I’ve been imagining the existence of a new area with Birmingham at its heart, though not necessarily at it’s centre. To the North and East, the A51 and Watling Street / A5 mark an ancient boundary between regions.  I don’t believe the people who live around Stoke on Trent, Derby, Nottingham, Leicester or Northampton feel much association with Brum but to the North and West, its influence extends out to Cannock,  Telford, Bridgenorth, Kidderminster, Redditch, completely enclosing Wolverhampton and the Black Country. It extends further South to Stratford and Leamington then back up to  Coventry, Nuneaton and the Mercian capital Tamwoth and the cathedral city of Lichfield. The boundaries are fuzzy but I think they look a bit like the map below.

I think this “Midland”, within The Midlands and towards the East of the West Midlands is a phenomenon that works by the magnetic attraction of people towards the culture of cities. Unlike the East Midlands’ proud independence, the whole of the West Midlands seems to have adopted  Birmingham as its commercial capital. That doesn’t mean they own us or we’ll do as we’re told. We’re Midlanders – fiercely free thinking and creators of new ideas. I give you ‘Birmingham & Midland’, crudely spray-painted onto https://en.wikipedia.org/wiki/The_Midlands. Those of us on the edges want a better deal from Birmingham than we get from London, if you want our co-operatation. We respect you too, East Midlands and we know you started the Industrial Revolution really. It’s all about networking amongst equals.

1280px-Midlands_councils

As a double-check, I also plotted the towns I mentioned above, along with a few extras, onto a Google Map of the Birmingham & Midlands border towns. I felt I had to stretch the borders a little to include ‘Ironbridge and Telford’, for making Brum’s iron and steel, Leamington for making a start on digging the silicon canal with a games controller and Stratford-upon-Avon, for the world’s most famous person who probably had a Brummie accent. The knot garden at the head of this blog is also in the grounds of the Arden Hotel, opposite the Globe Theatre. I think I now see an approximate ellipse with 2 bulges.

Screenshot from 2016-06-13 14-57-43crop

 

Talking Trees

I ‘done a speak’ at Ignite Brum recently.

I have a rational fear of public speaking to large audiences. I decided to face it. At ‘Staffs Web Meetup’ I gave a fairly techie 10(/20) minute talk about Ted Nelson’s concept of intertwingularity. When I saw a plea on birmingham.io for speakers at Ignite Brum to replace others who had dropped out, I imagined my usual cluster of geeks in the upstairs room of a pub, not the lights/action/movie comedy glamour of the stage at The Glee Club. I’m all for a bit of clubbing but I was well outside my comfort zone.

‘All I had to do’ was reduce my talk by 75%, simplify by about the same, for a general audience and produce exactly 20 slides that would auto-advance every 15 seconds. It was described by someone on the night as “Powerpoint as an extreme sport”. That was a true story. I recommend the challenge as an exercise for the reader. It is hard work in preparation and frantic in execution but it doesn’t give you much time to panic about the faces looking up at you; anyway, you’re blinded by the spotlights.

Watch as I drop behind the pace set by the projector. My best joke and some local politics was lost in the bunching on the corners but I present ‘Everything is Deeply Intertwingled (Smash the Hierarchy!)’

Thanks to @iamsteadman for allowing me to try this and making the video available (I’d never have agreed if I’d known that,) the other speakers and the people who made us all feel welcome: @probablydrunk, @carolinebeavon, @grunt121 and the audience.

We broke social

I discovered something alarming yesterday: social media is losing to messaging.

There must be a drift back, from open collaboration to closed channels, from thinking in the open to “Can I have a word in my office, please?”. It isn’t healthy for anyone to be in control of The Message, or for conclusions to have been agreed before meetings begin.

Everything I have done in the last couple of years has led me towards networks, away from the control mechanisms of hierarchy. Please let us not give up now, just because being more open is harder work for dishonest people. If good team players are better, imagine what the awesome creative power of players in multiple teams with overlapping goals could achieve.