How Can Microsoft Further Improve Backend Developer's Productivity?

Photo by Mimi Thian on Unsplash

How Can Microsoft Further Improve Backend Developer's Productivity?

There are over 19 million API developers in the world today! and a lot of the work that these APIs do supports Web 2.0 applications. Microsoft owns a suite of developer tools and platforms like SSMS (SQL Server Management Studio), Visual Studio, Github, Azure, and leverages resources like ChatGPT which provides incredible support to developers in building software solutions.

Microsoft is home to a lot of programming languages and frameworks which developers use in writing software programs and a lot of improvements are made yearly to these developer frameworks and languages to make them more efficient and competitive because other companies also have programming languages and frameworks that developers can use to create software for a different ecosystem.

In the battle for the superiority of ecosystems (think Windows, IOS, Android, Linux, etc), these companies must make it easier for developers to make software. The ease of developing software encourages developers to make more solutions which in turn makes the ecosystem more attractive to users who buy devices. Companies like Blackberry and Nokia learned the hard way that customers won't buy your devices if the apps aren't competitive.

relatable explanation.jfif

A Relatable Explanation

When a company say Apple, Microsoft, or Google releases a device, they ensure that developers can create software for that device because customers enjoy using an operating system that has lots of apps to choose from. Companies like Apple, Microsoft, and Google have programming languages that developers can use to build solutions for their individual platforms and the easier these programming languages are to use, the better for the company that owns the language.

Improving the ease of developing software doesn't just help software developers, it maintains a steady pipeline of development talent as a programming language that's easy to learn will attract more learners who will eventually transition into software developers as the older software developers retire. A steady supply of developers writing code for a specific ecosystem ensures that the ecosystem's products don't plateau.

An aerial picture of five laptops with people sitting in front of three of the laptops

Microsoft's MVC As a Great Case Study

Microsoft's MVC is a notable example of how much Microsoft can truly accomplish when they're insanely focused on ease of development and developer productivity; Developing solutions using ASP.Net Framework's MVC on Visual Studio is very delightful as Microsoft saved developers millions of hours which would have been spent writing boilerplate code.

A lot of scaffolding by Microsoft's Visual Studio made development using MVC lightning-fast, one could easily create views and controllers for models (even entity framework connections that link controllers to the database) all at the click of a mouse, the MVC is an ergonomic solution that is robust and handles itself well. Sadly, Microsoft has moved away from ASP.Net Framework in favour of .Net Core which is lighter and open-source among other things.

A picture of a person pointing at a computer screen

Backend Developer Productivity Suggestions

It would be a sign of ignorance to not acknowledge how much Microsoft has done regarding making high-quality programming languages, frameworks, and tools. C# can hold her own against any programming language made by mankind and that's no small feat! productivity, however, cannot only be measured by the efficiency of the language. Below are some of the ways I believe Microsoft development products can gain more market share.

Microsoft-Managed Tutorial Videos

Virtually all cars and appliances come with a manual from the manufacturer. Sure, people independently create tutorials and reviews on the product, however, by creating manuals, the manufacturer provides users with an identifiable source of truth regarding the product.

Microsoft documentation platform (while robust) is open-source and doesn't provide video or written documentation on how to use Microsoft's popular development tools like Visual Studio, Visual Studio Code, SQL Server Management Studio (SSMS). Many developers don't even know that they can create boilerplate code that they can leverage within Visual Studio, or that they can set conditional breakpoints.

Microsoft must become hands-on concerning onboarding users on their tools, yes, some people will eventually figure it out, however, one of the most efficient ways to prevent C# from becoming a dinosaur programming language like VB is by ensuring that newbies find it easy to leverage the tools that enable them to program using C#.

Visual Studio -Led Scaffolding

Software engineers who haven't had the pleasure of using MVC do not know how much catching up Web APIs has to do with respect to the robustness of MVC. With MVC, even a newbie developer can find themselves creating demo applications in half the time they'd need to do so on Web APIs.

This article isn't aimed at discrediting the wonderful work that was done on Web APIs, I acknowledge that APIs are the future, however, a lot can be done to ensure that Web APIs are easier to make. With MVC, newbies could even learn how to code from the scaffolding which generated code that was instructive and needed little modification to suit the needs of the developer.

Examples of areas where Web API scaffolding can be very instrumental are autogenerating code for logging, JWT authentication, entity-led APIs, and even architectural pattern scaffoldings. Developers shouldn't have to repeat mundane tasks in every solution they build, the above are staples of the average web development project and could save time for developers.

Creation of staple classes like User class and lorem-ipsum type scaffold to help with the creation of multiple dummy properties of an object can also help with web development. In the area of architecture, a lot of boilerplate code can help create folder structures and classes for onion architecture, CQRS, event-driven development, microservices, and others that can come right out of the box.

The Visual Studio dialog above can be further developed to let developers select scaffolded components that should be created with the project as well as decide on the architecture for the project, all of which would save hours of repetitive programming while serving as an avenue for budding developers to learn architectures, and boilerplate code that they may otherwise never have access to play around with.

SSMS-Led Boilerplate Queries

SSMS is long overdue for more boilerplate code that addresses more complex queries than selecting the first 1,000 rows of data. Developers who write SQL infrequently shouldn't have to look up the queries that would help them address some rather trivial challenges.

I believe SSMS can be improved upon to make it easier for developers to generate SQL queries (within the application) that solve their problems, and I frankly think that this is a low-hanging fruit now that Microsoft can leverage AI like ChatGPT to fast-track the process.

PowerShell-Led Boilerplate Prompts

Just like SSMS, I believe platforms that require text-only inputs should be easier to upgrade to the point where boilerplate code, queries, and prompts are easier to generate. Developers should be able to interact with these tools in a way that the tool can help the developer generate the right query or prompt that'll help the developer achieve the set task at hand.

Terminal, and Package Manager Console (PMS) are also quite like PowerShell in the sense that they could both benefit from these upgrades too.

Picture of a girl walking with balloons

Finally

There is a lot to be done with making Microsoft tools, languages, and frameworks more attractive, and while this article doesn't provide an exhaustive list, it provides enough to spark conversation about how much more can be done. The future success of Microsoft's ecosystem relies heavily on a sustained pipeline of budding software engineers willing to build their careers around leveraging Microsoft's software development products.