Anyone who works in the Salesforce ecosystem is familiar with the traditional role breakdown that Salesforce portrays in its marketing and…

Anyone who works in the Salesforce ecosystem is familiar with the traditional role breakdown that Salesforce portrays in its marketing and communications — the admin, the architect, the consultant, the marketing specialist and the developer.

Developers in the Salesforce ecosystem have traditionally been what other technology domains would refer to as ‘Full Stack’. The same developer would develop the front end (Visualforce) and back end (Apex Controllers, Triggers, Unit Testing etc). In all the ecosystem, whilst nuanced in its specifics, was relatively simple.

As the platform has matured and expanded, as new front end technologies such as Aura have been introduced, I would suggest that the depth and width of the necessary knowledge to be a Salesforce developer has dramatically changed and expanded.

Today the required skill-set of a Salesforce developer has exploded with a raft of new skills required: Command line tooling, IDEs, Version Control, Web Service callouts, Mocking, Event Driven Programming and of course Modern web front end frameworks requiring complex JavaScript skills, CSS and HTML.

But I don’t think that there’s been a real recognition that working with Front End (Browser) technologies is a specific and different skill set from a back end developer. Should the same individual understand the effective design of Lightning Components, the CSS box model and Javascript promises and also understand the nuances of Platform Events, Asynchronous batch processing or Invokable methods?

For senior individuals with years of experiences this may be a reasonable expectation. But for junior individuals, or for those who interests are less or more visual, would we be better served by starting to separate expectations and roles.

Should we move more towards a Front/Back end role seperation? Front end developers aim to master modern web technologies and complex JavaScript based components, consuming services provided by the platform or by Back end developers producing services built in Apex on the platform?

Could someone be a Salesforce developer, be fully engaged, but only have a light understanding of Apex?

I’d be interested in your thoughts.