Happy new Year
First of all: a happy new year to all of you!
2015 is over and we have to get used writing 2016. Isn’t that crazy? So in my first blog post in 2016, I like to give a brief review of the last year regarding my work around software development, the community and publishing technical content. At the end of this post, I like to state my opinion and give some feedback about working with Microsoft technologies.
From time to time I write blog posts about technical topics I am interested in. Regarding my blog, the year 2015 was a success for me with about 22,000 views. It was fun to see the number of views increasing and it is a great pleasure for me that you paid so much interest in my technical content. So I am very thankful to all of you – my readers! The WordPress.com stats helper monkeys prepared a 2015 annual report for my blog and they created a nice comparison:
The concert hall at the Sydney Opera House holds 2,700 people. This blog was viewed about 22,000 times in 2015. If it were a concert at Sydney Opera House, it would take about 8 sold-out performances for that many people to see it.
I like to show the full report to you as well. Click here to visit the report.
I also wrote some articles for German technical print magazines, mostly the Windows Developer Magazine. There were articles about SharpGL, the Microsoft App Studio and some Microsoft events like the Technical Summit and the Build on Tour. You can find a list of the articles here.
There are also many articles published online. You can find a list of my articles at Windows Developer Online (now it is called Entwickler.de) here. My articles published at Heise Online can be found here.
So I am very thankful to the publishers Software & Support (especially to Mirko Shrempp) and to Heise Online (especially to Alexander Neumann) who made that possible.
Traveling around German .NET Communities
Besides writing technical content, I engaged myself in the Germany technical communities resp. the German .NET User Groups. At the very beginning of 2015, I was looking for a topic I can talk about. Microsoft recently opened the C# and VB.NET compilers in the Roslyn project. Since I am very interested in compiler theory and implementations, it was a good starting point for me. So I dived into the Microsoft .NET Compiler Platform and prepared a talk about it. I called it #SpeakRoslyn.
This talk includes many aspects of compiler theory like formal grammars, state machines, parser, abstract syntax trees, symbol tables, code generators, optimizations and so on. Based on the theory, I tried to explain how the C# and VB.NET compilers are working and which capabilities (APIs and object models) are added by the Roslyn project to each phase of the compiler pipeline.
With this talk in my hands (you can view the slides here), I started a tour through the .NET User Groups here in Germany. Month by month I visited a user group and told them, what I’ve learned. It was a fantastic time! I met a lot of developers and it was mind-blowing to see all the active and vibrating communities in Germany which are dealing with the Microsoft .NET development platform. And at the end, I gave a workshop at the Developer Open Space conference. Here are some impressions from my tour:
I like to thank you to the organizers of the several groups:
- Oliver Guhr & Martin Hey (DNUG Dresden)
- Wernfried Schwenkner & Matthias Fischer (DNUG Berlin-Brandenburg)
- Alexander Groß, Marcel Hoyer & Torsten Weber (DNUG Leipzig)
- Sven Sönnichsen (DNUG Hamburg)
- Alexander-G. Skrypzinski (DNUG Göttingen)
- Peter Schubert & Johannes Hoppe (DNUG Rhein-Neckar)
- Torsten Weber (Developer Open Space)
Powering the .NET User Group Berlin-Brandenburg
Another topic where I spend a lot of time is the .NET User Group Berlin-Brandenburg. The first time when I spend attention on this group was at the end of 2014. Over time, I got more and more involved in the organization of this group. When I saw the website the first time, I thought, that this cannot be our public face. The face of the .NET User Group of the biggest city in Germany. The site appeared very outdated. So in 2015, we start redesigning the website and engaged in social media as well.
Meanwhile in 2015, we lost the host for our user group events. We were homeless. But it should only be a problem for a short time. So one day I met Hannes Preishuber, owner of the ppedv AG. After some talks with Hannes, we went into a partnership with the ppedv. Today the company is our official training partner and they provide a fantastic location for our events – directly in the mid of Berlin.
So, a lot of hard work has been done. But finally, at the end of 2015, we started with a brand new location for our events, launched our new website and start a Twitter channel as well. Now the .NET User Group Berlin-Brandenburg has a new lifted face and we put a lot of energy into the organization to make it to one of the most exciting user groups in Germany.
Today I am very proud to be a member of the organizational team together with Wernfried Schwenkner and Matthias Fischer. Many thanks to you guys, too!
Special thanks go to the company I am working for since about 8 years – the Fairmas GmbH. They give me the time and freedom to engage myself in the community, to travel around and to write my technical articles. Don’t get me wrong, they did not pay me for that. They gave me the time I needed without reducing my vacation entitlement. 🙂
We at Fairmas know how hard it can be to be a growing and learning software company. And as the CTO of this company, I know how difficult it can be to establish professional development processes, build up teams, engage and motivate them to be efficient, to select the right technologies and to follow best practices (what means to know and be aware of such). So we at Fairmas are very interested in sharing our learned lessons, knowledge and experiences in professional software development with the community.
My Feedback to Microsoft
I spent a lot of time giving feedback to Microsoft when trying and testing new versions, betas and release candidates of tools and libraries from the .NET development platform. I was also active in the MSDN as a translation moderator and during my lectures I talked a lot to other developers. So at the end, I collected some feedback points. I like to list some of these feedback points here:
DNX and its Complexity
The problem: Open Sourcing .NET Core, the .NET Compiler Platform, ASP.NET and so on is a great step. Nobody can deny. So now we have implementations of the Core Common Language Runtime (CoreCLR) for the different platforms. .NET went platform-independent and now we can use .NET on Linux, Mac and Windows systems. In addition, there is the old big brother of the CoreCLR. And last but not least, the runtimes exists for several architectures, e.g. x86 and x64. Microsoft called all these environments DNX (.NET Execution Environment). This leads to the need to manage different versions of the CLR on one machine. And when it comes to application execution, we have to decide which one we want to use. Several command line tools will help us here (e.g. the DNVM – .NET Version Manager). That is a lot of technical stuff a developer must know when using the technologies. Life was not that independent, but it was easier before.
IMHO: In my opinion, handling with the different DNXes must be easier. The developer needs more guidance, assistance and helps when developing for one or more platforms and when it comes to deployment and GoLive (especially when systems are deployed on several platforms). Developers have to focus on business requirements and their implementations. And in everyday life, that is mostly enough for a normal developer. So using and selecting the appropriate runtime version must be made more easy. As well as troubleshooting regarding the compatibility of libraries to the runtimes. Many developers I talked to are overwhelmed by the required technical know-how that is needed to run an application on different platforms. So they won’t try or use it.
Complexity of Open Source Projects
The problem: A lot of projects are open sourced by Microsoft. That is great as mentioned above due to all reasons our industry is doing open source. But the problem is, that Microsoft’s image has not been changed in the eyes of many people. Either developer do not know how many important projects are open sourced seriously by Microsoft, or they think that this is again a trick of Microsoft to eyewash people. Even developers working with the Microsoft development platform day-by-day don’t know what’s going on. And maybe that is comprehensible since they are busy doing their jobs and do not have the time to dive deep into the new world. Reading a professional magazine once a month is not enough.
IMHO: Microsoft and the community have to become more vibrant. There should be more investments in developer engagement. Maybe with specific talks and tours from Microsoft evangelists traveling around the .NET user groups. But not only .NET user groups. Maybe other user groups and events can be targeted as well. They could talk about all the open source topics Microsoft is currently dealing with. They could show and explain the development processes at Microsoft Open Source projects. Showing the real world at Microsoft. Maybe Microsoft can push open source events or create own events where open source projects are the core topic. Mixed up with projects not coming from Microsoft. Just to be more open to a widespread community rather than this software vendor from Redmond that does commercial events. E.g. the Build on Tour and Technical Summit are perceived as this.
MSDN & Documentation of Open Source Projects
The problem: The MSDN is not the best place to find help. More often, people are brought to Stackoverflow or other resources by well-known search engines. All the new open source projects like Roslyn, .NET Core, ASP.NET Core, Entity Framework, Cecil and Orleans, just to mention some, bring their own documentation in their corresponding repositories on GitHub. And here the problem comes in: there is a lot of good documentation that is highly distributed over the repos. Some documentation overlaps with other whereas some other documentation is not complete. At the end, all the documentation is not connected. At least, not all documentation is listed in the MSDN. Maybe there is a link to the repüo, but not more. So searching the MSDN will not ever give the best results for the topic one is looking for. Finally, developers get misled, do not find the documentation they are looking for or will never know that there is really good documentation.
IMHO: Documentation should be merged, managed and aggregated at a central point, e.g. the MSDN. Developers should find all topics in the MSDN and if not, they should know why. Maybe the particular documentation of an open source product is published in the MSDN once the project achieved some RTM state. But developers are always left in the dark regarding this. So, if the documentation is aggregated in the MSDN, links can lead the visitor to the appropriate documentation on the GitHub repository. But I think, the tables of contents, indices and so on should be available in the MSDN.
The problem: Microsoft embraces feedback. That’s cool. And they hear to feedback as far as I review my experiences from the last year. So, whether you give feedback on products like Office and Visual Studio, or you are a Windows Insider, or you give feedback on open source projects directly to the teams, or you give feedback to the MSDN (especially translations), there will be somebody who contacts you, asks for more information or give some answers. Often it does not take longer than a couple of days until a Microsoft employee responses. Further, Microsoft changed internal processes. As they stated, they are intensively evaluating external developer and user feedback, learn from it via sophisticated and machine learning algorithms to bring it into the products at the end. As far as this is true, that is great. 🙂 The problem I see here is the huge amount of channels one can give feedback. There is the Windows 10 Feedback App, the Microsoft Connect program where you can report bugs. Then there are several user voice programs where you can suggest new features, e.g. for Visual Studio and Team Foundation Server, the Windows App Studio or Office. As a developer, you can give feedback directly within Visual Studio via the Report-a-Problem and Provide-a-Suggestion functions.
IMHO: There is a lot of other feedback that does not fit into these categories. It is not always a bug or feature suggestion. E.g. performance in the MSDN translation wiki. Where to report this? Then, reporting a bug in Visual Studio via the built-in feature is cool. Why posting the same issue via the Connect program? Do both feedback channels belong together somehow? If not, they should. I think the feedback app for Windows Insiders is a cool thing. Maybe it can be extended so that feedback to user voices or the connect program can be given within the feedback app.
Be a Microsoft Partner
The problem: Fairmas, the company I am working for, is a Microsoft partner. And that is cool. We benefit from all the software you can access once you are a partner. Managing employees and their access/licenses for software products from Microsoft via assignments to MSDN subscriptions is very helpful. But it’s also a pain. The problem is the Microsoft Partner Network websites. We are always struggling with new employees and their assignments to our subscriptions. It is hard to enable an employee to work with Visual Studio. He needs a Microsoft account, must be linked to our partner program, must be assigned to a subscription and then, maybe, he can login in Visual Studio with his Microsoft account. But until he can use Visual Studio, it takes days until a new user/employee passes all the steps in the partner network.
IMHO: The process is too complex. It should be easier. It must be easier to add new developers to our subscriptions. And why do every developer need an own Microsoft account? Can we handle it easier somehow? Would be very helpful. Every new developer/team member costs a lot of time for our admins.
There is a lot more feedback, but this should be enough here. I try to give all my other feedback via the appropriate channels! 🙂
So what’s next? The next big thing for me (and the first in 2016) is the BASTA! conference. I am happy to be at the BASTA! the first time as a speaker. I am there with #SpeakRoslyn – my talk about the .NET Compiler Platform. Following the BASTA!, I will be at the Spartakiade in Berlin. That is a conference where everything is about challenging workshops. Later, in April, there is the .NET Summit. I will take part there with my talk about Roslyn, too.
Further, I will continue to write blog posts and technical articles for online and print publishing as well. Will there also be talks in the user groups again? I really don’t know yet, although I hope so. So follow me at Twitter or here on my blog to stay in touch. I will let you know and I hope to see you somewhere!