Today myself and one of my coworkers attended the WhiskyWeb conference here in Edinburgh, Scotland. This conference is in its first year, organised by a very small team, and was setup and organised from the ashes of a failed conference in just three months. Located in the lovely Hub Conference Center (a converted cathedral) on the Royal Mile just steps from the Edinburgh Castle, it’s in a great location for those who have never been to Scotland before. Most of the hundred or so attendees I met seemed to be from other countries and were really enjoying the city.
The conference technically started last night with a Pub Crawl that started at the bottom of the Royal Mile and worked its way up a series of pubs. This was pretty well attended and all the speakers were in the crowd so it was a nice way to get introduced prior to the event.
Today the two tracks of talks were help in adjacent halls. The ending keynote speaker even had a helium remote controlled shark swimming the air above the audience’s heads. I’ve included some pictures.
Josh Holmes (@joshholmes) on Failure
The opening keynote focused on failure, how to learn from it, and why it’s a good thing. Josh is an American living in Dublin and we got to swap stories about motorcycles and Guiness and life without a car the night before. I even got drafted to taking pictures of him with his own camera. A nice short, inspiring, and positive talk to kick things off that was probably pretty foreign for most of the UK attendees.
Some of his main points:
- You will fail. It’s unavoidable.
- A famous quote by former IBM CEO who had an employee make a 600k (in 1950s dollars) mistake. Instead of firing him, he responded that he “Just spent 600k training him”.
- Talked about a personal failure on a technical choice: SOAP vs. Remoting
- “Losers always lose” – don’t give up and become a loser!
- When times get tough, that’s the time to press on
- Failure is always an option, so respect that.
- Fail fast is a good concept, but doesn’t give you leave to be stupid (referencing a recent Michael Church blog post)
- How to integrate failure into your life in a positive way:
- TDD – fail before writing your code
- Business Development – fail before writing your app or starting your company by doing research on your concept or idea.
A good way to start things off.
Rowan Merewood (@rowan_m) - Estimation: “How to Dig Your Own Grave”
Next up was a talk on estimation and some common pitfalls.
Some Classic Estimation Mistakes
- Sales creating estimates
- One guy creating estimates
- Creating estimates from detailed task lists
- you know it will change
- gives misplaced confidence
- encourages micro management
- Estimating a day as 8 hours
Moving on he talked about some strategies to get around some of these areas. First he talked about how hours are too granular and suggested using half days as an example – “from the start of the day could you finish by lunchtime?” which can bring more clarity.
As a project’s length scales out, scale up the increments to 1, 3, 5, 7 days. Anything over this and you’re not estimating anymore. In response to the tendency of Agile folks not wanting to estimate or developers thinking estimates are useles: fine, stop calling yourself an engineer!
The last bit of the talk was spent talking about some conceptual models used to communicate estimation processes and risks to clients which were pretty interesting:
- Good, Cheap, Fast – choose two
- Triangle with points of Scope, Cost, Time – as you vary them, you vary the area which is the quality of the project
- the MoSCoW model
- the Kano model
- Basic features don’t deliver high customer satisfaction
- As performance improves, customer satisfaction goes up in a linear scale
- “Exciter Features” generate a bigger satisfaction the more of them are added
Sebastian Marek (@proofek) – Ten Commandments for a Software Engineer
It took something like 15 minutes to get the powerpoint working on this talk, so I was annoyed before the talk even started, but Sebastian pulled it out and gave a great talk on software engineering principles important to him.
- Don’t disrupt legacy systems – extract, blackbox, hide behind an interface.
- Don’t reinvent the wheel.
- Commit often and make sure your messages are informative.
- Document early when the problem and your mind is still fresh.
- Don’t fear Q/A – use automated, unit, and functional tests along with a CI server
- Design for simplicitly.
- Don’t kill maintainability.
- Don’t repeat yourself – use copy/paste detection and other tools.
- Speak up early and often.
- Recognise and retain your top talent.
Brian Suda (@briansuda) on Data Visualisation
This was a very interesting (although I’m not sure how practical) talk that was a bit out of the norm for a technical conference. Brian lived in the UK for awhile and is currently living in Iceland, authored a book on data visualisation, and spends his time seeing how we can help visualise various data sources. His very graphically intense presentation was a very refreshing look at some unusual or creative ways to get data in front of users in more practical and memorable ways.
A few points:
- 3D Charts are not advisable (proportion, view obscure)
- Pay attention to your “data to ink ratio” (tufte, 1983)
- reduce visualisation as much as possible e.g. simpler is better, remove unnecessary clutter
- 2 schools of thought (simple, tufte and nigel holms more complex)
- He showed several examples of PHP generated SVG visualisations which were really interesting, these are located here: github.com/briansuda
John Mertic (@mertic) - Lessons Learned from Testing Legacy Code
John is a member of the SugarCRM project, and described coming on board a few years ago when Sugar had zero unit tests and zero functional tests. They’ve spent quite a bit of time changing this, and he discussed some tools to assist on finding bad code.
- phpcpd – copy/paste detection
- phpmd - code quality report
- phpdcd – dead code detection
He also made great points on the following items:
- Don’t be surprised when you see crap
- Better to focus on functional tests first
- Build a culture of testing
- Use CI or else tests are useless
Whisky Web Day Two
Tomorrow is a Hackathon located on the exact opposite end of the Royal Mile. I probably won’t attend but all in all for £50, this conference was a bargain.