This is a musing. So it may not be original, it may be wrong (it may be so wrong that I edit it later, I will try and remember to add a comment on why); hopefully it will be at least a bit interesting and spark a thought or two. It’s actually about software development, so be warned.
I remember hearing a radio discussion or documentary where one of the contributors pointed out that the world for ants is bigger than ours. Not just in the obvious way that a one metre table top is a daunting plain to an ant; but, because the world is not smooth and the ant can enter gaps we cannot the world for an ant is actually bigger. The surface area that a lawn presents to the air is orders of magnitude more than the measured area of the ground it covers. Surfaces we perceive as relatively smooth present themselves as rugged labyrinths to ants.
Aha, a software development metaphor! The distance to production in the Project Manager’s coarse grained world is actually shorter than the route that the development team will have to traverse and the the team will have to take major detours that stakeholders working at a larger scale will not be able to see. The non-team stakeholders may well never be able to see and truly understand the terrain the team is struggling over without shrinking themselves down to the teams size and experiencing it.
We know this, and one approach to getting a handle on the size of the work is to break it down into ever more fine grained tasks and sum them up. Think about that lawn though; to truly plan your ant sized route through it you have to get so close you are pretty much walking it.
This is part of the reason the No Estimates people say what they say. You cannot really forecast how long crossing the lawn will take until our ants have tackled at least some of it. If you really do need that estimate (and people do) remember that you could easily be an order of magnitude out; that smooth lawn you are looking at from the porch is a jungle at the scale the team is going to cross it at.
Apologies for taking a while to get this out; I am perversely nervous about posting this. Thank you for everyone who attended, all errors and omissions below are my own.
We had our first go at a on-line remote Clojure Dojo last Wednesday (17th Dec) and I enjoyed it a lot, I hope everyone ales did too. It was fairly chaotic and we were working out how to make it work as much as actually hacking Clojure code but we did manage it (at least some of us) and I had a great time.
I wasn’t expecting many people to join but we ended up with a respectable half dozen. In several countries and two continents! (which was very cool). Everyone was friendly and the atmosphere felt really good to me. All actual coding was andrew_whitehouse and me working on the traditional Roman Numeral calculator problem, with the others watching over our shoulders and marking helpful suggestions and letting me know how to do stuff.
What we did:
- Arranged a time via Google groups and Google Calendar (worked well together, seemed to work well for most people)
- Met on our noloclj Slack domain on the general channel (thanks to riccardo for setting up and creating a subscription form )
- Decided what we were going to do
- Switched to a dojo team channel with the people who were there
- Started a Hangout (using a Slack Integration) to do chat and screen sharing)
- Created a GIT project to share code on
Things we (well I) learnt.
- The setup we used worked (just – see below)
- Brush up on you editor and tools before the session. We were using Vim, a REPL and command line GIT. Of those I couldn’t remember half the GIT commands or Vim Fireplace codes. I have vowed to have practised before the next one.
Things that worked for me:
- Meeting on Slack
- Chatting in a Hangout
- Meeting everyone
Things that could be better:
- Hangouts screen sharing is not the best for this (it was hard to read for some people) – having said that it did work.
- Remember to tell Hangouts to record the session (we didn’t and I have lost a load of helpful and funny comments)
- Sharing via Posting to GIT was okay but not great (need to setup a repo, add a collaborator, commit and push quickly to hand over to the other person). On the other hand it means the code is definitely out there and it could scale, at least a bit)
We agreed to run the next one on a Tuesday night (the day after the London uSwitch Dojo night, probably), and one on a Sunday evening (in Europe) so folk in the Americas can join in (Follow the group and the Slack channel for updates) and I am really looking forward to them
The discussion of “deep” questions hardly gets off the ground before people start making unwarranted assumptions.
“How do you get something from nothing?” – Well, for a start, what do you mean by nothing? By the time you have drilled down through hard vacuum, quantum foam, vacuum diagrams and so on we are not even sure if there can be “nothing”. So does the question mean anything?
“Do we have free will?” – Argh! where to start?
It is not a new thing to say that our assumptions and intuitions are good for things that our ancestors interacted with and the groups they lived in. They fall apart for the very large and the very small (and that probably includes very large numbers of people). If someone starts with “everyone knows that “, you need to start paying careful attention to the sneaky assumptions that are about to show up.
Ok, I’ve done this before but not recently.
Lets see how it goes.