Summary of Microsoft Ignite Spring 2021

Microsoft Ignite Spring 2021 took place last week from the 2nd to the 4th of March. As usual, many announcements happened that include new products and updates. So, I summarized them for you in this blog post.

Microsoft Mesh

Microsoft Mesh is the next thing in the Mixed Reality World. A new platform to deliver collaborative mixed reality experiences. It enables users to work together, connect  and collaborate regardless of the physical location. In other words, Holograms may become a reality sooner than what we (maybe just me) expected.  I will let you enjoy this video (duration: 2min27s), because words cannot give it enough credits.

Source: Microsoft YouTube Channel

You can learn more by reading the technical overview Microsoft Mesh.

Microsoft Viva

Microsoft Viva is an employee experience platform. It is the latest product of the Microsoft 365 Enterprise family. It was announced month ago, but already new announcements has been made during Ignite mainly availability and pricing. Microsoft Viva has 4 modules:

Microsoft  Viva Connections

  • Viva Connections focus on connecting employees across the organization
  • License and pricing: If you have M365 and SharePoint license, you will get it for free. In other words, free to Microsoft 365 Enterprise

Microsoft Viva Insights

  • The needed module for the Home Office Era where employers need some Workplace Analytics and take care of their employees work habits.
  • License and pricing: part of workplace and analytics

Microsoft Viva Learning

  • A central hub for learning and up-skilling courses
  • License and pricing: not announced yet

Microsoft Viva Topics

  • The smart module; it transforms content to knowledge using AI

You can get more information in the following links

How IT is transforming the employee experience at Microsoft – Microsoft 365 Blog

Introducing Microsoft Viva, the Employee Experience Platform in Microsoft Teams – Microsoft Tech Community

Microsoft Viva: Empowering every employee for the new digital age – Microsoft 365 Blog

— — — —

Power Platform

Power Automate Desktop

It is an RPA tool that has been available for a while on Power Automate. Now it comes with Windows 10 without extra cost

Integration with Teams

The Power Apps, Power Automate, and Power Virtual Agents studios are available on Teams. You can design on Teams without the need to open browser anymore.

Administration

Governance Controls
  • Endpoint filtering: you can restrict the access to connectors. It provides a granular access control.  
  • Tenant Isolation: it allows you to choose which tenants you can allow to communicate with your tenant (inbound isolation).
  • Tenant Wide Analytics: reporting capabilities across the tenant.
Data Loss Prevention
  • Connector Action Controls: you can filter connector actions. You can choose which actions can be used by your company from a given connector

Microsoft Information Protection Support (Later this year)

You will be able to label your data with sensitivities level. It will be synchronized with M365, and Azure.

Azure Networking Connectivity (Later this year)

It allows the creation of private endpoints to connect to Azure Virtual Network. That will leverage the use of Express Route, gateways and other networking features that you have on your Azure tenant. You will be able manage networking security from Azure without any compromise.

Customer Managed Keys (Later this year)

First class user interface experience to use your keys from Azure Vault Keys inside Power Platform apps.

Microsoft Power Fx

Open-source language for low-code programming. Basically, the same syntax that was used before in Power Apps (canvas apps). It is possible to write it in YAML files from now on. More new features will be delivered on June 2021 and by the end of the year.

For more details check Introducing Microsoft Power Fx: the low-code programming language for everyone | Microsoft Power Apps

Moreover, there is something for integration with Power BI too. Direct Query support for Dataverse in Power BI is generally available. For more details check Microsoft Dataverse support for Power BI Direct Query reaches general availability | Microsoft Power Apps

— — — —

Microsoft Teams

I have to say it is the star of the Microsoft Ignite 2021. Almost all other products announcements are related to Teams.  In addition to that, Microsoft Teams has tons of new features and enhancements (although not all of them are available yet).

Here is a selected features that I found interesting:

Presenter mode(not available yet)

This feature allows you to share your content and alongside your video stream. It has 3 modes called Standout, Reporter and Side-by-side.

PowerPoint Live

Microsoft Teams made use of the whole screen. Presenter can see the slides, the notes, meeting chat and participants at the same time. Also, attendees can go through slides at their own pace.

Live Reactions in Microsoft Teams meetings (like those of Microsoft Ignite Stream)

Webinars (not available yet)

Organizers can add a custom registration page to the webinars. Attendees will receive an email confirmation after registration.

As for attendees numbers, Microsoft Teams supports up to 1000  attendees in interactive meetings and webinars. For view only, Teams can accommodate 10,000 attendees in general and up to 20,000 attendees until the end of this year. Both features are available this month.

Microsoft Teams Connect (not available yet)

The struggle with collaboration between different organizations is “gone” (not sure, I didn’t try yet). It enables the interaction and collaboration on documents as an external user. Also, you won’t have to disconnect from your tenant and connect to the other one as a guest, the shared channel will appear as a team in your primary tenant.

And more..

The features list goes on and it covers Chat and Collaboration, Security and Compliance, Calling (operator connect), Device, and Management. You can find them in the announcement blog What’s New in Microsoft Teams | Microsoft Ignite 2021 – Microsoft Tech Community

— — — —

Windows Server 2022

Windows Server 2022 is now available in preview.  The new release “includes advanced multi-layer security, hybrid capabilities with Azure, and a flexible platform to modernize applications with containers.”(source: Announcing Windows Server 2022—now in preview – Windows Server Blog (microsoft.com) )

— — — —

Windows 10

Windows Hello Multi-camera support

You can choose which camera to use for authentication with Windows Hello.

Universal Print (generally available)

IT Pros now have one hub to set printers in an enterprise environment. The feature was announced back in July 2020. For more details, check ) Announcing Universal Print: a cloud-based print solution – Microsoft Tech Community

Rest of the announcements are on this link Windows & Devices at Microsoft Ignite 2021: March edition – Microsoft Tech Community

— — — —

Azure

Azure Percept

The newest product in Azure. Azure Percept allows you to use Azure AI technologies on the edge by a combination of hardware and services. The hardware consists of Azure Percept Audio, Azure Percept Vision and a Trusted Platform Module. The platform offers also Azure Percept Studio to enable customers with less technical skills to use the product. You can read more about in the AI blog With Azure Percept, Microsoft adds new ways for customers to bring AI to the edge – The AI Blog.

Azure Migrate

Azure Migrate was released last year as a one-stop hub to ease migration to Azure. The recent update is new unified tools for discovering and assessing databases, .NET apps and VMs. It allows the discovery of SQL Server instances and databases in the VMware environment. In the new feature, it will cover IIS too.

Passwordless (Azure AD)

Microsoft has been working for a while on changing the authentication system by eliminating passwords. Azure AD support for FIDO2 security keys in hybrid environment is now available on public preview. FIDO2 security keys is supported as authentication method for signing into operating system and applications/services. You can find more details on Public preview of Azure AD support for FIDO2 security keys in hybrid environments – Microsoft Tech Community

I recommend watching the session Inside Azure Datacenter Architecture presented by , Microsoft Azure CTO, Mark Russinovich Inside Azure Datacenter Architecture with Mark Russinovich | OD343 – YouTube .

— — — —

Dynamics 365

Finally, Microsoft Dynamics 365 has something to offer too. It is offering a new application called Intelligent Order Management, and it is integrating Microsoft Teams to offer better experience for users of both products. You can read more about those capabilities in the official announcement Announcing new Dynamics 365 capabilities at Microsoft Ignite – Microsoft Dynamics 365 Blog .

Rock your first Job as a Software Developer

Source: Image by Joe Alfaraby from Pixabay

You got your first job and you were happy like never before. Then, you asked yourself: How can I make the most of it? What should I do to grow as software developer? Well, you are in the right place my friend 😊.

You will learn in this blog post what you should do to move forward in your career by building solid technical skills and improve/build the needed soft skills in the IT field generally and software development specifically.

TL;DR

I explain in this post the following steps to rock your first job and move forward:

  • focus on communication
  • programming Fundamentals
  • learn new thing daily
  • avoid reinventing the wheel
  • ask for help
  • give back
  • treat people good
  • get mentorship

You can further read the key point at the end of each paragraph or the whole post 😁.

Communication

Communication and soft skills matter more than your code skills!

When you work on a project, there are many phases that the team goes through. Some of these phases do not require coding, but communication with the customer: for example, the business analysis phase. Also, during the development phase, you will be communicating non-stop with your teammates.

If your team adopts Agile methodology, you are continuously in communication with the customer during the development phase too. The communication with the customer requires understanding their requirements in plain English, so you need to avoid using technical words and explain them in the simplest way possible. Then, you translate the requirements to documentation that will be used for the construction. This may be done by business analysts or even you if your team does not have one. Meanwhile, the communication with your fellow developers is different; it is more technical.

Key point: Communication is needed on daily basis. So, work on this skill to progress faster and do the right job in the first try.

Fundamentals matter the most

Software development fundaments are the base that you need to build new skills on top of it.

It does not matter to learn programming in C++, Java, C# or any other programming language. What matter is knowing data structures, programming fundamentals, algorithms, design patterns, etc.

These fundamentals are included in most Computer Science degrees, but most universities/schools “forget” to explain why you should learn the “old stuff” and not fancy things or the buzz words (microservices, containers, etc..) that you hear in every conference and read in blog posts and twitter.

Key point: Focus on getting the fundamentals to a solid level and you will learn new frameworks and tools easily and fast; and by fast, I mean in matter of weeks you would learn new stuff like docker or GraphQL.

Learn new thing daily

To keep progressing, you should to keep learning. I recommend that you make the following statement part of your daily tasks:

“learn a new technical thing no matter how difficult or easy it is. Anything that you did not know how to do before”. 

This will keep you motivated. If you had a bad day and code did not work, you would be saying: “at least I learned how to <what you learned>. So, it is not bad after all”. Our field is progressing daily. You have to keep up with that.

You will also notice how consistency pays off even with the smallest effort. And if you are a math lover, the following calculation shows how a bit of daily effort does the difference on one year:

Source: pinterest *

Key point: learning new thing in daily basis is an achievement that keeps you motivated, keep you growing, and makes your day 😉.

*Props to my friend Davide Bellone for recommending the mathematical calculation. Meanwhile, I could not find the right person to give him/her credits for the photo and the idea.. To whom it concern, I apologize.

Avoid (Do not) reinventing the wheel

A common mistake that some junior developers do in the early stage. I admit that I made this mistake and I have seen later on other juniors committing it too. At one moment, you feel confident enough to write some code that you could get in NuGet package (equivalent of npm packages in .NET) or an open source framework. For example, if you need to work with GraphQL in .NET project, you should search for a package that already exists and look for the community feedback through the blog posts to find the most recommended package. There is a tiny tiny chance that you will not find a ready-to-use library to solve your task.

Why you should not reinvent the wheel? You are wasting time that you can use to do better things in the project and solve real problem that has no solution yet. Moreover, you cannot reinvent with better quality at this stage, not judging your coding skills, but the existing packages are typically made by big teams or open-sourced where community members contribute to improve it. In addition, you receive (security) updates for the installed packages that are precious later on for the reliability, maintainability and stability of your software.

With that being said, you must always be ambitious to invent the wheel even in this early stage of the career. Reinventing the wheel may be possible too with more experience, not for the sake of reinventing, but to make an improvement and contribution to the community and the field.

Key point: Focus on solving problems with no solutions and get a solid experience to be able to (re)invent the wheel in the near future.

Ask for Help

We create software to solve problems. During the architecture of a solution and the construction phase, we all encounter problems that we did not solve before. Some of them are tricky and take most of your time. That’s where you need help. Luckily the IT community is very helpful. So, don’t be afraid to seek help.

Please bear in mind that you should not ask a question every 2 minutes without searching for a solution by yourself. Also, don’t spend a week searching for a solution without asking for help.

My suggestion is to go through these steps (by order):

  1. Ask your colleagues if they encountered the problem before. If they cannot help, move on to the next step
  2. Ask your local community or in the company’s internal forum in case it has one. A local community is generally composed of your friends and your local network that you created when attending some workshops and after-work sessions
  3. Ask the global community on stackoverflow, Twitter, product forum, etc. Make sure to sanitize the code from private content and keys when publishing it online
  4. If you could not solve it by this time, you should raise a ticket to the vendor (company that owns the product/ technology you are using). This step typically is not free, but your company should be willing to pay for it.

*This is my personal order. The last 2 steps can be swiped depending on how sensitive the project that you are working on. So, don’t take it as a 100% true in all cases.

Key point: Don’t hesitate to ask for help when you struggle. Everyone needs help even senior developers and architects. No question is stupid, keeping a question for yourself (because you are afraid/embarrassed) is STUPID.

Give Back

We all ask for help and go through different forums to solve our problems. Most of us also look for the confirmed answer and its absence upsets us. Now it is your turn to help others and take a moment to answer questions that are on your knowledge scope. Moreover, you should give back to your school and community by providing some workshops and assistance for the students and newbies in the field.

Key point: Contribute whenever it is possible and help others the way you want them to help you.

Treat people good

The key to success and fast growth is your people network. As mentioned before, half of the work or more is communication with people whether they are your colleagues or your clients.

During your journey, you will have moments where you look at the code and say “who is the idiot that wrote this code?” or you may find missing/not well done documentation that gives you hard time to understand an old product that needs some maintenance or upgrade. First, Let me tell you that there is no idiot or stupid person. Second, most of the time it is your code that you do not recognize and that’s thanks to your progress and evolution as software developer. So, don’t judge people too early (or never, you do not the whole story most of the time) because they have also their own journey and they deserve respect.

In addition to that, we live in a small world specially the IT community. Make sure to create your people network by joining open discussions in your company, workshops and conferences locally, regionally and why not globally. You should follow people on the social media platforms and stay connected and active too. The people network that you create will help you move fast in your career by finding new opportunities such as jobs and customers for your future business.

Key point: Create a people network and treat everyone good because solid relations matter the most within the business and in the casual life.

Get mentorship

As a junior developer, you already have demonstrated enough skills to get your first job and that is awesome. Since you are reading this blog post, it means by now you want to evolve and get to the next level. You may have been looking for a while and read other articles for up-skilling and getting to associate developer level. The key player is finding a mentor! A good mentor in your case would be a senior developer from your team or a friend from the community or virtual friend. You notice that I referred to the closest social circles and you may wonder why? The answer is simple: many people think mentorship is just about pair programming and technical advices from a “good experienced coder” rather than a senior developer/team lead or an architect (hint: not every good experienced coder has the soft skills for positions like tech lead or senior architect). So, they end up saying that is not necessary to have a mentor and that is so wrong!!!.

Mentorship is not just about technical advices and helping you solve problems you facing in your current task. It goes far beyond that. A mentor, that knows you well after working hours, can recognize your character, soft skills, your weaknesses. Evidently, he can help you with your career path, because he has seen a lot and can tell what an architect path is like or manager or tech lead, etc. He has been in different positions with different managers and teams, he got the needed experience and wisdom. In addition, a mentor keeps you on track, keeps you focus, and challenges you from time to time. Finally, he motivates you and won’t let you abandon your plans.  

If you could not find a mentor in your circle of friends, try to find one in your local community or online. My virtual friend Davide Bellone mentioned in his latest blog post that “Twitter is a great place to start with, as well as other websites like Reddit and Dev.to.”

Key point: a mentor helps you sharp your technical and soft skills, shape your career and get on the fast track. Get yourself a mentor now!

— — — —

That is it! It is time to shine 😊. All the best with your career.

~*~*~*~*~*~

Credits

I thank all my friends that answered my questions when preparing for this blog post. I crowdsourced the tips from my friends and virtual friends on Twitter and Facebook. In addition, I looked into different articles and validated my ideas against what they listed like the post Transitioning Into Your First Junior Developer Role. Finally, I added my point of view and my personal experience to the final output.

Additional resources