Through the lens: Microsoft PowerUp and the intriguing discussions

Few moons ago, our dinner conversation topic was about CRM. I shared with my wife, a very simple analogy, that I had used to teach my first batch of trainees back in 2011.

(I started my story like how Sheldon explained about the basics of astronomy to Penny 😂 , a typical mansplaining, but it quickly turned into a very interesting conversation instead of just being drama and comedy. 😊)

Before the days of Supermarkets and Chain stores, stationery shops generally used to be ‘Full-Service Shops’ where customers have to ask the staff what they want and the staff will get them for the customer. These shops (a typical mom-and-pop store) don’t have the resources to host or use a full-fledged CRM system, but they still had CRM implemented. Do you know how?

Let’s take Jony.

Jony, a kid, visits a stationery shop in his new neighbourhood to get a pencil. The shopkeeper Mary greets Jony and asks him what he needs. After giving him a pencil, Mary asks if he needs an eraser too. Two days later, Jony comes back to get a ball pen but Mary suggests he get a fountain pen instead. They have a casual chat about where he lives, his parents and where he studies. Mary comes to know that Jony likes to paint and shows him a new collection of quick-drying paints. Jony enquires about the cost and says he will save money to buy it later. A few days later, Jony visits the shop again saying his pen’s nib broke. Mary fixes the pen for free and reminds him of the paint kit. Jony was very happy to get the pen fixed for free and in his happiness buys the new painting kit.

I told my wife – ‘This is CRM’.  Mary enquiring about Jony is ‘Know your customer (Customer Nurturing)’. Selling the Paint Kit is ‘Marketing’. Giving Eraser along with Pencil is ‘Cross Selling’. Suggesting to buy a fountain pen over ball pen is ‘Up selling’. Fixing the pen is ‘Customer Service’ and finally a happy customer resulting in increased ‘Customer Satisfaction’.

If I had told this is to my experienced colleagues, they would have brushed me aside, as this is known story to them 😂.

Thanks to the Microsoft’s PowerUp Program helping people around the globe to learn about low code apps / PowerApps / Power Platform, my wife, a Mathematics teacher with a Master’s in mathematics and with very little technology or IT background, is able to get her hands dirty in Power Platform.

While she is very happy for learning something new and interesting, I’m very happy that my wife thinks, I’m doing a great job in my field 😂. I also admire and feel proud that she is doing this along with being a Mom and a Teacher. A multi-tasker, yes.

As I’m writing this article, with a swollen ankle because I just couldn’t even multi-task walking and talking, I got involved in a new topic about Logic Apps and Power Automate. We discussed and she gave more reasons / samples to better explain the two. 🥹

I don’t have a clear reason, but, That, and all other such discussions gave me peace and happiness.

Hoping for many more intriguing discussions!

Cheers and yes, thanks to Microsoft.

(By the way, check out this page, I asked Bing AI to extend the Jony Story and it gave me an awesome response!)

Shorts: AI and Story-Telling

I started to write a new article about Microsoft’s PowerUp Program and a story about CRM. Was curious to know how AI can help to extend or bring additional punch to the story-line. I enabled the ‘More Creative’ option to generate this.

My Original Story:

Jony, a kid, visits a stationery shop in his new neighbourhood to get a pencil. The shopkeeper Mary greets Jony and asks him what he needs. After giving him a pencil, Mary asks if he needs an eraser too. Two days later, Jony comes back to get a ball pen but Mary suggests he get a fountain pen instead. They have a casual chat about where he lives, his parents and where he studies. Mary comes to know that Jony likes to paint and shows him a new collection of quick-drying paints. Jony enquires about the cost and says he will save money to buy it later. A few days later, Jony visits the shop again saying his pen’s nib broke. Mary fixes the pen for free and reminds him of the paint kit. Jony was very happy to get the pen fixed for free and in his happiness buys the new painting kit.

How Bing AI extended it:

Here is a possible way to extend the story:

Jony was a kid who loved to draw and paint. He had just moved to a new neighbourhood with his parents and was looking for a stationery shop to buy some supplies. He saw a sign that said “Mary’s Stationery” and decided to check it out.

As he entered the shop, he was greeted by a friendly voice. “Hello, welcome to Mary’s Stationery. How can I help you?” It was Mary, the owner of the shop. She had a warm smile and a twinkle in her eyes.

Jony shyly said, “I need a pencil.”

Mary nodded and led him to a shelf where there were different types of pencils. She picked one and handed it to him. “This is a good quality pencil. It’s smooth and sharp. You can use it for drawing or writing.”

Jony thanked her and was about to pay when Mary asked, “Do you need an eraser too?”

Jony thought for a moment and said, “Yes, please.”

Mary smiled and gave him an eraser. “This is a soft eraser. It won’t damage your paper or leave any marks. You can erase your mistakes easily.”

Jony thanked her again and paid for his items. He was impressed by Mary’s knowledge and kindness.

Two days later, Jony came back to the shop to get a ball pen. He wanted to write a letter to his friend who lived in his old neighbourhood.

Mary recognized him and said, “Hello again. What can I do for you today?”

Jony said, “I need a ball pen.”

Mary nodded and took him to another shelf where there were different types of pens. She picked one and handed it to him. “This is a good quality ball pen. It’s smooth and reliable. You can use it for writing or signing.”

Jony thanked her and was about to pay when Mary asked, “Have you ever tried a fountain pen?”

Jony shook his head and said, “No, I haven’t.”

Mary smiled and said, “You should try one. They are more elegant and fun to use. They make your writing look more beautiful and expressive.”

She showed him a fountain pen and explained how it worked. She let him try it on a piece of paper.

Jony was amazed by the fountain pen. He liked how it felt in his hand and how it glided on the paper. He decided to buy it instead of the ball pen.

Mary was happy that he liked it and said, “You have good taste. This is a good quality fountain pen. It’s smooth and durable. You can use it for writing or drawing.”

Jony thanked her and paid for his pen. He was curious about Mary’s interest in stationery.

They had a casual chat about where he lived, his parents and where he studied. Mary came to know that Jony liked to paint and showed him a new collection of quick-drying paints.

“These are amazing paints,” she said. “They are bright and vibrant. They dry fast and don’t smudge or fade. You can use them for painting or coloring.”

Jony was fascinated by the paints. He wanted to try them out.

He enquired about the cost and said he will save money to buy them later.

Mary smiled and said, “No problem. You can come back anytime you want.”

A few days later, Jony visited the shop again saying his pen’s nib broke.

He was sad because he liked his fountain pen very much.

Mary saw him and said, “Don’t worry. I can fix it for you.”

She took his pen and examined it carefully.

She said, “It’s not too bad. It just needs a little adjustment.”

She took out a tool kit and fixed the nib in no time.

She handed the pen back to him and said, “There you go. It’s as good as new.”

Jony was very happy to get his pen fixed for free.

He thanked her profusely and said, “You are so kind and helpful.”

Mary smiled and said, “It’s my pleasure.”

She reminded him of the paint kit and said, “Do you still want to buy it?”

Jony looked at the paint kit and felt a surge of happiness.

He said, “Yes, I do.”

He had saved enough money from his allowance to buy it.

He paid for the paint kit and thanked Mary again.

He was excited to use his new paints.

Mary wished him well and said, “You are very welcome. I hope you enjoy your paints.”

She watched him leave with a smile on her face.

She was glad that she had made a loyal customer with kindness.

The art of story telling by AI.

What-Why-How | Native Mobile Apps using PowerApps

Product: PowerApps, Canvas Apps
Feature: Wrap Projects

If you are looking for a way to create native mobile apps without writing code, you might want to check out the wrap projects of Canvas Apps.

Well, Wrap Wizard can wrap it for you! Don’t need a dedicated human!

There are many blogs and videos explaining step by step, on how to create a simple mobile app for Android or iOS platforms using the Wrap Project feature of PowerApps. However, very few explain the need and use cases. Let’s try to understand the ‘What’ and ‘Why’ parts in this article.

(How to wrap it? Thanks to the wonderful user group leaders of Singapore Power Platform User Group, I got into creating a wrap and also created step-by-step details to create a wrap project for an Android App. You can check the PDF of the presentation, used for the session, at the end of this article.)

What is a wrap and why do we need to wrap?

Wrap projects are a feature of Canvas Apps that allows you to package your app as a native app for iOS or Android. There are several reasons to use the Wrap Project:

  • You can reach a wider audience by making your app available on the App Store or Google Play.
  • You can improve the user experience by making your app look and feel like a native app.
  • You can leverage native device features such as push notifications, offline access, and device sensors.
  • You can simplify the app update process by using the App Store or Google Play mechanisms.

Wrap projects are a powerful feature of Canvas Apps that can help you create native mobile apps without writing code.

How do wrap projects work?

To create a wrap project, you need to have a Canvas App that is ready to publish. You can then go to the Power Apps portal and select the option to create a wrap project. You will need to provide some information about your app, such as the name, description, icon, and splash screen. You will also need to select the target platform (iOS or Android) and the minimum OS version.

Once you create the wrap project, you will get a link to download the native app package. You can then use tools such as Xcode or Android Studio to sign and publish your app to the App Store or Google Play. Alternatively, you can use services such as App Center or HockeyApp to distribute your app to testers or internal users.

Any use cases?

We need to understand here that at this moment, native mobile apps created using wrap projects do not support a B2C scenario. This means, your users need to be part of the organization to gain access to the app.

While this reduces the ability to use the app by the general public, we can still use it for publishing an organization’s features or functionalities to its partners or vendors. We will just need to onboard the partner/vendor / third-party service provider’s users as Guest Users in the azure active directory and give them the required licenses. This is known as Azure AD B2B Collaboration. You can get more details by clicking MS Learn links given at the end of the article.

Few use cases:

  1. A local council can build a simple canvas app to upload before and after images by their third-party service provider or vendor to use part of their routing garbage pickup, which will act as a very basic app for on-field agents
  2. An insurance provider can build a simple canvas app for Lead Generation that can be used by their banking partner to cross-sell products
  3. An IT service provider can build a resource management canvas app for their Vendors or HR consultancies to upload their candidates/resources’ CV, and time entries or even extend it to submit invoices

and any more.

Excited to see how the wrap feature will grow in the future, hopefully catering to B2C as well.

Do comment with your thoughts / Ideas and Questions. Happy wrapping!

Cheers.

Azure AD B2B Collaboration: https://learn.microsoft.com/en-us/azure/active-directory/external-identities/what-is-b2b

Adding guest users: https://learn.microsoft.com/en-us/azure/active-directory/external-identities/b2b-quickstart-add-guest-users-portal

Disclaimer: The content under the title ‘Why do we need to wrap’ was generated by the New Bing! 🙂

Through the lens: Social network – roses and thorns

Social media and the roses

“Did you accept my friend request?” – my new friend asked me in a text message, the day after talking to her for the first time in class. We were more interested in making sure ‘my friends in Orkut’ knew that we are talking than actually talking to each other. Then came the social media sensation in 2006 with the super-power to see everyone’s profile without being caught!.

I remember wasting hours and at times, days creating a profile with all glitters, smileys/icons, and now-nonsense stuff.

In my mind, I was just trying to show off that I’m the most knowledgeable, romantic, and eligible person with all jargons, flashy poetry, and life quotes. I was 21 then and social media gave me a platform to showcase my never-found maturity.

Multiple other social media networks were born in the later years. The tech gurus understood that the age of typing long sentences is long gone. Pictures and Videos are the latest trends. I’m involved in this trend as well, while not a fan of videos / short texts, I tend to post awesome pics (Yes, they are awesome, ask those who liked them expecting me to like their pics! 😉 ).

From being a good student in my initial college years to barely clearing a few exams in final semesters, my wall posts spoke only about the butterflies in my stomach, the joyful rides, and later soup songs (sad songs).

I moved out of my hometown and my posts spoke about missing my college friends, college days & my mom’s food, with the flavor of Hyderabadi Biriyani (Alexa – Add a reminder to write a post on ‘Biriyani love’) being the biggest positive. A post about a new bike but didn’t follow up with the bike being sold.

Someone told me that I’m good at photography, though it was the software of my dad’s Digi-Cam that was doing the trick, I started buying costly camera phones and then finally a mirrorless camera (Yes, not a DSLR – as somehow my heart asked me then – ‘Do you really think you can learn photography just because you have a DSLR?’).

I used one such pro-level camera to post about my new car, with a thoughtful nickname (Yes, like everyone, I took inspiration from various movies/novels). Many of my life achievements (I hope) and great victories in wars and battles made my wall, post, and feed.

Then came the various professional social networks. Again, I started spending days creating a profile of an employee that everyone would love to have in their organization or everyone would love to connect with.

I started posting about the various huge multi-national organizations that I joined and the miracles that I did for each customer. The titular roles I played, the famous locations I stayed, and the great certifications I completed.

As per my Orkut, Facebook, Google+, Yammer, MySpace, Insta, Snapchat, WhatsApp, LinkedIn, and Twitter – My life is glittering like the stars and is a bed of roses.

Life, social media, and the missing thorns.

But all these posts, status messages, and articles missed many life-altering incidents and depressing decisions. Yes, there were some glaring misses in these posts. For example, My relative once asked about a missing post on the horrible accident I/my car met with, a few months after the new car post. I didn’t answer then. But 9 years later, I still remember this question.

My awesome decisions about joining great organizations didn’t follow up with the mistakes I did in picking up some incorrect roles. My vacations around the world didn’t follow up with the pandemic spoiling all travel plans and changing the course of my career. Birth and birthday posts didn’t follow up with death and sad posts. My successful certifications didn’t follow up with the failures I met in clearing a few. My great shares on the technical aspects of the product I work on didn’t follow up with the actual posts on my blog! (Yes, I was worried that my perspective on many things in this blog might not go well with my network!).

Yes, my social media feed showed only the roses and not the thorns.

A different perspective

So why this long post??

I have a college friend who is a gifted individual. What’s so great about him is, unlike me, he is doing wonders in his field of study, while I’m doing a job that is not related to my college degree. Yes, I envy him. But his perspective was different about me and his other friends.

I remember him, talking about how our lives are great and how he is facing difficulties in each and every aspect of his life. Based on the quotes and citings he made, I understood that his opinion about my great life is based on what he sees on social media. He forgets that ‘Social media is a filtered facade’. Sometimes, I forget too. Sometimes, like him, I too get bogged down seeing the various achievements that my friends post, thinking I’m just wasting my life and abilities.

The pandemic showed us what life was all about. It showed us that nothing goes by plan. It showed us that while we are enjoying here with the best that life can give us, there is another person who is facing the worst.

So should we start posting all our thorns? or should we stop showing our newly blossomed roses?.

Neither.

Technology is part of our lives now, and we have to adapt.

To all those people who forget that ‘Social media is a facade’ or getting bogged down by seeing the success of others, remember these –

  • ‘போதும் என்ற மனமே பொன் செய்யும் மருந்து.’ – Contented mind is golden medicinal elixir.
  • ‘இதுவும் கடந்து போகும்’ – This too shall pass
  • Do the best you can, with what you can, while you can, and success is inevitable

Remember: Happiness can be found, even in the darkest of times, if one only remembers to turn on the light ~ Albus Dumbledore.

Through the lens: An architect in the computing world – Five principles

Architect – a person who designs and in many cases supervises the construction/delivery of their design, usually based on the requirements of a customer

I have always wondered what is required to be an architect. While technical and functional skillset is the base for any architect, there must be a few other guiding principles that can help an architect to deliver what the customer wants. Today, there are many who have sound technical knowledge, have the best domain expertise, have an excellent skillset in articulation, and have great interpersonal skills. But very few can give the customer, what they want.

Yes, the customer is king, but an architect has to deliver the best possible solution for the customer based on the customer’s pre-set parameters.

So, it’s more of we deliver what the customer wants, but in a way that we believe is the best. While our expertise may lead us to design something we feel the best (and be reluctant to accommodate a customer’s request), always remember that the customer pays!. Dollar bills!. You see, there is a middle ground – Deliver the best but/and make sure the customer is happy.

One of my recent involvements, made me rethink the non-technical, non-functional qualities an architect needs. These are definitely not interpersonal skills, So I will leave it to the reader to classify them. I think these are general guidelines that any project or any architect usually follows, so maybe it can act as a recap or reminder to all of us – architects. These are my five principles, I’m sure everyone may not agree to it, but here you go!

1. Show them what you do

On a high level for an enterprise-wide project, these are the phases involved. – Discovery, Solution Modelling, Build, Test, Go-Live. While each of the phases has its own deliverable to mark the completion of the phase, the time they take is usually high.

Imagine that you are building a house and spending millions of dollars. Won’t you expect to see the progress of the house every now and then? Will you accept your engineer/architect/contractor to just give you weekly info on what they did? I won’t. I will want to see what they have done for each week.

A customer who pays for the solution they need will need to see what has been done periodically.

Note the emphasis on ‘See’.

As part of the build and test phase, you can obviously show the solution that is being built (Classroom Pilots / Demos, etc.,), but what will you do in the lengthy discovery or solution modeling phases (apart from the final design or blueprints given at the end of the phase)? Believe me, capturing/elaborating requirements in a tool like Jira or ADO is a minimum activity now. Large / Multi-national enterprises, usually have all their requirements well written with their own Business Analysts / Users. So what else we can do to act as a differentiator?.

  1. Minutes: Let’s start with the basics – Send ‘Minutes’ for your meetings and time spent.
    • MoM as we usually refer needs this basic information – Topics Covered, Participants, Discussion Minutes, Decisions Taken, and Finally Next Actions with appropriate ETAs/ Follow-Up dates
  2. Present what you understood: (Ah yes, Whiteboarding) How about a simple diagram, an algorithm, a flowchart, an architecture, a PowerPoint smart art, or a simple cross-functional diagram?
    • Having a lengthy discussion on the customer’s process needs a definite output and it has to be immediate/quick. MoM will be a mandatory output, but your differentiator is going to be a pictorial representation of what was discussed.
    • I usually prefer putting together diagrams / writing down algorithms during the discussion with my screen shared (or on a whiteboard if it’s an in-person discussion). (Recently a friend shared with me a neat trick to create sequence diagrams with UML. I’m a fan of that now). This helps me with the below
      • Saves Time (Yes, a lot!!). I can just reuse this for my MoM or even in future deliverables
      • Helps me not to forget the nitty gritty.
      • Gives a chance for the customer to validate our understanding on-the-spot
      • Finally, it gives a minor satisfaction to the customer that we are making sense of their process!

Tools I use – OneNote (A big fan), Notepad, Any online UML Sequence Diagram, PowerPoint, Visio.

2. Stop selling, start delivering

This typically applies to the delivery phase. Yes, as the phase name suggests, we need to deliver.

The customer has spent millions of dollars to choose a product, get licenses, and then onboard an SI / ISV to implement it for them. Do you think they will be ready to spend more to buy a few more new products/ideas? They seldom do. Usually, their first priority is to see the fruits of their current labor. Maybe after the initial release, they will be ready to go overboard. I have seen customers visibly upset whenever an architect discusses with them a design that needs additional cost via customization, licensing, or products.

  • When should you sell? – Stick to the pre-implementation (RFP, RFI) phase. You can stretch a bit of selling to the discovery phase as well. You can definitely sell after the first go-live or MVP, as the customer would have already seen the benefits of their investment and will be ready to invest more or shall I say, trust you better!.
  • How to design without selling? – You have procured the project based on some assumptions which include cost, effort, timeline, and resourcing. Sticking to this boundary, deliver a solution that can meet the customer’s requirements. If the customer’s requirements cannot be met within your boundary, tell them what is possible based on what has been agreed. This heavily depends on the ‘Scope of Work’. If the ‘SoW’ is not clear, you will need to depend on the effort estimates and go back to your management for support.
    • I believe it is right to tell the customer (read as customer’s project manager) from the start of the solution modeling phase, what is possible within the budget. Yes, they will be irritated with our pushback, but it also helps them understand that we have a boundary. Explain to them the boundary, I have seen many client managers understand this pretty well. (Also, the third principle can help here) Remember, we are not here to sell, we are here to deliver. Selling was done before we got the project.
  • But the solution will benefit from this additional customization and cost, should I not focus on the best solution? Yes, you should focus on the best solution. and hence my third principle!

3. Options, options, options

For any problem, there can be more than one solution.

Always make sure to give multiple options, at least for the complex problems/requirements.

While giving multiple options, make sure to differentiate on these categories as a minimum – Technical Benefits, User Experience, User Interface, Timelines, Maintenace, and finally cost. Make sure to mention your recommended option for the best solution.

Of course, many of the industry veterans I know, have always suggested going with the single best solution. I think that will work when you are submitting your solution for a proposal, to show your proficiency. But during delivery, you will need to give options (and yes a recommended option among them).

Giving multiple options for a complex requirement will give the below benefits

  • Customer satisfaction – Customer values the effort you have spent to help them decide and build the best possible solution. I have seen many customers personally appreciate providing them with multiple options. It works.
  • Highlighting the effort and cost involved – Yes, you can show the customer which option will fit within your boundaries and which options will need additional effort or cost. This is a polite/professional way of saying what you can do and what you cannot. If the customer is ready for costly options, they will definitely choose.
  • Future Roadmap – You can help the customer define their future roadmap. At the moment, the customer might have a budget only for option 1, but at a future date, they might go for option 2, so your current work can help them to decide the next steps.
  • Knowledge is PowerYes, giving multiple solutions for problems, helps you as well as you usually do some R&D / PoC to get the required information.

4. Own the solution

Owning the solution and delivering it – This is very important for an architect. I have seen many architects who blame the developers/development team for an incorrect / issue-prone solution or delivery. While your role might not have this responsibility in your organization (certain organizations don’t, as they will have a separate development/delivery team), this is required for building an effective solution for the customer. The customer will start trusting you for the next project, only if you deliver what you promised.

  • I don’t have the development under my control/purview, so how can I own the solution? – Work in partnership with the DEV Team / Lead. Try to be in their shoes, as they do the bulk of the heavy lifting for the solution. Understand the effort estimates and stick to the SoW. If you are deviating from the SoW or estimate, make sure your team understands the need for it (The data you prepared for 3rd principle can help here as well). Don’t commit to short timelines or complex designs without their buy-in.
  • My design is based on my experience, and the team fails to understand – Tricky situation that happens in all projects – You have 2 ways: Make them do a PoC to make them understand your point. You can also, if possible, get both solutions developed (of course time/effort wasted) or you should advise them that you will take responsibility for the solution. Yes, I agree, this is a slightly difficult topic that will need better interpersonal skills to manage.

5. Being Neutral (or can we say Integrity?)

A 60-year-old client manager once told me that the important quality they expect in an architect or an SI partner representing an SI / ISV is to give the best solutions regardless of whether it will bring additional business to the SI or additional licenses to their product.

I believe him.

However, it is always better to be neutral. We, architects, are here to deliver the best possible solution for the customer within the boundaries specified to us by both the customer and the organization we work for. We can’t go overboard and that is where principle 2 helps.

  • My organization is expecting more revenue, I can’t do that by being Neutral or by practicing integrity You can do both at the same time. Read principle 3.
  • My customer is expecting more than the effort or cost estimated or SoW. Read principle 2(which also refers to principle 3).

I believe these five principles will help any budding architect or a functional consultant.

Well, here we are at the end of my post. This is my view based on my experience. Do comment on your thoughts/ideas. Happy architecting.

Cheers.

Xbox Series S – How does it fair in an Indian Broadband setup?

Disclaimer – I’m a casual gamer (Few hours per day / very basic set of games). So my views expressed here might not be applicable for hard-core gamers.

My primary objective was a console to play few games for me and my family, secondary is for entertainment by using various apps for music / videos / OTT subscriptions.

I was impressed by the form factor and the ability of the Xbox Series S digital console.

I did research by reading all reviews from different web sites, youtuber reviews and was a little skeptical while buying it, as most of them mentioned the need for a good broadband connection, the need for a costly custom pluggable SSD, the absence of disc drives and the absence of native 4K. However, I couldn’t try out the console before buying it due to various reasons, one among them is the pandemic and associated lockdowns.

So finally, I took a leap of faith on Microsoft and ordered my console from Amazon. It was very easy to setup and occupied very less space.

Figure 1: Xbox Series S

Now, let’s come to the topic of my post. Will Xbox Series S fit in an Indian Broadband Landscape?

Before I try to answer this, here is my setup

  • I have a Fiber Broadband offering 200 Mbps unlimited speed. I’m paying around 1100 per month
  • I have the Junction box (or technically called as Optical Network Terminator) installed at my house premise (So can I say the latency is better?)
  • From the ONT, I have a TP-Link Router given by the ISP. I have a wired access point to another TP-Link Router.
  • This wired access point provides the WiFi for the console (Yes, I don’t have a wired connection 🙁 )
  • I usually have at least 7 heavy bandwidth usage devices connected in-parallel using the internet for video streaming / video calls / cloud programming along with 4 to 5 normal bandwidth usage by mobiles / IoT devices

This is what I did to try and find the answer:

  • Subscribed to Xbox Game Pass (You can obviously buy one or two games. Option is still available)
  • Downloaded and started playing below games (Yup, took some time for the downloads. But it was onetime setup, so no complains)
    • Jurassic World – Evolution
    • Star Wars – Squadrons
    • Scream Ride
    • Zoo Tycoon
    • MotoGP 20
    • Ace Combat 7
    • UFC 2
    • NFS Heat
    • Rocket League
    • Descenders
    • Cities: Skylines
    • Forza 7
    • FI
    • PUBG
  • Ofcourse Apps like
    • Netflix
    • Prime
    • Youtube
  • Once I finished a game or didn’t like it, I did uninstall it to save space. But I never felt like the space was less at any point

Here is my conclusion…

Xbox Series S was able to play all the above games with no buffering / lags or any performance issues.

The console works perfectly for a casual-gamer like me.

The broadband connection I have is more than sufficient for my gaming despite the parallel bandwidth usage by other devices (and console was connected via WiFi)

The ‘Instant Resume’ feature is awesome. I don’t remember waiting for any game to load even if I switch between multiple games / apps

I didn’t care about the native 4K resolution. Yes, upscaling is enough for me.

The lack of disk drives or the need for additional SSDs didn’t arise for me yet

Having experienced a good performance from my console, I started checking how good the Indian Broadband scene is compared to the whole world. This is what I could find. Thanks to SpeedTest / Ookla for their insights.

Figure 2: SpeedTest’s data for India’s broadband scene

While the average speed is 50 Mbps in India, if you have multiple clients like I have, I suggest a minimum of 100 Mbps connection for Xbox Series S.

There you go –> Xbox Series S does fit the Indian Broadband Scene, just need to identify the correct setup.

Do comment your ideas / thoughts. Happy Gaming.

Cheers!

Windows 11 in Hyper-V : Things to watch out

Windows 11! the new release from Microsoft has all the things that can make even a regular user to be excited about.

My favorite feature is redesigned ‘Settings’ app. It resembles the mobile settings of Android / Your Phone app UI and yes, its awesome.

Figure 1 – Windows 11 – Settings App

I did my setup in a Hyper-V VM. Upgraded an existing Windows 10 VM to 11 by joining the Windows Insider Program in the DEV Channel.

There are many blogs that gives you step by step insight into setting up the Windows 11 machine in Hyper-V. While, I didn’t refer any of the below as it’s pretty straight forward, do check if you need any help. This ‘Windows Central’ link is very detailed enough.

How to try Windows 11 alongside Windows 10 using a virtual machine | Windows Central

In this post, I would like to share my learnings…

  • Storage – Make sure your main Virtual Disk is minimum 35 GB. Anything less than this, you will have a hard time managing the windows updates. Yes a rookie mistake from my side. I had setup C: drive for 30 GB and had to play it safe by clearing temporary files , windows installation files etc., often. (Windows Central has mentioned a generous 65 GB. Yeah that will be enough for using Windows 11 even as your daily driver, if you like me believe in cloud storage).
  • Maximizing the window size – Once you install Windows 11 in your VM and if you, like me, use a large monitor, you will see issues when you use an ‘Enhanced Session’ in the VM or try to change the VM window display size by using the slider of the VM properties. The VM will not even show you the login screen (at least for me). So instead of changing the VM Settings, login to Windows 11 and change the ‘Display Settings’. Here choose the right resolution you need (Best to match to resolution of the desktop / laptop that hosts the VM) and viola!.
Figure 2 – Changing Display Resolution

That’s it from my side. If I observe any other issues in my VM, I will update this post.

Enjoy Windows 11. Hopefully I will soon get my hands-on Windows 365. Excited!

Cheers.

Dynamics 365 CE – Using Security Groups – How many do I need? Can I nest them?

The latest feature in Dynamics 365 CE (and PowerApps), is to provide user access to an environment using AAD Security Group or Microsoft 365 Groups.

This is a wonderful feature for IT admins as they don’t need to deep dive into the security model of Dynamics 365 CE / Power Platform for doing a day to day task of handling the typical ‘User Provisioning’ tickets, especially in organizations where they have lots of systems to handle.

Once the system integrator / IT partner builds the system with required business units, teams and roles, all the IT admin has to do is to add the user to the required group to give the requested roles / access.

Below Microsoft Docs articles will help you to understand the basics, before we go ahead.

  1. Different types of groups : Compare groups – Microsoft 365 admin | Microsoft Docs
  2. How to create a basic group in AAD: Create a basic group and add members – Azure Active Directory | Microsoft Docs
  3. How to add a group as a team in Power Platform / D365 CE: Manage group teams – Power Platform | Microsoft Docs
  4. How to add a group to an Environment during creation: Create and manage environments in the Power Platform admin center – Power Platform | Microsoft Docs

However, what is the best way to setup these groups? These are the questions that I had when I started using this setup:

  1. How many security groups do I need?
  2. Can I have nested security group. Is that easier to setup and use?
  3. Will the changes to a security group used by D365 reflect immediately?

Let me try to answer them based on my understanding…

How many security groups do I need for an environment?

To answer this question, I took the liberty of classifying the groups into two based on where / how they are used. I also named them as below

  • Environment Security Group: This security group is used in the ‘Create an Environment’ procedure to set the users who will have access to an environment.

Let us assume the environment we are going to use is ‘MGRB – Development’. Our goal is to allow only developers and testers to access this environment. So we will create a group as ‘MGRB-DEV-Users’ which stands for ‘Users of MGRB Development Environment’. We will then add the developers as the members of this group. While setting up the environment, we will choose the group in the ‘Security Group’ field as shown below.

Figure 1: Environment Security Group used to restrict environment access
  • Role Specific Group: This security group is used to provide a specific role to the members of the group in the associated environment.

In the above mentioned example, while the members were added to the group and were set as the security group for accessing the environment, they still won’t be able to access the environment. Yes, you guessed it right. They need a security role!

There can be multiple users in the Environment Security Group – MGRB-DEV-Users, but our goal is that only developers can be with ‘System Administrator’ role. To fulfill this goal, we will now have one more group as ‘MGRB-DEV-Admins’. This group is then created as a group team in Dynamics 365 CE / Power Platform.

New Azure AD team
Figure 2: Adding MGRB-DEV-Admins as a Group Team – Role Specific Group

So, if we have additional roles, then we will one group per role and we can call it as ‘Role Specific Group’.

Here is our conclusion:

Environment Security Group and Role Specific Groups will work together to provide an user, access to an environment.

A user who is present in an ‘Environment Security Group’ should also be part of at least one ‘Role Specific Group’.

What about nested security groups?

Nested security groups do work in Dynamics 365 CE / Power Platform. However, I suggest my IT admins to avoid using nested security groups for below reasons

  • Easier auditing / reporting – I prefer having individual security groups, as it gives me clear information on who is part of which environment and has what role. Instead of spending time to dig into each nested group to get the required report, if needed for any auditing purpose.
  • Easier to remove access – A user can be part of more than one ‘Role Specific Group’. It is always easier to remove a user from an Environment than removing them from all roles (also make setting them again easier. Yes, users may take a Sabbatical, change location, region etc.,)

Will the changes to a security group using by D365 reflect immediately?

Nope. It won’t reflect immediately. You will need to ask the user to log out of all browsers and login again to Power Platform / D365 CE. Learnt it the hard way.

Well, here we are at the end of my post. This is my preferred way of using the security groups in D365 CE / Power Platform. Do comment your thoughts / ideas.

Cheers.

PP : Check logged-in user security roles

Product: Dynamics 365 CE, Model Driven Apps
Language: JavaScript

Doing an operation based on the logged-in user’s security roles is a common requirement is any Dynamics / PowerApps implementation. Here is a simple code, that you can re-use to do any activity based on user’s role.

For this example, I have taken a scenario of hiding / showing a tab in a form based on specific roles.

function showTabsByRole(executionContext)
{
   // Function to hide the  appointments tab by role
	"use strict";
    var formContext = executionContext.getFormContext();
	var roleCollection;
	var rolesVisibleFor = ["System Customiser", "System Administrator"];  // Replace this with the role you need
	var shouldBeVisible = false;
	var userSettings = Xrm.Utility.getGlobalContext().userSettings;
	if (userSettings.roles._collection != null)
	{
		roleCollection = userSettings.roles._collection;
	}
	else return;
	Object.values(roleCollection).forEach(function (obj)
	{
		rolesVisibleFor.forEach(function (item)
		{
			if (obj.name == item)
			{
				shouldBeVisible = true;
                formContext.ui.tabs.get("appointmentstab").setVisible(shouldBeVisible); 
				return;
			}
		});
	});
    formContext.ui.tabs.get("appointmentstab").setVisible(shouldBeVisible); 
}