- Look around
Revisit your assumptions every once in a while
If you work in IT long enough, all your assumptions are wrong (quote from …). Also if you work in IT long enough, old ideas come back into fashion,
“OO is over, because we are all doing functional”. Look up google trends. Scrum going up, agile, xp and everything else going down. Except jenkins and selenium. Agile development for most organisations means scrum, what that means for those organisations is anyone’s guess.
Eric Hoffer: “Every great cause begins as a movement, becomes a business and turns into a racket” - from The True Believer
Some things have improved
More teams deliver (even if brittle and hopelessly compromised). Wider spread of iterative development.
A younger generation have never known anything but hosted CI servers.
Some XP teams get bored because everything just works, and they just ship features.
“It was a huge relief when the book came out, because it gave credibility to good practice”. “I first experienced pairing at XEROX research as an intern, where it was used to introduce people to systems they only had. I hated it, because I could not get into the zone. I just wanted to be left alone”.
“I used to go onto yahoo to check the 30 odd new websites that had gone online” (I would look on the internet map of the netherlands for the same).
There is nothing quite so internally consistent and live as a smalltalk environment. Go and have a poke around with a free one like Pharo.
Extreme tuesday club
“I would exhibit messianic traits and backing people into a corner for not getting it”. “Scrum became dominant because they had their act together with a clear message”.
The Scrum community was the only one not dissing each other - a world consolidated by men of action.
“The future is already here - it’s just not very evenly distributed” - William Gibson.
“A software system can best be designed if the testing is interlaced with the designing insetead of being used after the design” - Alan Perlis, Nato conference on software engineering 1968
A lot of XP was trying to figure out what Ward Cunningham was doing. The methods that spread are made from scratch.
internet bubble, 1999
Proof by association “look, these people made loads of money, and they used agile”. Consolidation of technical tools. Internet bubble paid for tools like Java, MySql and Ruby on Rails.
Growing OO software guided by tests
Consensus of tools is splititng again. “I’m surprised that the kids are going for VI again”. It’s a cycle, expect the next generation. Music goes through cycles like this jazz combo -> big band -> stripped back rock -> concept albums -> punk etc.
In the 90s corporate development had devolved into the concept album.
Large organizations on the whole, apart from the internet unicorns, can not deliver quickly, so they try to bridge the gap between their culture and shipping fast by buying tools. (talks about various scaling frameworks just before).
“Premium Mediocre” - blog post by ‘ribbon farm’, experiments in refactored perfection.
Inventing the future
Premium mediocre might be what it takes to get from here to there. Agile Software development gives us a path to get from here to there and at least ship.
Keep going and ship.
What have I learned from all these years of experience
“There is no substitution for putting things into production”
Continuous deployment is taken as a given in many places. You used to be able to walk around the city and see the sticky notes on the windows.
Crappy phone lines and crappy infrastructure lead to long legalese Jira issues (is that an improvement over long technical legalese specifications).
“I was lucky enough to be part of a subculture that believed more could be done with fewer people and better tools”. Those same people can bore you with discussions about kinds of typing and vim vs emacs, but also will split apart your domain to unprecedented levels of detail.
Grow your own
If you need something, write it. “We never promised easy, just effective” - Keith Braithwaite. Steve sees lots of use of “pragmatic” where pragmatic means “not”. e.g. “pragmatic user research”.
To be effective agile needs a minimum of seriousness. Which means getting things done and reflecting deeply.
- Look around