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.
- 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
- do a “technical debt sprint”
- 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)
- Really useful
- Still need to be managed properly
- 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
- 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.
- Mob programming – maximise team intelligence
- Experiment and find out what works for your team
- 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
Technical debt can be a good thing, but bad code never is.
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!).
There 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:
Friday 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!
It’s that time of the year again when bicycles take over the streets of Adelaide and nearby country South Australia. The Tour Down Under is in town, and that also means the Friday is also the BUPA Challenge Tour. This gives us mere mortals a chance to ride the same course as the professionals, complete with supported rest and refuel stops all along the way.
Usually I ride with my dad and we do the full distance, but this year my son decided he’d like to take part for the first time. So while dad still started at Norwood, we chose to do the shorter 60km distance starting at Mt Pleasant and finishing at Campbelltown.
Carson had previously done a few rides with me and the other Mud, Sweat & Gears riders down to McLaren Vale (a confortable 30km ride from our place), so I was pretty confident he’d be up to the longer distance, given plenty of breaks along the way.
Our family friend Jane also joined us for the ride (as well as giving us a lift to our starting location at Mt Pleasant).
The day started off cool and overcast, a huge relief from the high temperatures we’d had in the previous days. There’d also been a decent thunderstorm overnight. A small amount of drizzle hung around for the first part of the ride, but nothing too annoying.
We made good use of the rest stops along the way to get refreshments and make use of the ‘conveniences’.
We also had a bonus visit to the bakery in Lobethal. A welcome boost.
At one stop, we did an adjustment to Carson’s seat pole – turns out he’s been growing a bit and those legs wanted a bit more room to stretch out . Later on at the Cudlee Creek stop, we were just about to head off when he noticed that his rear brake was not working properly. The main rest stops also have resident bike mechanics, so we immediately went over to get it looked at. This brake had played up in a similar way a few months ago and I thought I’d resolved the problem. I was encouraged that the mechanic tried exactly the same things that I had done myself previously. He managed to get it working so it would get us safely to the finish (which was a fair bit of downhill, so having good brakes was critical), but recommended we take it in to get serviced as there’s obviously something not quite right.
The final ride down to the finish went well and the three of us even got a chance to ride arm-in-arm under the finish archway, much to the appreciation of the crowd. The finish line was right next to Foxfield Oval with the huge gum trees lining the road. That made it the ideal place to stay and wait for the professional teams to come sprinting in.
All in all a great day. Super proud of Carson for riding 60km (as Jane pointed out, every km after the 30km mark was a PB!). Also nice to finish the ride and not feel completely wrecked too!
It’s the first day of 2017, so a good time to reflect on the year just past.
A couple of friends have commented either “You’ve travelled a lot this year” or “where are you travelling to next?”. My first reaction was surprise – I don’t travel a lot do I?
Well ok, that was a few trips. But no future travel plans at this stage.
I won’t dwell on this too much but the health challenges continue for some members. Some of you know me well enough to know the details.
The kids did well at school (I’m sure better than I ever did!). They’re all growing up fast too.
We did have a couple of sad losses – Princess Layer (one of our bantam hens) and Guido (a goldfish) both passed away. Layer died quite suddenly of unknown causes (maybe snake or spider bite). We held a little burial ceremony in the backyard for her.
I’ve got a couple of weeks off over the Christmas break. Nice to spend time at home with the family, do a bit of gardening/weeding, a few bike rides and take it easy.
We planted new cherry, apricot and nectarine trees. Looking forward to seeing them fruit in years to come.
I finally finished the chicken run, so we can let the chooks out of their shed into the run during the day, and not worry about foxes or the odd stray dog. If we’re home, we usually let them out of the run to roam around the backyard anyway.
I got a new laptop, and more recently a new phone. The girls got iPads for Christmas so all three kids now have them. As annoying as it is to set up, at least the Apple Family Sharing means we can share single app purchases amongst all the devices. I say annoying as from my experience the ‘app approval’ part only works if a parent also has an Apple device.
Maybe updating to an XBox One S as a late family Christmas present?
Also on the radar is one of these Ubiquiti UniFi AP AC Lite WiFi access points. We have a few reception dead spots around the house that I think could be fixed by one of these.
Don’t think I’m buying new toys/technology all the time! Like most families we have a limited budget so these purchases only happen when absolutely necessary and we’ll get as much use out of them as we can.
Apparently in a few months our suburb will have the NBN. I’ll be looking closely at my options when that becomes available.
.NET and dev things
I’m in my second year as a Microsoft MVP. I’ve really appreciated the opportunities this has given me to participate and learn more. It’s also opened some doors particularly in regards to the Adelaide .NET User Group, which I help run.
The group continues to meet monthly and enjoys good attendances. It would be great to have some other members step up and get more involved with the organising and possibly allow us to run a “DDD Adelaide” event too.
This year I became a volunteer moderator for Chocolatey. I’ve been a fan of Chocolatey for a number of years now (my “Let’s get Chocolatey” t-shirt from supporting their KickStarter is a favourite), and it’s nice to be able to help share the load of moderating new package submissions.
Microsoft has changed considerably as a company over recent years. I really like their approach to doing much more in the open (including developing many products as open source on Github) and working with (instead of against) Linux and other platforms. The way .NET is evolving, together with new innovations like TypeScript gives me confidence that they’re heading the the right direction.
I don’t generally write about the details of my day-to-day work at RL Solutions, but it has been a busy year and 2017 looks to be no different. The consistent highlight is the people I work with. We recently advertised for a graduate developer to join our Adelaide team. It’s good to be growing (and also I can finally pass on the “new guy” mantle).
I’m sure I’ve missed some things, but that will do for now. Happy New Year!
I’ve had my Nokia Lumia 920 phone for just over three and a half years, and it’s starting to age. It has served me pretty well, but the screen is showing a distinct yellowing and more annoyingly if someone calls me, I need to switch to hands free mode for them to hear me. (Not always convenient if I’m in a public place like sitting on a bus!)
So I’d started thinking about what’s next. I’d already decided that as much as I love the Windows Phone interface, there’s only a limited future for those phones so a change of platform was due.
Initially I was looking at Android phones, in particular the Nexus models (figuring that they would be better supported and updated seeing as they come from Google). I was a bit concerned about a number of security vulnerabilities discovered in Android recently, and while iOS isn’t necessarily any more secure, I had been impressed with the stance Apple had taken with the FBI earlier this year. The other consideration was that the kids will all have iPads for school, so maybe iOS could make sense.
I didn’t want a huge phone, so something similar in size to the 920 would be nice. A friend recently bought an iPhone 6 and I’d helped her set it up, and I thought it looked pretty good.
So weighing all that up (combined with getting $140 store credit when I bought two iPads on Black Friday) an iPhone it is. I ended up gong with an iPhone, opting for the latest iPhone 7 model.
I placed the order on Wednesday and went in to the Apple Store here in Adelaide first thing Thursday morning to pick it up. Turns out most of the people in the queue outside the shop were for service and repairs so I was in and out in about 5 minutes. A quick visit across the road to Vodafone to get a nano SIM and job done. Because of the new SIM card, it did mean I couldn’t wait until Christmas morning to open my new present!
I already had an existing Apple ID, and it has a rather complex password. It’s quite a pain to have to enter into the phone repeatedly. I soon figured out that the fingerprint reader on the phone can be used instead of having to re-enter the password, but you need to enable that as it’s turned off by default.
Next stop was to install apps. A few favourites to match those I’d used on my Lumia and a few new ones to try out.
- BOM Weather
- My Vodafone Australia
- Microsoft Word/Excel/PowerPoint/OneNote/Outlook
- Office Lens
- Microsoft Authenticator
- KeePass Touch
- Australian Taxation Office
- SwiftKey Keyboard
- Google Maps
- Fing Network Scanner
- Pocket Casts
Paul Thurrott has written a couple of posts for people transitioning to iOS from Windows Phone. They are informative reading:
Some app-specific notes
I used this on the Lumia, but frustratingly the Windows Phone version doesn’t have a backup/export option, so I’ll need to re-enter all my store cards. Maybe I can scan the barcodes off of the Windows Phone app directly into the iOS one?
A nice two-factor authentication app. Obviously I needed to manually transfer all my accounts over. One nice thing, I can now just ‘Approve’ when my Microsoft Account needs authentication. No idea why they couldn’t do that on Windows Phone.
Australian Taxation Office
I was able to export my data from this app on Windows Phone to OneDrive and import it into the iOS version. The only thing which doesn’t transfer is any photos of receipts.
It does cost $5.99, but a) it’s created by an Adelaide company and b) it has a lot of recommendations (including Thurrott), so I splashed out on this . It can import OPML files. I had one lying around on OneDrive, though it wasn’t my current list as the default Windows Phone podcast app doesn’t support exporting OPML files. Not a big drama.
So that’s my new Christmas present! Any other app suggestions for me?