Saturday, 25 February 2017

Richard’s Technical Debt

These are my notes from listening to the recording of Richard Banks’ talk The Technical Debt Prevention Clinic that he gave recently at the Microsoft Ignite Australia 2017 conference.

TL; DR - This is a really compelling talk. Go watch it, and share it with your colleagues!

My notes and highlights follow. These are not a substitute for watching/listening to the talk, and the best thing (if you ever get the opportunity) would be to see Richard deliver this in person.

Technical debt

  • Is design complexity + cognitive load. Is NOT quick & dirty code
  • Bad code is not technical debt, it’s just bad code
  • Quantifying – look at trends over time
  • Don’t
    • do a “technical debt sprint”
    • Rewrite
  • Do
    • “Boy Scout Rule”

Refactoring

  • Micro-refactoring – do anytime
  • Macro-refactoring – plan and only do one at a time to limit disruption to team
  • Both should have tests in place – ideally behavioural tests (so you’re testing the behaviour not the implementation)

Feature flags

  • Really useful
  • Still need to be managed properly

Preventing

  • Be Professional – you don’t need permission to do your job properly
  • Have a Definition of Done and stick to it.
  • Automate everything you can
    • tests
    • code styles/rules
  • Change Team Culture

Code Reviews (suck)

  • Traditional code reviews often don’t work well for a number of reasons
  • Try doing peer refactoring
  • Or pair programming when it is “strong-style” where both people are engaged.
    • Put the mouse away!
  • Mob programming – maximise team intelligence
  • Experiment and find out what works for your team

Other tips

  • Avoid branching if possible. If not possible make it short-lived. This is because merging is costly
  • Premature optimisation
  • Resist temptations
  • Shared learning
  • Run hackathons
  • Adhere to that Definition of Done

Conclusion

Technical debt can be a good thing, but bad code never is.

Friday, 10 February 2017

Skeet, Cogan and VS 2017 launch date announced

It’s been a busy week!

On Wednesday evening we hosted the regular monthly meeting of the Adelaide .NET User Group in the Adelaide offices of RL Solutions. Our speaker was to be Jon Skeet talking about C# 7, joining us remotely from the UK. This involved a bit of logistical planning, including getting in enough seats for the expected crowd, getting a good PA (thanks Tom!), borrowing a nice data projector (thanks Keith!) and making sure everyone could get into the building after hours (thanks Vic!).

Jon Skeet, wrapping up presentationThere were a few gotchas along the way – I’d remembered the front door to our building closes at 6pm, but forgot that the lifts required a security card from 5.30pm. Then my laptop decided to freeze its screen when I reconnected the data projector and tried to launch PowerPoint as we were about to start. We got everyone upstairs and I rebooted my laptop and Jon was able to present his talk. I then realised that the pizzas were going to be delivered too early. So a quick change of schedule to introduce a 5 minute interval in the middle of the talk so everyone could grab some food before continuing on with part 2. Not to mention Tom running out to get some disposable plates as I’d overlooked those too.

But in the scheme of things, they were all pretty minor. All in all, I think it was a pretty successful night and I think lots of positive comments about Jon’s talk and also our office (the bar was especially popular!)

We recorded the Hangout so you can watch Jon’s presentation:


Adam Cogan presentingFriday afternoon is not when we’d normally have a user group meeting, but Adam Cogan was keen to visit and give us a preview of his Ignite Conference talk on What’s New in Visual Studio 2017 and Visual Studio Code.
The timing of Adam’s talk turned out to be quite good, as Microsoft have just announced the release date for Visual Studio 2017. Set your alarms for 2.30am on March 8th (Adelaide time) for a live streaming launch event.

I’ve already got two speakers (Ben Laan on Load Testing and Bronwen Zande on HoloLens) lined up for March, so I think we’ll make April’s meeting our local Adelaide launch event for VS 2017 (combined with Jack Ni on IoT).

It’s going to be a busy year!