You need to invest in developers
App Dev Manager Reed Robison spotlights the importance of strategic developer training and why it’s too important to ignore.
Satya has a way of getting right to the point– “I fundamentally believe that if you are not learning new things, you stop doing great and useful things.”
As an Application Development Manager here at Microsoft, my primary objective is helping customers get the most out of our technology. We plan together, review projects and issues, and I do everything I can to help bridge the gap between technology and achieving business goals. Most of this work falls into two categories –fixing problems and strategic guidance. Both of these needs are highly influenced by how well developers understand the underlying technology choices. What may be surprising is that the challenges encountered typically have little to do with the capability or quality of individuals. It’s usually because they have been tasked to use technology before they have a good foundation in it. That often results in gaining experience on-the-fly or what I like to call “J-Fig” (just figure it out) development.
In most corporate environments, developers are heads down, working on existing apps or trying to piece together the next solution. Everyone is time and resource constrained. Very few organizations allocate any budget or time for ongoing training. That’s crazy, considering that the pace of technical change is faster than ever and that skills necessary to stay competitive often fall on the individual rather than considered a team investment. To be clear – developers learn on their own. It’s sad because both developers and management have become pretty used to this and the challenges that often result are counterproductive in every way imaginable.
This expectation persists because developers are highly resourceful problem solvers. They love to learn. Many don’t like asking for help for fear it will be perceived as a lack of skill. Given a new task, most will happily dive in and dabble until they figure out what they need to know to make it work. The technical community is rich with SDKs, examples, repos, blogs, and forums. In fact, our culture kind of has the expectation that this is how development is done – Just figure it out!
Ask any developer on your team about the training they had for the core technologies they use. After they stop laughing, they will probably tell you something about a blog they follow or a local community group they are part of. It’s funny, because it’s sad.
If you are a developer, this probably hits close to home. If you manage developers, I hope you keep reading.
The productivity cost isn’t obvious
I’ve actually had project managers dismiss training for their teams, concerned that developers would take those new skills and leave the company– “What if I pay for training and they leave?” To that, I ask the question—“What happens if you don’t and they stay?”
There are new technologies coming at us all the time. Not all are going to fundamentally disrupt or change our business, but some absolutely will and why it’s really important to entertain the possible. I see so many companies moving applications to the cloud but never considering the benefits of re-factoring those solutions to take advantage of PaaS features that can simplify and save money in massive ways. The common reason is that they don’t have the resources or expertise to throw at it. If you are still managing your own data centers or deploying the bulk of apps into VMs, you’re very likely wasting money. Maybe, a lot of money.
If we’re being completely honest, developers are not the easiest bunch to get into a workshop together. Sitting through remedial concepts is not a great use of time. Most devs prefer to focus on the specific gaps in their own knowledge and are not interested in fundamentals once they get past a basic understanding of the content. Because technology moves so fast, training has to be targeted – at the right time and with the right information to make it valuable. This makes it really tough to go back and establish a good foundation after a team has already started using a technology.
Pulling a team off their backlog for training is an investment. It’s hard to put work on hold, but if you add up the hidden delays that developers spend quietly learning and overcoming obstacles on their own, those delays add up. It’s a mistake to see a room of developers working on individual problems as productivity, but a day set aside for training — where the entire team is benefiting from shared knowledge as an expense.
Developers are in high demand and recruiters are soliciting yours on a regular basis with shiny, new opportunities. In this industry, a common practice to quickly advance a career is to move regularly. As much as a developer may like their work environment, if there’s no chance to grow and little opportunity to build new skills, new jobs begin to look very attractive. Investing in your people not only helps build essential, competitive skills but it can also reduce employee churn that will disrupt projects. Show me any highly effective dev team and I’ll show you passionate learners that share knowledge and try new things. These things go hand in hand.
How do you build great dev teams?
You need to invest in your developers. Whether it’s partnering with Microsoft or changing the culture of your team to promote shared learning, this is something you can’t afford to ignore.
One of the key benefits of having a Developer Support relationship with Microsoft is access to training and subject matter experts. Not only can you access product centric training, but we offer a broad catalog of developer focused workshops that are constantly expanding to cover emerging technologies. As an example, my customers have accelerated projects through workshops like “Modern Authentication and Authorization”, “Developing Cross-Platform Web Apps with ASP.NET Core”, “Angular”, “Developing Applications with Microservices and Containers”, and more. Foundational training has fast-tracked strategic DevOps and Bot Framework projects and demystified technologies like Service Fabric. Our team is constantly revising courseware as the technologies change to provide a solid foundation and working examples for developers to jump-start their projects.
If you are embarking on a new project and considering new product versions or new development technologies, making sure your team has a good foundation might be the best investment you make to avoid costly mistakes and late breaking architectural changes. It’s important to position training as your team is positioned to take on new workloads, not after they get deep into them.
Sometimes a multi-day workshop is overkill for developers and they just need access to a deep, subject matter expert for a few hours to understand details needed to make progress. This is another great benefit of a managed support relationship with Microsoft.
If you have a Premier or Unified Support contract, working with your Technical Account Manager (TAM) or Application Development Manager (ADM) is a great way to ensure your developers are constantly improving their skill sets, adding value, and in a position to achieve a competitive edge. We offer a variety of learning options in the form of dedicated workshops (remote and on-site), open-enrollment workshops, on-demand training, and advisory consulting.
Changing the Culture of Learning
On a positive note, many companies recognize the value of ongoing learning in their organizations. Establishing your own internal communities to promote learning and knowledge sharing can be an effective way to change a culture of J-Fig development.
One approach is to setup a “Community of Practice” or “Center of Excellence” to promote the use of and understanding of emerging technologies. A common way to do this is to designate leads within your team to invest in learning, then setup a regular cadence to share this knowledge with others who want to grow. Not only is this helpful to establish a baseline of knowledge across teams, but it provides a way for passionate learners to explore technologies they might not have a chance to use in their daily work and consider ways it could transform existing problems or solutions. One of the most valuable benefits of these types of internal communities is that it promotes an open and collaborative dialog with team members with the goal of shared learning. When developers can explore and discuss technology in a setting where immediate projects are not threatened by change, there are no boundaries to limit the way they can think about solutions. That can promote some surprising “out of box” thinking for your next generation of solutions.
Events & Conferences
There are a lot of great developer events and conferences out there that can both inspire and educate. Building on my previous assertions, it should come as no surprise that many developers end up attending these through personal funding. I guess that’s a testament to how much developers love to learn and understand how important it is to stay relevant in a rapidly changing industry. If you manage a team of developers, remember – ongoing education is critical and something you are going to need to invest in to retain talent and build an effective team. You might not be able to send everyone, but try to send a few with the expectation that they will come back and share what they learned. Consider rotating the opportunity to attend these events or make it a reward based on team contribution. Remember, developer events aren’t just entertainment – they are essential experiences for staying sharp and competitive.
A lot of the posts on our blog are technology centric – showcasing something new, demonstrating the value of a feature, or sharing insights that might save you some time. In practice though, our posts are almost always inspired by common experiences working with our customers. I’m constantly impressed by the incredible talent of the developers I get to work with in this job and how resourceful they are at solving problems. I’m also consistently surprised by how difficult it is to help developers get the training investment they need (and deserve) to meet expectations in an industry that is changing faster than ever. Smart people are an asset, but tactical learning – that ability to quickly absorb what matters and apply it effectively, may be the most important factor that determines how well a team performs. Ensuring your developers have the support behind them to learn what they need, when they need it is more important than ever.
If you feel like “just figure it out” development is good enough, remember – all your competitors are doing that to. If you want to raise the bar for your products, start by investing in your developers.