London Salesforce Developer Meetup – Oct 2016 Review

DRONES! Yup, DRONES… whoop!

And with that out the way, let’s crack on. This month’s London Salesforce DUG had a new venue – the WeWork offices, provided by Xactly. On arrival I was asked if I liked beer, as there was lots on offer… as if drones weren’t enough to make me pleased to have ventured out, then that question sealed the deal.

DUG attendees listening to Anup intro to the group

I wasn’t the only one tempted by the meet.

DRONES! – Bash & Cam

Solution Architect, Bashir Qaasim, and Director of Innovation and Thought Leadership at Accenture, Cameron Cronin, stepped up to deliver one of the most anticipated talks to be held at the DUG (since my talk on Building Offline Salesforce Mobile Apps?). There we were, all waiting to find out how – and see – a drone being flown from Salesforce.

To some amusement they rolled out the standard Salesforce Safe Harbour slide. Whether there was a serious reason for it I still can’t work out.

We were given an introduction to drones: how they’re now fairly accessible, some hardware choices, and some of the more common (and uncommon) uses that are being handled by drones. These include uses in areas such as logistics, agriculture, and security. We even heard that there’s a shepherd in the UK that does their morning round using a drone.

Bash told us that for their experiment they choose the Parrot, for a couple of reasons – it wasn’t too heavy on the price tag, and there was a non-mobile SDK available.

For support libraries, there seems to be a lot around. Bash named a few (and I noted down even fewer), including Dronecode, Ceylon.js, ros.org, nodebebop.

Cam then took the reigns to talk us through the possible and chosen architectures.

Architecture that was used in flying a drone from Salesforce

“That’s a lot of JavaScript… so what’s doing the heavy lifting?”

One thing I noted, when discussing the architecture, was that a few of the attendees were a bit confused about what part of the setup was doing the ‘heavy lifting’ of flying the drone. It appears, within the Salesforce Developer ecosystem at least, that JavaScript is still thought of as being something that can’t support complex applications and timely processing of transactions.

A drone being flown from Salesforce

And then with a whir of tiny plastic blades, the demo was upon us… and it was lovely. Bash talked us through the control screen whilst the the drone whizzed along the front of the audience. He mentioned that, even though their implementation was quite basic, and that actually the reliance and usage of Salesforce.com was very light, that there were many use cases where the platform could really be used to good affect. Such examples are;

  • Pre-defined routes
  • Uploading of photos to records from the flight at set waypoints

We also heard from Cam about how the Salesforce app was built. It was interesting to note that the app wasn’t built with Lightning, instead they applied some Lightning styling using the Lightning Design System. We were told that to build this in Lightning would have taken a lot of effort, but whether this was to do with familiarity or technical limitations wasn’t expanded upon.

To conclude, the chaps mentioned a few things that they had picked up during their investigations and build… but the one that stuck in my mind was ‘build in a kill switch,’ I think we can all imagine that this was learnt the hard way.

Intro to Clayton, the Code Review Bot – Lorenzo Frattini

I know I’ve rattled on about Drones, but the truth is that this talk was just as exciting to me… and Lorenzo, a Certified Technical Architect at makepositive, did not disappoint.

He first talked about good code, and what makes it good. We were shown some code that passed basic good code tests – adhering to governor limits, applying standards, etc. – but actually was full of errors, and hard to read and understand. We were shown some quotes by a few well respected folk about what they thought that made code good. It became clear that code needs to be good not just for the original author, and the system it runs in, but also for any poor-old-dev that has to pick it up in years time.

“Any fool can write code that a computer can understand.
Good programmers write code that humans can understand.”
– Martin Fowler

We were asked for a show of hands as to who frequently took part in code reviews, and it was encouraging to see so many people raise up (nice one Salesforce devs!). Lorenzo also showed us his code review checklist (this can be seen in the slides – link below), and he told us that as comprehensive as it is, he wondered about the potential of automating it… enter Clayton.

clayton

Clayton is a code review bot for Salesforce. It was initially a side project in early 2016 and is now available (free for open source projects) at clayton.io. It’s a static code analysis bot that runs on Heroku and can be triggered to run off each commit/PR made to github and bitbucket repos. Once a review is complete the bot will leave a comment on the PR, and also keeps stats on the defect density over time.

“Leave the codebase cleaner than how you found it.”
– Frank Hart, MobileCaddy

We were told how Clayton was in use at makepositive, and in the brief time it’s been running they’ve seen drastic reductions in defect density for existing codebases (e.g. 21 down to 3), and how new projects had nice low linear metrics too. This drop in defects is something that I like, and actually is something that our Frank Hart mentions in his post on targeting 100% code coverage as starting hotel… I definitely recommend reading it once you’re finished here.

Lorenzo showing drop in defect density after starting using Clayton

What was interesting to hear was that even though Clayton was reporting the same issues that might have come from a colleague during a code review, that actually the author of the code was likely to receive the information better coming from Clayton, since it was viewed as hard facts rather than personal opinion… we humans are so funny sometimes.

The pricing for Clayton is still being worked on, so I suggest pinging Lorenzo to find out more.

Lorenzo’s slides shall be posted to soon.

Wrap up

This was an excellent and well attended meet; the talks were good and I personally enjoyed them… and to make sure I’m not just being biased I also like to measure a talk by how much conversation it sparks and how many questions the speakers have to field. And in the case of both these talks there was much interest and many good questions from the audience. Huge thanks to Lorenzo, Bash, and Cam for spending their time on putting together talks that they obviously felt passionate about.

Thanks, as usual, go to the wonderful organisers of the London SF DUG – Anup, Jodi, Richard, Keir, Justin – and special thanks to Xactly for sponsorship. Thanks too to MobileCaddy as there should be videos of both talks up on the DUG YouTube channel within the coming days.

We also had a couple of plugs to finish the meet off; One for the Thames Valley SF DUG special Halloween meetup (2nd Nov), and one for Code Club, a nationwide network of volunteer-led after school coding clubs for children aged 9-11.

Useful links