How Can Software Developers Stay Up To Date?

John Eccles, 17 July 2020

image

Magnetism has long been committed to excellence through mastery. It’s a core value. Even in our specialisation (systems based on D365 and the Power Platform) the technology is advancing faster than ever before so ongoing professional development is crucial to our success.

We make time for our entire team to stay on top of new technology as it relates to our current and future clients. Every staff member is allocated 10% of their working hours for professional development and is expected to devote a similar amount of time out of work hours. It’s a significant investment and we regularly evaluate the return on that investment in terms of how well our team know both the core tech and the latest/emerging tech.

It’s getting more difficult

Professional development of our team is becoming more and more challenging – and, at the same time, more and more essential. In an article on overcoming skills obsolescence in 2015, Bénédicte de Raphélis Soissan said this:

“In 1990, it took a working life to see one’s skills become obsolete. Nowadays, 50% of your current skills will become obsolete within two years.”

In my experience, the half-life for software development knowledge in 2020 is more like 1 year.

For us, there are more significant updates and extensions of the core D365 system and the Power platform and there are developments in Azure Machine Learning and Power BI and many others that our team must stay on top of.

What we’ve tried

image

We tried focussing on relevant exams and encouraging the team to write blogs about what they learned to reinforce their learning and to help others navigate to the answers they need. As a result, our team have done a lot of on-line courses and accumulated a LOT of exam certifications. We used to hang them on the wall – but rapidly ran out of space.

We’ve tried dividing the staff into teams and assigning them to internal projects – usually designed to try out some new functionality and push the limits of what it can do. We’ve included a fun competitive element designed to maximise cross-learning – each team presents their project to the whole staff team and we vote for the best. This has worked well in that we learn more practical skills. We learn how to actually use the technology and we discover how easy or difficult it is.

We’ve also sought to address some of the non-technical skills. Some of our team were not confident in interacting with clients, resorting to email when they should pick up the phone for example. So we began a Toastmasters group which the team has been attending for the last 12 months. This has greatly improved our communication skills and hence our ability to understand our clients and get on the same page when discussing an issue or a solution.

What we’re doing now

We’re trying to keep the best of all the approaches:

The primary focus is on internal projects because we want to grow our practical skills and understanding of the technologies. We’re trying to match each person to an internal project for which they express interest so we maintain maximum motivation. We’re including projects that result in a presentation of a new technology suitable for presentation to clients who may benefit. In general, these internal projects take up most of the work-hours component of the professional development time.

Outside of work hours, we expect our team to study for and pass relevant exams – some of which will relate to their internal projects.

For now, we’re continuing the Toastmasters, but we’re also looking into other relevant non-technical training.

The future

We fully expect that the problem of keeping up to date will only get more difficult. We think we can optimise use of the existing professional development time, but we may have to allocate more than 10% at some stage.

We’re still trying to learn more about effective professional development of software developers. We’ll need to be a whole lot better at it by 2025.