Tuesday, 9 September 2014

Not a profession for old men

So, I am looking around at the moment and I notice something.

There are very few old developers. Lets say 45 - 55 is 'old' - it certainly seems to be for software development. It got me thinking - where do they all go? Assuming that we need to keep working to at least 55 (let's face it, it's going to be more like 70), that leaves a lot of time to do... er, what?

It is a little worrying if you ask me. This is still a young industry but we seem to have chopped a minimum of 10 years off the career path. I tried thinking of other industries that have a similar sort of cut off and not many sprung to mind.

Professional athletes have a physical cut off, although there are the odd few who carry on through to their 40s. Although, golfers seem to carry on into their 50's (my wife insists this does not count since golf is not a 'sport'). Call centre staff seem have a natural cut off in the amount of abuse they can take so they tend to be younger, which is just an observation.

I think a lot of this is down to presumptions. We presume that someone who is older cannot or will not change, but surely this is down to the individual? Some people respond to change and embrace it, others don't - might be more prevalent as you grow older but it is not unique to older people. I often find younger people stubborn to change - so maybe there is a sweet spot?

Work culture has a place too. Although we like to think that companies invest in their staff, it is more likely that they only invest in things they find valuable. So if you are using an old technology at work, you are going to be left far behind in the real world if you need to move on.

Again, this is down to the individual - the real geeks have a love for tech that is in-built. That's not something that just disappears at 40 (hopefully). Waiting to be taught something is a waste of your time. You need to do it yourself. Again, people of all ages fall into this trap, it is not something specific to being old.

Another big assumption is you cannot learn, which is clearly rubbish. This might not be as fast but I would take the incumbent experience over speed any day. When chaos erupts, I would bet the older developers are keeping calm and working through the problem without additional drama.

Maybe our minds just go. Or we can't take another flipping CRUD form, sell everything and live in the woods. Whatever happens you need to prepare for this now, as I cannot see it getting better. If you are entering the profession, think about how long you can keep doing it for. Here are my thoughts:

  • Keep you skills up to date - check your CV every few months, if you have not added to it then you are doing something wrong (probably got too comfortable). 
  • Keep up! Get interested in what is going on in the industry. Experiment with new languages, play with new systems, services and APIs. 
  • Practice - find some way of experimenting that excites you and do that whenever you can. 
  • Create and keep a childlike wonder of all things new and interesting. 
  • Attend conferences, meetups etc and listen to stories, return the favour and tell a few of your own. 
  • Seek to learn from others and don't be afraid to ask for help. 
  • Read - everything you can, whenever you can. 
  • Differentiate yourself by being awesome to work with. 
  • Learn to communicate and collaborate and build this into your day, this is much harder to master than any code you will ever write.

And finally..... Code, Share, Discuss but Sleep, Laugh and Love in equal measure - there's more to life than just coding even if it doesn't feel like it.

Monday, 8 September 2014

Out and About: Agile on the Beach 2014 - Day 1

I spotted this last year and missed out on the early bird so made an extra special effort this year since this is one of the few Agile specific conferences in the UK.

Arriving on the Wednesday night meant a pasty and pint was foisted up on us in the bar, which was very welcome after a 5 hour drive. The subsequent pints chatting with the most excellent Jon Tilt from IBM might have been a slight mistake - but we only really discovered this at the breakfast retrospective. Jon showed us all up at breakfast after a run around Falmouth University campus looking fresh as a daisy.

The keynote this year was J. B. Rainsberger, who gave us a round trip of movements and the future of Agile with specific emphasis on XP. As with any good key note there were points I agreed with and some I didn't but the perspective was most welcome. Obviously a seasoned speaker it was a pleasure to listen to and the hour went fast.

Starting a conference about Agile with talking about the death of the brand i.e. Post Agile might have made some people feel uncomfortable but it embraced the idea that change is good as we learn from our experiences. Also, talking about "confident humility" resonated with me - the attitude we bring with us when we collaborate or pair is all important.

There was some fun too - the simplified planning cards were something I would adopt tomorrow! Can't seem to find a picture of them but there were just 3: Do it, Too F**king Big, No F**king Idea. J.B. wondered if there should be just one more, "I'll do that now"

Agile on the Beach has 4 tracks - Craftmanship, Team, Business and Product (which was a bonus track for this year). Curiously, I did not attend a single Craftmanship session which proved to me how my emphasis has changed over the last few years. People might create but teams deliver.

I started the day listening to Allan Kelly talking about "Does Agile work outside Software". This was more of a decomposition of what value we expect from Agile and if they apply to other types of business. There were some interesting points raised but the examples were the most compelling.

Lonely Planet apparently use SCRUM throughout the organisation - a talk was given at Agile on the Beach 2013 about how their lawyers use it. Pair Programming? Try pair laywering (if that is a word) - a way of building peer review into the creation of legal documents. Same idea applied to different field. They also use stand ups, iterations and retrospectives.

There was more of this throughout the conference - "Agile = consistently identify and seize opportunities" is a concept that can be applied universally. Although some practices are specific to a field, the principles can be applied to many organisations. Interesting stuff.

Next I moved over to the Team track with a talk from Darci Dutcher about fostering collaboration with Designers. This talk resonated with me since I have had challenges getting developers to communicate. It seems that without IM or SMS as a buffer many of them have problems. Even bribes don't seem to work :(

She focused he talk around 3 ideas: Attitude, Skills and Facilitation. I really liked this talk - specifically the point that nobody 'teaches' collaboration. As she pointed out this is not the same as a compromise or what your bosses opinion is. It should be something new, created by the people in the room, each progressing ideas and being creative.

I did manage to ask her about what else we can do with people who just won't dive in. I have an article on some of these thoughts coming up but Jon Tilt had a some insight - "If you can't change the people, change the people" (not something I like to think about since I like the people I work with)

Talking about Jon... I have seen Jon before at Hursley talking about how IBM started to use Agile. The thing like about Jon's talks is that the challenges IBM face are way larger than pretty much anything anyone else is talking about.

Fancy getting about 30,000 developers across 20 countries and 80 locations on the same page? These developers also work on radically different products (through many acquisitions) and have completely different cultures. Where do you start? So, the title "Making the Elephant Dance" is apt.

Jon is also a great speaker, so this was fun too. My take away from this was their use of Confidence Maps to allow quick visual representations of a projects current status - even the attendees could pick out the project in trouble from the example.

So after a quick bit of lunch (nothing special, sadly - I was spoiled at Re:Develop!) I arrived a little late to see Melissa Perri from produxlabs.com talk about Lean Product Management. It was crammed - the Software track had the smallest room by far and this session proved most excellent, even though I was on the floor in the isle with half the room.

Melissa is an awesome speaker - fast but easy to understand. Her point about moving your focus to the problem is something I have long believed in too. I specifically liked the alternative structure to user stories that she suggested:

When <situation>
I want to <action>
So I can <outcome>

The shift of emphasis to make the problem the topic of conversation is similar to other alternative templates suggested for feature injection. I think I prefer this one however, especially when it is backed up with "Explore problems rather than gather requirements". I think that the phrase 'Problems not Features' could be a bumper sticker. Maybe a tattoo?

There was a nice comparison between a 'normal' Product Manager and Lean Product Manager - essentially that they work to a Goal. She put emphasis on experimenting not developing, proving you are moving the right direction and working with the whole team to produce results. She asked us "What does success look like?". It made me wonder if I was doing the wrong job.... this looked much like what I enjoy doing!

There was more (much more). Her take on an alternative to road maps is something I want to look into. She also wins the newly created conference award for most amount of amusing cat slides - well done you :)

Back on the business track was Frances Bonnington with a talk about the application of SCRUM is a non-engineering industry. Frances was a newly qualified ScrumMaster at this time and this was almost a trial of fire as she took us through a very honest look at what worked and did not work. It all had a happy ending, however when she took charge of some geeks as ScrumMaster. I like happy endings.

Having learned that Melissa's talks are usually rammed, I was early for her last session called "Beyond Pretty: Creating Measurable Designs". I even had a desk so I could write a bit more legibly, go me!

She kicked off with decomposing 'design' - being a mix of Visual Design (What it looks like), Information Architecture (How information is composed on the page), UI Design (How we interact with the design), UX Design (Can users achieve their goal?) and finally Marketing Design (Does it sell the message?).

She posed the question if any one person can achieve all these things, using the phrase 'the unicorn designer'..... makes me think of how I feel about the phrase 'Full Stack Developers' for exactly the same reason.

The talk was about measuring design, which started with a quote:
What cannot be defined, cannot be measured;
When cannot be measured cannot be managed.
- Paul Lillrank
The 'normal' linear approach (IDEA -> Research -> Wireframe -> Build -> Launch!) makes to many assumptions on what is a set of decision. Instead, treat the design as a hypothesis and treat this as a cycle allowing you to test the hypothesis. We only launch once we have solved the customers problem.

She explained there are 2 types of measurement: Quantitive and Qualitiative.

Quantitive is useful for spotting trends and we can measure them against KPIs but it won't tell you why. Lots of tools to do this for you!
Qualitative is about observing behaviour and finding meaning.

Measurable design calls on both of these to prove if your solution is working.

There was a bit of cross over with her previous talk and that was a good thing. The ideas of iterative learning makes a lot of sense and she made a good point that you should only make small changes so you can monitor the outcome. If the change is too large, how do you know what delivered the impact you are looking for?

And there were more cats.

Finally, we ended the day with some flash talks. The highlight for me was a 5 minute talk on certifications and if they are good or bad. The suggestion was for a new certification, a CSSTWP:

Certified Stealing Sh*t That Works Practitioner

Awesome! The stickers were late apparently, which is a shame because I think I would prefer this one over anything else I have seen.

Also of interest was mutation testing. How do you know if your unit tests are working or any good? Well, how about injecting errors and running your unit tests again? Didn't sound like there was much in the way of tooling but I do like the idea.

A conference would not have been a conference without a bit of a party, hosted by IBM. At 6pm we all tottered off to the local beach for a few drinks and some food. They don't call it Agile on the Beach for nothing - by the way, organisers pay attention, it would be much easier to get corporate sponsorship if the name was different :)

Tuesday, 2 September 2014

No UX for you!

A few years ago, a designer friend said that we should load a different UI for older browsers. He wanted to make it look horrible and have the bare minimum functionality that we could get away with.

At the time, we basically ignored him and put it down to too much beer the night before. It turns out he might have been on to something, if this is anything to go by:


Guess this just goes to prove how important the user experience is. His notion that a terrible user experience would force people to move or upgrade might have been a stroke of genius. Lets face it, nothing else seems to have worked!

Not that disruptive, maybe

We have seen the rise of start ups in the last few years, challenging existing and much larger companies for a slice of their marketplace. 

The speed at which start ups can move is predominantly down to their size, which their larger competitors can rarely match. Other areas of difference are much more difficult to measure but culture and creativity would be in there too.

Given start ups are a threat, the obvious way to eliminate them would be to buy them. There will probably be a price point where this becomes attractive, especially to any investors in the start up. 

If the motivation of the investor is to make money then this seems to achieve the goal, as long as the price and timing is right.

It could even be a strategy of a start up to be bought out, essentially making a nuisance of itself and forcing a competitors hand. 

Maybe larger companies should see start ups as a form of R&D? Start ups innovate quickly, test the market and show a direction for the larger company to exploit. They even come with customers rather than just a bunch of patents.

So, I'm not sold on the word 'disruptive'. Start ups seem to stimulate rather than disrupt.