Earlier this month I was, was awarded Microsoft MVP for the 17th year and I wanted to take this opportunity to reflect on this. Firstly a note of appreciation to all the Microsoft staff both from the MVP program, the various product teams and of course the Australian sub. Overall an amazing set of people and I always value the opportunities I’ve had along the way to engage with them.
According to the Microsoft website, “Microsoft Most Valuable Professionals, or MVPs, are technology experts who passionately share their knowledge with the community”. For me this points to two key aspects of being an MVP – having good technical knowledge of a particular product and then the ability, and more importantly, the willingness, to share that knowledge with the community.
Over the course of my time as an MVP my engagement with Microsoft and the community has varied considerably. When I was first awarded back in 2004, I had recently created and was running the Perth .NET user group (originally called the Perth .NET Community of Practice). Back then Microsoft did a quarterly roadshow to each state, showcasing and training eager developers. This helped form a network of .NET user groups across Australia, of which only a few still exist today.
When I moved to Sydney I stopped being involved in running a user group but I continued to present and help with various in-person events. User groups were an important mechanism for developers to network and to listen to how other developers were adopting or applying different technologies.
I would say that the heyday for user groups has passed. I used to put it down to everyone being so busy (a typical Sydney attitude) but it dawned on me one day that we’re no more busy than we ever were. User groups were popular because developers would geek out in their personal time to learn the latest and greatest thing. These days I feel that everyone is more conscious of how they spend their very limited personal hours in the day – learning things at a user group is way more like work than it used to be, so why should developers spend their personal hours learning on something they could to at work. These days there are so many learning resources online that it’s easy enough to learn things relatively unassisted, without having to wait for the next user group session.
So, do I think user groups are dead? No, I definitely think there is value to be had in having in-person events. On a similar topic, do I think there is a need for in-person conferences? Again, the answer is that there is value in hosting in-person conferences but it has very little to do with the technical content. What I would challenge, and is something that the COVID-19 situation has accelerated, is that real world events need a digital twin – content, sessions, training and other core conference activities should be able to be done online with the same, or perhaps better, experience online than being at the event. In exchange the real world events have to focus on the human aspect of conferences – more networking, more feedback sessions, more hacking, innovating and pushing the boundaries of what’s possible when you bring 10, 50, 100, 1000 people together. We’re really only at the beginning of this evolution of what the future of user groups will be.
Back when I was first awarded I was working with the .NET Compact Framework and I recall hearing roadmap plans for how the teams were planning to converge with the .NET Framework. To this day, we’re still going through iteration after iteration of convergence; the latest being the .NET 5/6 roadmap. I’ve come to accept that this is a journey that may never be concluded.
Over the course of the last 15 years I’ve had the opportunity to see technologies come and go. I spent a number of years helping to champion firstly Windows Phone and subsequently building for Windows. It was truly awesome to help deliver training to hundreds of developers wanting to build apps for the first time.
These days app development has taken a back seat to the latest trend of drag and drop app builders such as Power Apps, and of course the ever growing world of Azure. With the demise of Windows Phone and the numerous failed attempts at building a market for windows apps, it’s been quite disheartening to see .NET developers looking outside the Microsoft ecosystem for solutions. This has been exacerbated by a massive change in the way Microsoft engages with developers (both locally and from corp) and the almost continual churn of staff and roadmaps; making it near impossible to predict the path forward.
With this said, it truly is an exciting time for app developers with a number of .NET based technologies all showing promise in the cross-platform landscape: DotNetMaui (aka Xamarin.Forms), Uno (UWP+WinUI), Blazor (not really cross platform but with the mobile bindings it’ll interest some) and AvaloniaUI.
The future of these cross-platform technologies relied on providing a platform that will help developers to deliver more applications, across more platforms, as efficiently as possible. Each technology approaches the challenges from a different angle and as such will appeal to different teams and projects. It’s an interesting time to be a developer and watch the space evolve.
As we emerge back out into a post-COVID world (and I know we’re not there yet) what does community look like? How do we leverage or build new technology to allow communities to grow and flourish both online but also in the real world? How can we build global communities that feel the same as the local coffee club? How do we identified leaders in different technologies and harness their skills and knowledge to help each of these global communities.
For user groups and in-person events, COVID-19 was the reset that needed to happen. Let’s work together to build a more sustainable model that both delivers technical knowledge but also helps establish, build and grow global communities.