Changes to XTC in 2017

The 10th January 2017 XTC meetup was a very active affair. I had asked the question “What shall XTC do in 2017?”. This involved a lot of talk of the history of XTC, and asking philosophical questions like “What is XTC?” and “Why would anyone come to XTC?”. I had a major a-ha moment as a result of these talks (more on that later). I think that there was also a sense of positive optimism and enthusiasm, and I left the meetup with a renewed sense of energy for XTC.20170110_all

Changes for 2017

Firstly, some concrete changes to XTC starting from now:

Fortnightly instead of weekly

For the moment, XTC will be held once a fortnight (instead of once a week, as it has been previously). The pool of XTC regulars has dropped from previous years. We recognised that we’re spreading ourselves too thinly. By cutting the number of meetups in half, we hope that on any particular meetup night there will be a bigger and more diverse group, and hence much better conversations. Depending upon how XTC goes this year, we may decide to tweak this further (in either direction).

Seed topic

The organisers will ensure that there is always a seed topic. Many people have noted that when someone proposes a topic to discuss before the meetup, it will naturally ensure that someone will be there, and that people know at least 1 thing that will be discussed. Sometimes the topic will give the incentive for people to turn up to argue a point ūüôā

Jeff started things off by getting everyone who attended to propose a seed topic that they would be happy to talk about. After there were a good amount of topics, we all voted on topics that we would be interested in.

It so happens that the first time we voted, the most popular topic was “The Silver Bullet Fallacy”. Hence, this will be the seed topic of our next meetup on the 24th January.

20170110-seedtopics1

New Co-organisers

Nader and myself are both organisers of XTC. However, both of us find it hard to find time to help with the organisation and promotion of XTC as much as it should. I asked for help, and @jtf, @sleepyfox and @tomwhoscontrary all volunteered to dive on that grenade. Thanks, all!

The Nature of XTC

With the XTC changes out of the way, there is one thing that I wanted to talk about: what is XTC? The website at http://www.extremetuesday.com talks about the nature of XTC as follows:

Working in XP can be hard so its good to meet other people and discuss common problems. It’s a professional network and support group.

  • It’s more than just XP
  • XTC encourages people to write papers, books, articles and run events to publicise XP.
  • XTC allows people to gain experience in XP practices when their day-job doesn’t.
  • XTC introduces people to the XP community.
  • XTC is a social club for like minded people to have a drink after work and put the world to rights! XTC has an anarchic spirit

Personally, I have found the above points seems to miss the essence. I agree wholeheartedly with the first and last points, but the middle 3 leave me a bit uncaring, as Extreme Programming seems such a minor part of what XTC is these days (at least in my experience, though YMMV).

I asked people who turned up what XTC was to them. Some initial answers:

  • People who do the things I want to do
  • People who have tried different approaches
  • People who I like to talk to (but¬†maybe not like)
  • Extended colleagues
  • Colleagues you wish you had

I found these unsatisfying, in that they were all self-referential (XTC is the people who like XTC).

Then someone then hit upon the phrase “Continuity XP” (or “NextP”). XTC started off as a group of people trying to understanding the implications and context of Extreme Programming. It was a place to discuss the problem domain, and share experiences of different contexts where XP worked and didn’t work. Thas is, a Community of Need¬†(using¬†@PapaChrisMatts¬†name). XTC is the continuation of that group. Some consider XP to be a¬†mapped solution (now the nucleus of a community of solution). However, the original group didn’t just disband and go home. XTC continued to be the locus of a community of need, moving on to different problems in the software development space (lean, agile, large scale agile, action science, among many others). This was my major a-ha, the description of XTC that I always had a problem articulating: XTC is the group of people who look beyond the canned answers in software development. We see “solutions” as a limiting goal. We are the people who are always questioning the established wisdom.

What do you think? Come along to the next XTC and discuss! ūüôā

20170110_postits

Password Managers

Knowing that I’m a long way behind on my security practices, I asked some friends “What password manager do you use?” (with the proviso that I use Linux and Android at home).

I’ve decided to give KeePass a go, but for full disclosure here’s all the responses I received:

ST: I like LastPass. They LastPass got hacked last year, but didn’t lose anything.
https://blog.lastpass.com/2015/06/lastpass-security-notice.html/
Ah, they did lose hashes.
If that puts you off, I hear KeePass is good.
And that’s offline.
Though you’ll probably still want to sync it.

AG: ¬Į\_(„ÉĄ)_/¬Į I use 1Password, the Linux client is shite
KeePass is nice but theres no decent browser extensions since foxpass died AFAIK
don’t trust lastpass for shit, their concept is whack theres been some dodgy phishing like stuff
like this https://www.seancassidy.me/lostpass.html
historically had some super dodgy defaults too, like auto filling sites without prompts, so JS could grab your credentials etc
no clue if they’ve fixed that
https://www.dashlane.com/ is a competitor to lastpass, no clue how it compares, go google around see if Taviso found any exploits
https://twitter.com/taviso/status/763801055725359104 apaprently there is

TD: fwiw I use keepass @tumbarumba , have for 7yrs+ now . zero issues. I don’t use a web client… good old fashioned copy pasta for me.

MS: I continue to love 1Password, which I’ve used for years. I find the following feature set unmatched anywhere: (a) easily sync securely via DropBox to all my devices on multiple platforms, (b) easily move/copy data between my personal vault, my family shared vault, and business vaults.

I hope someday that 1Password makes Linux a first-class citizen. If I were you, I’d suggest to them that they use Flatpak or the other similar thing. They are the ideal use case for secure cross-distro Linux software distribution with a containerized security model. If they jump on that train early, they could set the tone for a lot of security-conscious desktop proprietary software on Linux, I bet.

Charlie Stross Predicts 2017

Charlie Stross has written a series of blog posts which extrapolates current events into the next 12 months. It’s a glorious imagining of the future, but I’m afraid it doesn’t end well for humanity…

XTC 2016 Retrospective

xtc-squareIt’s been about 15 months since I first volunteered to help out with the organisation of the Extreme Tuesday Club (XTC). When I first started visiting XTC around 2005, I would turn up and could pretty¬†feel assured that someone would be there (or more often 10-20 someones), and there would be awesome conversations.¬†At the end of 2015, XTC was dying. The previous organisers had moved on, leaving XTC to mainly run itself. This was a problem: no one had turned up for over 3 months. My assumption is that people had drifted off to the slew of alternative meetups that had sprung up with better organisation and more focused topics.

With this in mind, the other organisers and I made the following changes over the last year:

  • Changed the meetup registration from the old spam filled wiki to use Meetup.com.
    • I think this was probably the biggest improvement over the last year. The old EditMe wiki was atrociously difficult to¬†update (especially on a phone). It looked unprofessional and awkward. Meetup.com allows a single click to sign up, which greatly reduces the friction of signing up.
  • Changed the venue from the Bishop’s Finger to the City Pride.
    • The Bishop’s Finger was a great pub for our meetups – when we had the use of the upstairs room. However, towards the end of 2015 the manager of The Bishop’s Finger got fed up that no-one was using the room, and so they gave our booking away to another group. This meant that we were stuck downstairs in the noise common room, which many people (including me) found far too noisy to have a coherent conversation.
    • The City Pride has been marginally better, but probably not that much. The upstairs room is not always available, though the pub manager is generally happy to let us go up if the room is not being used.¬†Some people have commented that they are disappointed about the menu at the City Pride (only pizzas are available)
  • Created¬†a new XTC Slack Group
    • At this point in time, there has been no real discussion on the group. Having said that, it hasn’t really been promoted effectively.

Over the year, there were a number of good meetings. For me personally, the XTC Christmas Special¬†felt like I had a number of good conversations. I was especially grateful to the people who came to XTC in October, and gave me some excellent feedback on my presentation on Value Streams. The Celebrating Jean Tabaka meetup was especially well attended, although I couldn’t make that one myself.

Despite my intention to attend as many XTC’s as possibly, I think I only managed to make about 10 or so meetups in 2016. There was still a very large number of meetups over the year that were completely empty. In general, I think that people will not turn up to any meetup unless there is a clear theme or topic of conversation. It is clear that XTC has declined a large amount from its zenith¬†in the 2000’s. Chris Matts wrote a piece in 2015 about this in his article on¬†Communities of Need & Community of Solutions.¬†He wrote the following:

The needs of the London XTC community have pretty much been met. They know how to write software in small teams, and there are no significant community needs outstanding. As such, those interested in personal development now gravitate towards the software craftsmanship community.

I’m not sure I fully agree with this assessment, especially given that I see XTC as more than just XP. Rather, I see this as a disassociation from the original founders of the group, along with much more focused “competition” in the meetup space.

In the XTC Christmas Special¬†meetup, I asked people what they wanted out of XTC. Based on this feedback, For¬†the coming year, I’d like to try some of the following changes:

  • Change to fortnightly meetings. Currently, there are not enough core regulars who will consistently turn up to XTC every week. I’ve reduced the frequency of the meetings to fortnightly to try and make it easier to get more people coming on the same night.
  • Think about more focused discussions. In principle, I think it’s core part of XTC that people can turn up and talk about anything that is on their mind, without having to schedule a topic in advance. This will always be part of XTC. However, having a clear theme or topic seems to help people to decide to come.
  • Solicit more volunteers to help manage the community. Personally, I don’t have the bandwidth to give XTC my full attention.
  • What about XPDay 2017?

I’d like to invite everyone to the meetup on Tuesday 10th January 2017 to discuss Aspirations for XTC in 2017. Please come along and join in the conversation!

The Hosting of exubero.com has Changed

This is just an administrative announcement: I have moved exubero.com to be hosted by¬†wordpress.com. It was previously hosted on a EC2 server and database. At the time I moved exubero.com to AWS, I felt it was an interesting project to learn the AWS tools and infrastructure. In that sense, it was a good way to learn. However, years later I’m running months behind on keeping everything updated with security patches and paying too much for AWS services. Given that 90% of my website was already running under WordPress, I decided to bite the bullet and let WordPress.com manage my site for me, allowing me to kill my EC2 server and save some money.

The transfer wasn’t quite painless: some of the URLs have changed. All the content is still available, but if you have any bookmarks, they may need to be updated, and the RSS feed¬†location has changed too, so you may need to update your subscription.

Software Development is an Engineering Discipline

There is a view that software development is a craft; that “Software Craftsmanship” is a better metaphor for software development than is engineering or science. I’m going to argue against this view: software development is an engineering discipline, and¬†relies strongly on scientific principles. Firstly, what is an engineering? Here’s one definition of the engineering method:

The Engineering Method is the use of heuristics to cause the best change in a poorly understood or uncertain situation within the available resources. РBilly Vaughn Koen

What heuristics? In general, they look something like this:

Engineering method

(from the article “Comparing the Engineering Design Process and the Scientific Method“)

The first thing to notice is the feedback loops here. The steps brainstorm ‚áí develop ‚áí test corresponds to the TDD cycle in software development:

TDD cycle(from “Growing Object-Oriented Software, Guided by Tests“)

The difference between the engineering design process with physical products and TDD in software is mainly the speed of the feedback loop. A skilled developer can often go through the red-green-refactor loop in less than 5 minutes, as there is no physical materials to manipulate. When you then add in the steps specify requirements¬†‚áí …¬†‚áí meets requirements¬†around the TDD cycle, you get the ATDD cycle: ATDD Cycle

Depending upon the size of feature that the the acceptance test describes, this could take anywhere from an hour to a week, though high-performing teams learn that quicker feedback is critical to quality.

Zooming out, there is a larger feedback loop surrounding the ATDD loop: the lead time between new software capabilities being prioritised and the capability being used by an end user. The DevOps movement is built on the focus on the software and organisational structures required to get software into the hands of end users as quickly as possible.

The size of the feedback loop is probably the most critical part of successful engineering. Consider, for example, the first human powered flight across the English Channel. The Kremer Prize was established in 1959 to give some motivation to show that human powered flight was both possible, as able to go long distances.

The challenge was picked up by many peoples and teams, but there was very little progress until the problem was examined by Paul MacCready, who noted that the engineers were trying to solve the wrong problem.

MacCready’s insight was that everyone working on solving human-powered flight would spend upwards of a year building an airplane on conjecture and theory without the grounding of empirical tests. Triumphantly, they’d complete their plane and wheel it out for a test flight. Minutes later, a years worth of work would smash into the ground.

The problem was the process itself…¬†He came up with a new problem that he set out to solve: how can you build a plane that could be rebuilt in hours not months. And he did. He built a plane with Mylar, aluminium tubing, and wire.

After two and a half years, MacCready team successfully flew the Gossamer Albatross II across the English Channel in just under 3 hours.

Gossamer Albatross

(Gossamer Albatross II in flight, from Wikimedia Commons, public domain)

Compare this feedback loop to a more traditional engineering discipline based upon something less malleable than software: traffic engineering. This is a branch of civil engineering that uses engineering techniques to achieve the safe and efficient movement of people and goods on roadways. In this case the engineering medium is road signs, lane markings, asphalt, road size and shape. In some cases, the traffic engineer will look to move roads through entire buildings. The behaviour of traffic can be very complex, with surprising effects from interventions (think of adding a lane to a busy road, causing induced demand, causing worse traffic delays). In all these examples, the feedback loop for understanding if the intervention was successful can range anywhere from days to years. In order to reduce the risk of untested changes, traffic engineers must use models of the road, and run the simulation in software.

In summary: software development that makes use of feedback loops to help understand and direct the problem solution is most definitely engineering.

One question is left to ask: where does Software¬†Craftsmanship fit in the context of software engineering? My take is that Craftsmanship is the focus on the skills that are known to be effective, a body of knowledge on the techniques that are effective. Engineering without skills won’t get you very far. Skills without engineering means that you can build the wrong thing very well. Both are required.

(This post was prompted by a discussion between Dave Farley and myself when we were both at the book launch of Infrastructure as Code by Kief Morris. A subsequent discussion with Andy Parker helped refine the topic)

Elephant Carpaccio

Carpaccio
Carpaccio – thinly sliced meat

I co-facilitated Alistair Cockburn’s elephant carpaccio exercise yesterday. This is an exercise¬†to teach¬†developers and business analysts:

  • How to slice large applications into 1-day to 1-week requests, from the business perspective
  • How to slice application requests into 15-30 minute work slices, from both the business and programming perspective

Previously, there had been some discussion at work about problems¬†people¬†were having with large stories. Coincidentally, @jtf¬†mentioned the facilitation guide for the exercise around the same time.¬†Looking through the guide, it covered a lot of the issues we had been talking about, and seemed like a better¬†scope for true learning, as opposed to just pointing people to the story splitting resource. Given that the facilitation guide was so detailed, it didn’t seem too much of a stretch to have a go at running the course.

Main problem: after deciding to actually do it, I had about 2 days to prepare, and a huge amount of loose ends to tie up before I escaped work on paternity leave. Luckily, I had a very experienced business analyst to help me run the exercise: Lisa Ellis. Lisa was able to smoothly cover my lapses.

What worked:Team

  • the exercise is a very good way of teaching the¬†reasoning and benefits of small yet complete story slices. The approach is focused on the coaching aspects of asking participants go think through the issue for themselves
  • I think it was very fun for everyone. 40 minutes to go through 10 – 20 stories? Go!
  • The facilitation guide was incredibly detailed, which made it very easy to help participants reach their learning goals.

What didn’t work:

  • some participants were not ready with a development environment – note to self: ensure everyone is prepared before turning up.
  • I wasn’t fully prepared, and didn’t have enough answers at my fingertips, and wasn’t always quite sure about what the next steps of the exercise were. I had to refer to the notes quite a lot. Luckily Lisa was there to help.
  • We ran out of time in the end, and had to cut the coding time short by 1 iteration. Interestingly enough, this actually helped highlight the benefits¬†of small slices and prioritising by value

This was my first time running this exercise. Even with a scant 2 days notice, we had 20 people sign up. I think there’s a lot of demand yet in the company. We’ll definitely be running this exercise again (with a bit more finesse)


Carpaccio image by Manoel Petry, and used under the terms of the Attribution 2.0 Generic licence.