Many Pies

Many Pies

Thursday, October 19, 2023

Salesforce DevOps - can you get away without knowing git? - part 2

This is following on from yesterday when I got a work item to review stage. Today I've found that you can ignore the pull request in git and work entirely within the DevOps interface to move that work item to the next stage in the pipeline.

I hit a problem with the deployment initially as there was an error in the XML for a report layout (duplicate column*). I had to abandon that work item, as I couldn't find a way to move it back through the process, to uncommit the changes and then commit all the files, apart from the troublesome one.

I also made a rookie error - you have to deploy profiles in order for newly created fields to be visible on the profiles you want.


Here are the concepts I think you need to be comfortable with in order to be able to work through this process.

The stuff in setup is metadata, which underneath it all is a tree structure of XML files. Without really understanding the ins and outs of XML you need to be able to spot things like - this file defines a new custom field.

The tree structure follows familar concepts like objects, report layout and profiles, as well as more obscure things.

The deployment process is essentially updating those metadata files by copying them from one environment (i.e. Salesforce org) to another.

The pipeline defines the order of environgments that work items move through.

I think the word pull used in the work item and in the pull request doesn't need to be fully understand, but you do need to get this: for the first it's the things that might have changed that you want to include in your work item. For the second, it's the things that have changed that you want to move through the pipeline.

* Surely this must be a bug in Salesforce? If a valid report layout can't be deployed then there must be something wrong with the way the XML is created.

Wednesday, October 18, 2023

Salesforce DevOps - can you get away without knowing git? - part 1

Here at Wycliffe we've started looking into Salesforce DevOps Center [sic] and I've been doing some investigations. If you're a dab hand at DevOps in general then this isn't for you. If you've heard of it and want to know more then read on.

This step by step tutorial is a good start. My observation is that, for whatever reason, in the past Salesforce didn't give much attention to the deployment process with Change Requests that were a bit faffy to use. So third parties developed their own tooling, and now Salesforce with their own DevOps Center are trying to catch up with those third parties.

One question I had as I actually started using DevOps Center was whether you needed to understand git, or could you just get by with mostly ignoring it. When you set up DevOps Center you need to associate it with a git repository, so you have to at least interact with After that though, you can carry on, even though you don't really know what a branch is.

However, when I wanted to put my work item up for review, there was no more escaping:

The rest of my team haven't used git, though one has worked through a tutorial. My challenge is to try and lead them through the process and see if we can get by with understanding just the bare minimum of how git works. I'll write more posts about that as I explore.

Bonus link via Julia Evans, why Git is hard.

Tuesday, July 11, 2023

How should you develop yourself as an IT professional?

Photo by Scott Graham on Unsplash

One of my colleagues was picking my brains recently as they were creating career development materials for a variety of jobs across our organisation. They specifically wanted to point to organisations that had good guides. For professions like accountancy and HR there were some very specific Chartered Institutes that had CPD materials. For IT though, I think it's very different.

I've been with Wycliffe for nearly 25 years, so I don't have a lot of wide experience. However we have recruited three people (developer, IT manager and a tech support role) in the past few months, so I've seen several CVs and what people are saying on them.

As far as Chartered Institutes go, I'm aware of the BCS and the IEEE in the UK. However, none of the CVs that I looked at mentioned either of them. From my perspective, when it comes to recruiting people experience counts for more than anything else (though specific qualifications in, e.g. Azure AD are of some use). 

Through the BCS and their SFIAplus I came across the SFIA skills framework. It does seem quite comprehensive. I'm open to debate, but I think IT is a much wider field than Finance or HR. 

I think SFIA will answer the question "in my particular area, where should I be putting my effort to gain skills" or progress in my career, or other ways of describing getting on. However, is there anything more generic. In fact my colleague had already come across the Research Development Framework. Although it is aimed at the research profession in fact I think the topics in the inner circle and the quadrants, with a bit of tweaking, could apply to IT - creativity, self-management, professional conduct - all good things.

So in the end we pointed people at that framework and the IEEE CPD materials. I hope you find them useful.

It would be interesting to get the perspective from both of my blog readers - does experience count for everything in IT? Is there any field in which being a Chartered Engineer is a distinct advantage?

Wednesday, April 26, 2023

Management lessons from powerboating


Ariel view of a powerboat driving away from a partly submerged rock formation
I recently filled in my quarterly review form. One of the questions was "Outside of your work context, what opportunities do you have to learn and to grow? How do these influence you when you are at work?" (OK two questions.)

I answered that I'd done a powerboating course, but this had no influence on my work. I've submitted my review now, but I realise that I was wrong.

One of the exercises we did was to go and retrieve a boat moored to a pontoon out in the lake where I was being trained. I was at the helm and we drove by it and the crew didn't take the action I'd expected. The fault was in my communication - I hadn't communicated clearly what I'd expected them to do, just suggested what could happen.

On a boat whoever is at the helm has the responsibility for steering it, but also getting the crew to do whatever is necessary to implement whatever manouvre is in progress. It's very much a positional responsibility - if you've got the steering wheel (or tiller) in your hand, then you're in charge at that time. During our training the instructors and my fellow trainees took in turn to take the helm. Experience or seniority didn't count for so much - though we were listening to the advice of the instructor!

In work, leadership and management isn't so flexible. There are roles, and organisation structure, and levels of authority. However, in any given situation it may be clear who is in charge, regardless of structures, and that person needs to take the helm and lead.

Monday, March 27, 2023

Google analytics engagement time not working - how I found out the problem

A graph showing a zigzag line, but on the left hand scale the scale values are all zero. At the top it says the average engagement time is zero.

This is very niche, and is mainly of interest if you're using the Webtoffee Cookie consent plugin (there is a free version available too). However, if you're interested in debugging analytics problems, then this gives you some techniques.

The problem showed itself that the engagement time on our GA4 analytics was zero. As you can see from the graph above, not exactly zero, but certainly very small. I turned to and got a response from jen. It didn't give me the answer, but pointed me to an analytics debugger extension for Chrome. I could see that using that the engagment time (_et parameter) wasn't zero, but was a small number of milliseconds, less than 50.

I tried a number of things on the cookie plugin settings, such as putting the Google Tag Manger code into cookie categories, as recommend by this article (only for the free plugin though). That made the analytics script run when you accepted the cookies, but never after that. I tried disabling it, but it still didn't make engagement time get registered.

In the end though, the problem was that there was code in our site theme designed to work with GTM, but we hadn't been asked to do the corresponding changes in our GTM config. Once I removed that code the engagement time was a healthy number of seconds. I don't quite know why that caused this problem, but my theory is that the events it was triggering ran pretty quickly after the page loaded, and at that point the user engagement was recorded on those events, rather than when the user subsequently did something (scroll, navigate).

Other things to help with debugging

  • Chrome application tab, cookie section, has a handy clear all cookies button to the right of the filter box.
  • Make sure you enable the analytics debugger extension when trying to debug!
  • Clear the site cache after making changes to the cookie plugin settings

Friday, March 10, 2023

What's the difference between disconnecting from a remote computer and logging off?

 I put this in one of our internal chatrooms, but it may be useful generally.

Some people are disconnecting from remote computers (using Remote Desktop) and not logging off when asked. If you disconnect all your programs are still running, even though you can't see them. If you log off, they're all closed down. Disconnecting is like leaving an office with your stuff all over your desk. Logging off is like putting everything away and leaving your desk clear, before you then leave the office. I got Dall-E to illustrate these:


a woman walking out of an office door with books and papers still on the desk
Logging off

a man walking out of an office leaving a clear desk behind
To disconnect:
To log off (ok, sign out is the new fangled word for it)

Click on that icon of a person to get the sign out option

Thursday, February 02, 2023

We all have supercomputers now

Judson Rosebush, CC BY-SA 3.0, via Wikimedia Commons

I was watching a TV programme of 80s and 90s music videos the other day. I was marvelling at just how relatively advanced the video techniques and transitions were - such as the picture rolling up and zooming off the screen. In my mind I kept going round this little loop - "isn't that amazing for the time" - "but the technology I was using was so primitive" - "isn't that amazing for the time" - etc.

Then a realisation struck me as to why I was in this loop: These days I have access (though I don't use it) to such the type of technology that is used in, say, Avatar. I'm sure there's a bit of software out there that I could use that would do motion capture. I've heard of things like Blender which I could use to create 3d environments. I'd need to learn some stuff, I might want to buy some hardware to reduce render times, but it's all within my grasp.

In the 80s and 90s though, the height of what I could reasonably expect to be able to create myself (given time and skill) was Manic Miner and Doom. Those video effects came from computers like the Quantel Paintbox, which at $150,000 cost more than a house. (OK, not a fair comparison, as you could get houses so cheap then. It cost more than an expensive car.)

So, we all have supercomputers now. What are we doing with them?