London Salesforce Admin Meetup – Oct Review

Well what a busy couple of weeks it’s been in terms of meetups. Partner that with a pretty chocker-block work schedule and I’ve ended up with a backlog of meetup reviews to write-up.

And so I come to the Salesforce Awesome Admin User Group… where do I start? Oh yeah, HAPPY BIRTHDAY!

cake

 

The London AUG has turned two, and what a meetup it is, and what a great community it has built up around itself.

As for this particular meet, it was hosted by TES Global, and they did a sterling job with a full complement of refreshments and a buffet that could have fed a thousand. Amanda Beard-Neilson welcomed us all and set the agenda for the evening… swag was on offer for those willing to share their Salesforce stories. The audience participation at the Admin meets is something I struggle with, coming from the relative safe-haven of the DUGs.

The structure of the evening was refreshing and led to some wonderful anecdotes that had strong leanings towards how folk initially got into Salesforce. As well as a repeating theme of “Salesforce transformed my work life, for the better” it was wonderful to see that “community” was high on the mentions-list too.

Along with the great stories, came wonderful opportunities to catch-up with old friends and make new acquaintances… so as odd as this write-up is, I hope you take away the notion that these community groups and meetups are good fun and well worth attending (they’re actually also educational, on the odd occasion).

And on that note, huge thanks to TES for hosting and to all the organisers for fuelling such a vibrant and supportive community.


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


London Salesforce Developer Meetup – Sept Review

It was back to the splendid Salesforce Tower, Liverpool Street, for September’s London Salesforce DUG. The standard fayre of beer and pizza (and Coconut milk, for those that fancied it) was available, so let’s thank Salesforce for the venue and Westbrook for the sustenance.

London Salesforce DUG Sept 2016

Photo: Anup Jadhav – London Salesforce DUG

Lightning was once again on the menu, and I wonder if we’ll ever again have a DUG or AUG that has a lightning-free line-up. But let’s make no mistake, Lightning is still evolving, so these talks are just as needed and as interesting as ever.

Advanced Designs for Reusable Lightning Components – Tom Waud

As well as sponsoring the event, Westbrook also represented in the talks, with CTA Tom Waud kicking off the night. He presented a run through of some useful design patterns and approaches that can be considered when looking to reduce code duplication when building Lightning components. He also covered some clever handling of some of the nuances that currently exist with the framework. This talk was actually the one that Tom will (has) presented at Dreamforce ‘16… and if you do (have) caught it there then I’m sure you’ll be glad you did.

tom-anup-jodi

Tom’s talk focused around a Job Scheduler component that he has written, and he used this as a reference throughout. The approach made it very easy to relate the concepts he spoke about to real life implementations and challenges. The code for the scheduler can be found in Tom’s git repo.

Tom covered a variety of aspects including;

  • Composition using Facets – Including the aura:set and Event Bubbling (including a Winter ‘17 improvement called includeFacets
  • Dynamic Creation of Components
  • Object Orientation – Encapsulation + inheritance, and some of the current limitations and workarounds.

It is clear that Lightning is still evolving with every release of Salesforce, and it seems that, despite some good fixes coming in with the Winter ‘17 release, some of the missing/broken parts are still a barrier-too-far for many ISVs and consultancies alike. With this in mind though, it was also good to see John Belo – Director of ISV Technical Enablement, EMEA – ask Tom (and the audience) how Salesforce can improve Lightning for developers and what could be done to increase its adoption.

Tom’s slides can be found here.

Winter 17 Lightning Release, Highlights for Developers – Laura Kulikauskaite

As the newest Associate ISV Technical Evangelist, Laura was at the DUG to talk us through some of the changes to Lightning in Winter ‘17, and how these changes affect and can be used by developers.

The first thing that she mentioned was a new Winter ‘17 Lightning Trailhead module, so if you’re dabbling with Lightning (or using it in production) then it would be good to check out.

As well as the fixes and improvements that Tom mentioned in his earlier talk, Laura covered some nice new enhancements to Lightning. These include;

  • Custom Lightning App, with custom Lightning navigation bar
  • App Launcher available in the access menu
  • Utility Bar – Currently only available to ISV partners. Should be available for all users in the Spring ‘17 release

Laura also covered the release of many more base Lightning components (icons, badges, inputs, etc) as well the support for Quick Actions.

Another new feature, that apparently has been highly demanded by users, is Inline Editing in Listviews. I remember a breakfast-meet back in January ‘16 at Salesforce Tower (before it was kinda-called Salesforce Tower) where this idea was originally spoken about. Diego Ferriro Val – Software Engineer/Architect Lighting – spoke about how Inline editing can quickly lead to a huge increase in transactions to the platform, as each edit could kick off a save event. In the actual approach demonstrated at the DUG the list remains in an at-risk state, with edits highlighted. A Save button actually needs to be clicked for the edit to be sent to Salesforce. Whilst this approach does get over the risk of adding unnecessary load to the platform, it does potentially mean that these at-risk edits could be lost, if for example, the user’s laptop ran out of battery, or crashed. Perhaps Salesforce are using a more persistent local store for these edits to combat this, though this was not covered in the demo. Within the MobileCaddy apps we take an offline-first view on these types of actions, and we would be using the persistent encrypted local store for all edits, so as to reduce any real at-risk records.

A demo of the Lightning App Builder was also on the menu, and I have to say I still noted Lightning to be pretty slow. I’m sure work on improving this is ongoing, but personally I think the current performance is going to irk users who are using LEX. And I might be wrong but doesn’t the screenshot below look like a classic list view (yes this is my Summer ‘16 dev org, but still looks the same in Winter ‘17)?

screenshot-from-2016-10-05-123134

 

During the questions, the point of unit tests within Lightning was raised. We were told that these are planned for Spring ‘17. I’m sure this will make many developers much happier.

Wrap up

It was another truly interesting DUG, and I really must thank Anup Jadhav and Jodi Wagner for organising and Westbrook and Salesforce for sponsoring and hosting.

It’s good to see the evolution of Lightning, though it is very clear from chatting to other attendees that adoption is still slow.

Useful Links


London Salesforce Admin Meetup – August Review

Now this might sound surprising, but prior to last night I hadn’t been to any of the Awesome Admin meetups before. I’ve seen admin talks and pretensions at conferences and the like, but I had not actually attended an AUG (Admin User Group) before.

And so I can’t comment on other AUGs, but London’s is excellent. We were 70+ strong, were hosted by PWC, and were treated to a handful of really interesting, (entertaining?) and informative talks.

The event was very friendly, and although I knew a handful of folk from other Salesforce meetups and community events, I met a whole raft of other folk too.

View of London Bridge from outside the meetup

The venue is in an incredible location, and plenty of attendees took a pic of the vista on exiting – including me. Pizza, beer, wine and soft drinks, and all went down well. The only negatives on the venue, from me anyway, were a lack of seating and the room being too hot. Of course, being British I just smiled and took it on the chin. I’m sure if I mentioned either of these things then they could have been addressed.

Four talks were lined up for the evening, so let’s crack on.

Salesforce Security – Francis Pindar

As an avid member of the community, Francis, a Salesforce MVP, was expected to deliver a good talk, and that he did. Squeezing an awful lot of content into a relatively short amount of time.

His talk was all around security, and things to look out for, including steps that can be taken to increase your security – both personally speaking, and also in the realm of a Salesforce Admin. He started off with a quite dramatic big number, 487 million. This was the number of private records that were leaked into the public domain last year.

Next came something that caught me out completely… audience participation! This is something I’ve not seen at the DUGs. It became clear that Admins are indeed a different breed. Francis ran us through a couple of hypothetical scenarios, highlighting some of the tactics used, and how we can protect ourselves. During the conversations it actually transpired that two folk, just in my group of eight, had been victims of a phishing attack, just in the last week. These threats are real.

Education is key to prevention

One of the key points that came out of the talk was that even though Salesforce provides a lot of out-the-box security (and settings that can be used to lock your org down even further), that actually users of the system can pose just as much as a threat, and are a common way in which systems are compromised. Off the back of this came a nice summary statement, “education is key to prevention”, to which Francis nicely parried with the recommendation of this free course on security, so why not check it out and pass around to your colleagues too.

Intro to Health Cloud – Chris Edwards

health cloud promo image

As a ‘face’ of the Salesforce community, but one I’d not actually heard speak before, I was keen to see what Chris, of Mavens, had to say on the new Health Cloud. This is one of Salesforce’s newest clouds and is built upon the Service Cloud. It has pre-built targeted custom objects that (should) fit to organisations within the healthcare industry.

 

Chris gave us a demo and showed us some of the features, and current niggles, that the Health Cloud provides. In all it looks good, and this was one of Chris’s key points – it does look good but sadly is a bit lacking under the hood (at the moment at least). Health Cloud is all currently Lightning-powered through Lightning Out in standard Visualforce, and with that comes the current hit to performance that Lightning is presently suffering.

Intro to Financial Services Cloud – Jodi Wagner, David Everitt

The tag team of Jodi and David were up next, both from Accenture. They gave us an overview of another new cloud from Salesforce, the Financial Services Cloud. As with the Health Cloud this is built upon one of the existing offerings, though this time it’s the Sales Cloud that is used as a foundation. The Financial Services Cloud is built for wealth management and is currently in its first iteration.

The view on this offering, from Jodi and David at least, is that it’s not a bad first stab. Like the Health Cloud though, there’s still more to be done, and what is there isn’t really available to be configured or modified to a point that it’ll be useful beyond some of the very basic use cases.

The idea behind both these clouds is to give organisations within certain fields a good starting point and something to build upon. It looks like Salesforce have made a good start, but there’s still a lot that can be improved upon.

Capturing Requirements – Amanda Beard-Neilson

As with the other speakers, Amanda is also active within the community. This was a chance for me to catch a talk similar to the great one she did at London’s Calling that I had missed at the time.

It was an entertaining presentation for sure, and I’m pretty sure I can’t do it justice here. But worry not, check out this video from said London’s Calling.

The talk was captivating and covered many points. The majority seemed to be common sense, but actually get lost when in the process of trying to gather requirements. This led to me thinking that maybe just one key thing needs to be remembered… focus.

During several of our recent projects at MobileCaddy – including an award-winning one with our strategic partner Appirio – we’ve seen how having a sturdy and focused requirements gathering stage can hugely affect a project, for the better. As well as the process, there’s as much a human aspect to this. Having a good relationship with the client, one where mutual respect is in place, leads to better results. Projects will not just actually deliver better outputs, they’ll also run smoother, be quicker, and ultimately provide better value.

Agile Software Requirements
I love the above image, but could not find anyone to attribute it to, sorry.

Wrap up

I’m really pleased I branched out from the safety of the DUGs to attend my first Awesome Admin meet. It was certainly different and actually very interesting to hear about Salesforce from different angles than those that I’m used to.

Useful Links


London Salesforce Developer Meetup – July Review

Last month’s London Salesforce DUG meetup was an odd one. It was a viewing party for the keynote(s) of the TrailheaDX – the annual Salesforce Developer conference. As interesting, and enjoyable, as it was, I was pleased this month’s agenda was back to the “couple of talks and then chat”.

But before all that, Keir Bowden kicked off with a short community message… “we want more speakers”. So if you have a passion for something that you think the Salesforce Developer community might like, or a demo of something cool, then please, please get in touch with the group.

“We want more speakers, get in touch”
– London Salesforce DUG Organisers

The Welkin Suite IDE – Rustam Nurgudin

Starting off the talks was Rustam, CEO of The Welkin Suite, the company behind the IDE that is really impressing Salesforce devs. He told us how their IDE was born of frustration with the existing tools that were available. As with other great products, they saw a problem and – in my eyes at least – have made some incredible dents in it.

The Welkin Suite logo

The amount of features and tools in the suite just seems boggling. The core editor has everything and more that you’d expect in an editor… and then some;

  • Code completion
  • Syntax highlighting (apex and Lightning, I believe)
  • Mini-map (with magnified preview and error highlighting)
  • Snippets
  • Unit test statuses and actions available in the margin
  • And probably others – Rustam was demoing faster than I can take notes!

Other parts of the IDE included Unit Test (code coverage, jump from logs to source, retrospective debugs and more), a Profiler, class libraries and project inspector. The latter includes the neat support of specifying your own folder hierarchy that can be shared with other members of your team. Oh, and I almost forgot their WAVE PREVIEW FEATURE!

For the time being it’s free and is available on Windows, with a Mac version coming soon. Rustam believes that in future there’ll be a monthly subscription for use… but to be honest talking to the other devs who were at the meet it seems the features of the IDE are well worth a small recurring fee.

I chatted to Rustam following the meet and he’s very keen to get developers outside of their business using it, and is openly requesting feedback… so what are you waiting for, download The Welkin Suite now and let him know what you think!

Road to Becoming a CTA – Sunny Matharu

Up next was Sunny Matharu, of Deloitte. He told us how they’ve recently been discussing the updates to the types of architects that will (or do, now) exist in the Salesforce ecosystem. The talk title seemed to be a bit link-bate-esq, but I’ll forgive him, as it was a really good open talk and discussion on the new state of certifications relating to Salesforce architects.

What we actually covered was the new certifications that are ( and will be, maybe) available, and how they all fit together and what they will (probably) mean for the dreaded final CTA review board exam.

“Sometimes I wonder if Salesforce make more money from licenses or certifications”
– Anonymous

So this is all a little confusing and still new – and/or not yet out finalised- so please take what follows with a pinch of Safe-Harbour-salt. Salesforce have introduced 3 new Domain Specialist certifications and are going to introduce 2 new Domain Architect certifications.

Salesforce Architect Certifications Hireachy

The Domain Specialist certs are made up of;

Looking into the study guide of the Mobile Solutions Architecture Designer certificate it seems to cover a lot of what we undertake every day at MobileCaddy. Be it designing solutions to support secure mobile Salesforce applications across multiple devices on multiple OSs. Or understanding and explaining the suitability, strengths and limitations of the different options an organisation might face when undertaking a mobile transformation project. The materials already available to support those wanting to gain this accreditation appears to be pretty thorough… I just hope that a mention of MobileCaddy in an exam would get the participant extra credit :)

As for the two Domain Architects certs it’s believed that they will be as below… but at time of writing the closest I could find online was a note on the Architect Academy to say they’re “Coming Soon”.

  • Application Architect
  • System Architect

Sunny went on to say that the idea behind these extra certifications was that it would hopefully reduce the failure rate of the CTA final review board, by breaking down areas of expertise into individual chunks and exams. I wanted to find out more about how he’d got all this info, but I missed him after the talks, but from what I gathered he, through Deloitte, had been chatting to EMEA CTA expert at Salesforce.

“The number of Salesforce certs on a project team can affect how they are won”
– Sunny Matharu

I really enjoyed the open discussion of this session, and Sunny came across as a very knowledgable and personable chap, and one I hope we hear more from at the DUG.

Wrap Up

As I mentioned earlier, I really enjoyed the make-up of this month’s DUG; both talks were full of knowledge and passion and I think everyone in the audience took at least a few items of interest from them.

As usual, the chats following the meet were entertaining and thought provoking, and definitely worth sticking around for. It’s was good catching up with folks I’d met before as well as new faces… including one chap I’d spoken to many times on conference calls but not actually met before.

Of course no write-up would be complete with a nod to all the sponsors (CapGemini, MobileCaddy) and organisers.

Recordings of the talks should be available on the London Salesforce DUG YouTube channel in the near future, make sure you follow MobileCaddy Devs on twitter to get notified once they’re up.


London Salesforce Developer Meetup – April Review

Is it a bird? Is it a plane? No! It’s a Salesforce Ladies in Tech and Developer Super Meetup!

That’s right, the March meetup of the London Salesforce Developers joined forces with the Salesforce Ladies in Tech to hold a combined super-gathering.

The Brightgen offices in Salesforce Tower hosted us, and as ever I was dead pleased to ride in the outside elevator up to their amazing view over the city. And I was in great company on my way up, joined by both Jodi Wagner – one of the night’s speakers and all round Salesforce celeb – and the MobileCaddy CEO, Justin Halfpenny. Not only is he our CEO, but he’s also my brother and the latest member of the community to put their names forward to co-organise the London Salesforce DUG.

The evening was to have two talks, one from each of the meetup groups… but of course it started with a natter and a drink. Seriously, if you’ve not been to a meetup then I can’t recommend you attend enough. Even without the presentations they’re an incredible source of business and geek chat, and the odd slice of pizza.

Personal Branding – Jodi Wagner

First up was Jodi. She’s an incredibly active and passionate member of the community. Not only is she a co-organiser of the Salesforce Women in Tech meetup but she also co-organised the incredible London’s Calling and the recent Evening with Ladies who Salesforce. Oh, she’s also a delivery manager at Accenture, if she wasn’t busy enough already.

Jodi’s talk was all about personal branding, and she started with something that I hadn’t even begun to appreciate, and that’s the thought that personal branding isn’t about you, it’s about other’s perceptions of you. She recommended that, however vain it might be, it’s a good idea to google yourself. I did, and I was pleasantly relieved/surprised (delete as appropriate).

Search results for "todd halfpenny"

 

Once you know where you currently stand you then need to think about your Value Proposition, and where you want to be. Jodi has many suggestions around how to get there, and you can find all the details in her slides. Some key areas mentioned though include;

  • Planning
  • Know the channels – what you post on LinkedIn won’t necessarily work in your favour on Facebook, for example
  • Keep a schedule in mind – when are your target audience online
  • Monitor the results – tools can be used to see the reach and impact of your work.

A really nice touch to Jodi’s talk was a slide containing a few tips from some of the folk within the Salesforce ecosystem who appear to have mastered their online branding. A couple of messages seem to come through strongly, such as “Be authentic” and “Be consistent”, the latter could apply to message and cadence.

I had asked Jodi about whether or not she thought it was a good idea to have a personal account, as well as one for your professional self. She replied that if you get the balance right then a single account can be very strong; it was nice to hear her say that from my tweets and blogs that she knew that MobileCaddy was doing some incredible work with offline Salesforce apps, but also that I like food and go for a jog every now and again… I’ll take that.

Open Source & Apex Common and Apex Mocks

The next talk was actually in two parts, let’s respect that; The talks were by Andrew Fawcett and David Frudd of FinancialForce.

Getting the most out of the Salesforce Open Source Community

Salesforce has been notable of late in the Open Source world following its release of the Lightning Design System, but there are many more Salesforce (initiated and related) open source projects than that, and some have been around for quite some time. MobileCaddy are keen open source contributors too, not only into our own projects such as our mobile starter apps, but also the Salesforce Mobile SDK projects that we extend to provide fully offline mobile apps with custom UIs. We also contribute to other projects such as ngCordova and Ionic that help provide support for incredible hybrid mobile applications.

Andrew talked us through things of note to look out for when contemplating whether or not to contribute (or even use) open source projects, though more of interest to me was what you can get out of it. He spoke about how FinancialForce’s open source projects had helped them with;

  • Recruitment
  • Product Promotion
  • Social/ethical Rewards

What’s new in FinancialForce Apex-Common and Apex-Mocks?

Andrew’s colleague David was up next to talk about two of FinancialForce’s projects. Apex Common and Apex Mocks are two projects that we use and love at MobileCaddy and David gave us an explanation of each, and some of the new(ish) features and fixes that had been contributed not only by FinancialForce employees but also the wider open source community.

The fflib-apex-common repo gives you a wonderful project that aids Apex developers by giving them a best practice and practical design patterns library for use within their Salesforce applications. One can combine the beautiful modular code you get from using this library with the fflib-apex-mocks repo to achieve great coverage in your unit tests too.

For information and examples and tutorials on using these, and the other FinancialForce projects head over to their developer site.

Wrap Up

It was really nice to share the meetup with the Ladies in Tech, and I hope it’s something we get to do again. I’d love to have chatted to some of the other attendees more, but time as always was not on our side.

Videos of the evening’s talks should be available on the meetup’s YouTube channel (soon if not already there).

Thanks, as usual, to the organisers and sponsors.

The next meetup should fall on the 25th May, less than a week after the London edition of the Salesforce World Tour. I hope to be at the meetup if manning our sponsorship booth at the World Tour doesn’t prove too much for me. UPDATE: the meetup has moved to the 17th May – Developing Wave Apps with Skip Sauls, hope to see you there!

And if you are planning on coming to the World Tour in London then drop by our sponsor booth and check out some of the apps we’ve built for, and with, our partners, and how you too can realise the mobile advantage of taking the power of the platform with you.


London Salesforce Developer Meetup – March Review

 

Last month I attended the London Salesforce Developers’ meetup, which was hosted at the SkillsMatter at CodeNode in Moorgate. You may remember that this is where the 2016 London’s Calling Salesforce community event was recently held.

MobileCaddy is the new proud video sponsor and was recording both talks, which will be published to the new London Salesforce Developers YouTube Channel as they become available. So why not check out the existing videos once you’re done reading this, as they include my goodself doing a live coding demo – building a fully offline Salesforce mobile app using the MobileCaddy SDK.

There were two talks on the night, both Lightning related, though they were quite different from each other. I suppose that’s what happens when you get a new, slightly ambiguous, branding phrase.

Migrating your Apps to Lightning – John Belo

John is an ISV Technical Enablement Director (EMEA) for Salesforce and I’d met him a couple of times before. He had offered his assistance to us at MobileCaddy if we ever needed help with anything Salesforce Mobile SDK related, a kind offer to which I replied that we found them very helpful already – MobileCaddy has actually been submitting code to the core Salesforce Mobile SDK project for a couple of years, providing improvements and bug fixes alike.

The team who work on the Salesforce Mobile SDK are key to anyone wanting to build mobile apps that offer true offline capabilities, and stretch the demands beyond those that are catered for by Salesforce1. We’re thankful for them doing such a great job, so that we can do ours.

migrating-your-apps

 

John was here to talk about how ISVs can start migrating their apps to Lightning. This is something I’m sure Salesforce wants to really push, to generate some traction around the technology. It was interesting to see though, when asked, how many users were already using Lightning in their apps, which turned out to be only one amongst us all. Other notable stats mentioned were;

  • 140+ Lightning-ready Apps
  • 50+ Lightning-ready Components

These stats show that although Salesforce is mightily keen on pushing Lightning, it still has a long way to go to gain traction and take-up among ISVs and users alike.

The core of the talk was focused around how ISVs can start using Lightning today to prepare themselves for further takup by users. There are several routes to this, depending on how much work you want to undertake, and also the architecture of what you currently have (if anything). These approaches range from simply adopting the Lightning Design System for style, right through re-writing apps with Lightning components.

One handy route to slowly and controllably adopting Lightning is to migrate chunks of functionality to Lightning, piecemeal. This can be achieved by using Lightning components within Visualforce pages.

vf-lightning-component-sm

Pic courtesy Salesforce

Talks like this from the ISV team are really handy, though I think it will take more (at least more time) for partners to really start rolling Lightning into their current offerings, especially when there are still some elements that are’t available through Lightning yet (and no concrete ETAs, either).

From a mobile perspective, the drive to Lightning may smooth the road to getting apps to fit well with Salesforce1, though of course they will then be subject to the constraints that come with it. Applications that still require advanced features, such as a fully customised UI, or full offline support, need to be built outside of Salesforce1. If your app has the requirements then MobileCaddy is the answer for you.

Lightning Connect Int. with OData Services – Marc Paris

Marc is a Technical Architect at Cognizant and kicked off a passionate talk on Lightning Connect. He talked about how and when it can be used to pull external data into the Salesforce UI.

Lightning Connect was launched towards the end of 2014, but I hadn’t really seen it in action – or maybe I had, and I wasn’t aware of what was happening under the hood, but I suppose that’s its beauty, right?

Olingo Logo

 

Lightning Connect can be used to connect in these scenarios;

  1. Lightning Connect ←→ Lightning Connect – for inter-org communication
  2. Lightning Connect ← → oData Service
  3. Lightning Connect ← → Custom Adapter

Marc took us through a demo of the second option, where he had a basic oData service running using the Apache olingo project. He showed us how, through config, the connection could be added, and how Salesforce would use the web service to discover the objects available. Lightning Connect can support the following features, as long as the backend service does likewise;

  • Create, Read, Update, Delete
  • Filters
  • Inter-object Relationships
  • Integration with Global Search.

His demo included querying the REST API in a basic manner, as well as using page layouts to filter the data that is requested from the source. He also showed us basic update and delete flows too… it all seems very powerful.

£33k per external source, wowee! – Todd Halfpenny 2014

The power though does come at a cost, currently £33,000 per external data source… a price tag though that may well put a big-ol-hole in a lot of business plans.

It’s interesting to think that through the use of Lightning Connect that no data is stored on SFDC itself, and that it is all pulled/pushed in real-time to and from the external data source. Whether this helps with any data residency restrictions is, of course, another topic altogether. In the questions that followed Marc’s talk the mention of PCI was also raised, but it seemed we all agreed that internal logs may also contain data, so this would need further investigation.

I will post a link to Marc’s slides once I have it.

Wrap Up

Initial thanks, as always, go to the organising crew, and especially to Anup as he was the only one able to make this outing. And thanks to must go to Cognizant who sourced the venue, beers, and pizza (and chocolate snacks too).

Lightning isn’t going to go away, but the path for ISVs is a long one, and one that is going to need investment. With regards to Lightning and fully offline, robust mobile apps, there are still several gaps to be filled. For these reasons it’s not currently our go-to framework; it does not, at the current time, lend itself to the control and extensibility needed to support mobile apps that fulfil parts of critical business processes. Performance issues are another reason that, at present, we are steering our partners and clients to alternative such as Ionic, though of course we hope that this will change in future.

And as for Lightning Connect, I have so many ideas on how it could be used, I just don’t have pockets deep enough.

Useful Links


London AngularJS Meetup – March Review

A very hectic few months has meant that I hadn’t been to an AngularJS meetup in quite some time, so I was looking forward to getting along again. And with the topic being AngularJS Performance – Tuning the Engine I was doubly set on making time for it.

The meetup was again held at the Bloomberg office at Moorgate, and as with the previous meetup there their food did not fail to impress – “Chicken Caesar on flatbread with a quail’s egg” canapés. As for the rest of the venue it’s perfectly suited to a large meetup. Huge thanks to them for hosting.

Tuning the Engine – Todd Motto

I’d heard of Todd before, though I wasn’t even following him on Twitter (I have rectified that now) so I wasn’t sure what to expect. Todd is a developer advocate at Telerik, who provide developer tools for desktop and mobile apps.

His talk was originally going to be called AngularJS: The Performance Parts but he’d updated it to suit the story of his presentation. At MobileCaddy performance is key, and potentially any tweak that can be made to improve a desktop JavaScript application has an even greater impact on performance when run on a mobile device.

digest

 

Todd’s talk was split into two main parts, the first being some educational coverage of the Angular event loop and its $digest cycle, and the second covering some things you could do to help your app’s performance, as informed by the first part.

The slides for the talk are available here.

Angular Event Loop & $digest Cycle

First up, Todd talked us briefly through the Angular event loop (or should that be AngularJS event loop?). He showed us that it looks like the below (thanks to Todd for the image), with events from the DOM (change, click, blur etc) prompting a chain of events that results in a run (or two) of the Angular $digest cycle that generally ends up in the DOM being re-rendered with updates.

angular-event-loop

 

He went further into the $digest cycle next, covering $rootsScope, $scopes and $$watchers. This slowly built up a picture of how these, especially the $$watchers can impact AngularJS performance of an app. This idea, on a general scale, was one I was already familiar with, but he then mentioned something that I wasn’t aware of. When you assign a value to $scope it does not create a watcher for it, a watcher is created when interpolating a value in the view;

someController.js

someTemplate.html

During the running through of the above, Todd showed us a very basic demo, and Angular uses the same techniques internally.

Tweaking

The second part of the talk covered a few techniques that can be used to make the most of the way Angular works, and one or two that, for me at least, seemed to appear from left field.

I don’t want to re-produce his talk here as I’d rather you use his material for that (useful links below). But I was previously unaware of a particularly interesting one, so I thought I’d cover it briefly as well as bullet-pointing some of the areas covered;

  • Reducing the $digest frequency
  • Optimising the use of ng-repeat
  • Speeding up filtering (using controller filters)
  • $digest batching
  • Production Settings

Disable Debug Info – You can remove unwanted (for production) bindings and class names by disabling the Angular Debug Info config. It’s a one liner in your config block;

I have yet to try this out myself, but I’ll update here once I have to see what impact this has. I have high hopes as the official AngularJS docs state a “significant performance boost.” Note though that doing this at build time might not be ideal as protractor and batarang (among others?) need it enabled to work.

Useful Links

Wrap Up

It was another really useful and interesting meetup, and as well as the talk itself being great I also got the chance to chat to a couple of folk I’d met at previous events: one of whom had actually seen me talk about how MobileCaddy and Ionic can be used to create offline mobile Salesforce apps – what a small world.

 

Big thanks should go to the event sponsors and also to Ed and Josh for organising another really good meetup, I really hope that time allows me to make the next one.

 


London Salesforce Dev Meetup – Nov Review

What with Dreamforce and other commitments it had been 3 months since my last Salesforce Developers meetup. With this in mind I was very keen to get back in the saddle and mingle with the cream of London’s developers. This month we were back at the MakePositive offices and myself and Justin from MobileCaddy were in attendance. The topic for the night was to be CI (Continuous Integration).

Gearset – Kevin Boyle

We had previously met Kevin at one (or maybe more) of the Salesforce World Tour events in London. It was nice to catch up with him again and see how Gearset are doing. In their own words Gearset’s “mission is to make deployment and developer collaboration on the Force.com platform ingeniously simple.”… and their talk was mostly a demo of the suite of products that they have (and hope to have).

…make deployment and developer collaboration on the Force.com platform ingeniously simple

Kev first started out giving an overview to CI, and why implementing it when working with Salesforce can be tricky if undertaking it with tooling used for other software stacks, think TravisCI etc.

Kevin from Gearset, talking about C

 

We were then given a demo of the Gearset Deploy tool and run through some of it’s features. A basic list includes Org Comparisons, dependency checking (included nested… which is very cool), history tracking and master/detail relationship support. The options of comparison has a nice touch of being able to compare not only Salesforce orgs, but also a local codebase and an org. There’s a 30 day free trial available, so why not try it out?

As for the core CI stuff, this is on their roadmap and (I think) is going to be available early in 2016. For more information check out their roadmap.

Copado – Philipp Rackwitz

I’d not heard of Copado before, and in fact I misheard the name and though that someone from Pardot was giving a talk… this definitely confused me! Thankfully I was wrong as Phil, CEO and Co-founder of Copado gave a very interesting demo of the suite of products.

With automated Apex tests, kicked off by changes to source code in bitbucket for example, and deployments including permission sets and metadata you can see quite easily how a lot of potential errors can be avoided.

philipp_Rackwitz

To be honest the list of features and options goes on-and-on… it does seem to be that Phil and his team have really thought of almost everything. They have a couple of videos over on their site so take a look.

Wrap up

Both talks and tools look incredibly useful and I certainly reckon they’re worth a look.

The venue and refreshments were as usual spot-on and appreciation should be shown to the kind folk at MakePositive as well as of course to the meetup organisers, though I think I only spotted Francis at this one.

I did note though that diversity of the attendees is hugely lacking, with ~55 folk there I only counted 3 women. The Salesforce Developers meetup has previously clashed with other meetups (e.g. Women Who Code) that are more heavily attended by ladies, so perhaps this was the case again.