Featured

Thala Dhoni and his Leadership Skills

It’s that magical time again when the world stands still and hearts beat in unison, all for a glimpse of the legend on the green.

Billions hold their breath, eyes glued to the pitch, as the veteran strides out, his bat a wand that might cast a spell with just two swings. Whether he graces us with a soaring six, a swift four, a humble single, or even if the stumps are shattered, it matters not. Our spirits soar with his every move, our patience unwavering.

We’re there for the thrill of his strategy, the joy of his smile, the nostalgia in his flowing locks, the intensity in his gaze, and the sheer brilliance of his glove work. Victory may grace him, or defeat may loom, but our loyalty never wavers. Even if the clock strikes midnight, the match is lost, and the weight of tomorrow’s commitments looms large, we linger for the closing ceremony, hanging on his every word.

In the stadium, his name echoes, turning the sea of spectators into a golden wave of adoration. At home, our vision blurs with tears of pride and the bittersweet tang of a farewell that might be lurking just around the corner. For in these moments, we’re not just fans; we’re witnesses to history, to the twilight of an era that has touched our souls.

True aficionados understand—it’s a connection that transcends the accolades, the centuries scored, and the mesmerizing stumpings. It’s about the moments that take our breath away, the heartbeats that sync with the crack of the bat, and the collective gasp of a crowd in awe. It’s the essence of passion, the shared journey of highs and lows, the silent understanding that what we’re witnessing is more than just a game. It’s a legacy etched in the annals of time, a bond forged in the crucible of play—Yes, ‘Athayum thaandi‘, indeed, something that goes beyond a typical fandom!

My fascination with M.S. Dhoni began with the thrill of watching him send the ball soaring over the boundary. That obsession evolved into steadfast loyalty as he clinched victories after victories. But it blossomed into love when he exemplified humility, serenity, and the art of leadership—teaching me that true greatness lies not just in triumph, but in the grace of one’s character. 

Each of us finds solace in our own sanctuary. Some find it in yoga, others in the melodies of music. For me, it’s in the essence of Dhoni. Watching him on the field is my meditation, his words my mantra, and the respect he garners my inspiration. In his presence, life’s confusion and noise fade away, leaving a calm that echoes his composure. Yes, there are many things to learn from Dhoni. Some of which will help you become a great leader.

Great qualities of the leader – Dhoni:

  1. Inspire: When the strains of Dhoni’s tale from ‘Put Chutney’ fill the room, my wife senses my worries, but my daughter sees the spark of joy that’s about to ignite. Dhoni isn’t just a balm for our bruises; he’s the fire that fuels our comeback spirit. A true leader doesn’t just lead; they inspire, setting a standard that beckons others to rise.
  2. Composure: In the face of setbacks, Dhoni’s demeanor is a masterclass in composure. His unwavering smile, whether in victory or defeat, is a testament to staying grounded, reminding us that serenity is the true hallmark of strength.
  3. Process Over Outcome: Dhoni’s wisdom lies in valuing the journey over the destination. He always talks about the focus on the process. A robust and meticulous process paves the way to success, shaping outcomes one step at a time.
  4. Knowledge Sharing: Just as Dhoni generously mentors the next generation, we too should embrace the power of sharing. It’s the secret to collective growth.
  5. Trust Building: Victory is a team effort, rooted in the trust that you can lead the way. Dhoni, the finisher, exemplifies this trust. He stays till the end. He trusted players others never would have trusted!. This two-way trust is evident in DRS decisions. Even as the world awaits the third umpire’s call, his team celebrates, assured by his confident appeal.
  6. Loyalty: Loyalty is the currency of leadership, extending beyond superiors to every team member and supporter. The loyalty you offer is the loyalty you’ll receive, creating a circle of mutual respect and support.
  7. Appreciation: Dhoni’s way of celebrating triumph—sharing the glory, stepping back for the team photo—shows the power of appreciation. It’s a leader’s endorsement that can elevate the entire team’s spirit.
  8. Embracing Failures: Failures are but milestones on the path to success. Dhoni’s grace in defeat, owning every setback, teaches us that leadership is as much about embracing our falls as it is about savoring our victories.

For countless hearts, he’s the hero who defies the odds. For others, he’s God.

But for me, he’s ‘athayum thaandi’—a presence that transcends all titles and honors.

With every fan’s whisper, there’s a silent prayer—may this not be his final bow.

Dhoni might not be a captain now, but he’s the captain of the masses, endrum engal thala—forever etched as our leader.

Embrace his spirit. Embrace the positivity. Be like Dhoni.

Microsoft Copilot / AI – A day in the life of a power platform developer

The emergence of AI has indeed revolutionized the way tasks are accomplished in various fields. Over the last few months, I have personally experienced the significant impact of AI in my day-to-day work. Its efficiency has played a pivotal role in ensuring that tasks are completed on time, and often even ahead of schedule. This has been instrumental in enhancing productivity and streamlining processes.

I’ve utilized Copilot for a variety of basic tasks. These include crafting chat messages (indeed, what better way to dazzle your superiors with contemporary English?), composing emails, expressing gratitude to my team, offering feedback, drafting documents, designing presentations, and ultimately, developing solutions using Power Platform.

Based on my experience with AI and Copilot, I recently conducted a session highlighting the potential of AI to assist power platform developers and architects in their daily activities.

My session on “Copilot – A day in the life of a developer” followed this agenda

Copilot in your everyday apps

Here, I used the great app-level information provided by Microsoft on this webpage – https://copilot.cloud.microsoft/en-US/prompts. I added a few more icons that I thought were missing on this page. I’m sure many other products have Copilot embedded into them.

Refer to this link on how Microsoft Copilot is better and different – ChatGPT vs. Microsoft Copilot: What’s the difference? – Microsoft Support

The art and science of Prompting

The age of Internet search engines is now replaced by AI. The better the prompt is, the greater the response from Copilot.

My take on prompting involves prompts by two kinds of people –

1. One who doesn’t know what they want.

2. One who knows something and needs more things to be done.

For the first kind, Copilot will act as a mere search engine. You ask a basic question, and it gives the details. It’s for the second kind, that the magic of Copilot is demonstrated and it is also possible only if you understand the science of prompting.

Microsoft talks about the science of prompting in this page – https://aka.ms/copilot/prompt_toolkit?ocid=copilotlab_smc_article_gettips

To summarize, a prompt should have this basic information

  1. Goal – What response do you want from Copilot?
  2. Context – Why do you need it and who is involved?
  3. Source – Which information sources or samples should the copilot use?
  4. Expectations – How should Copilot respond to best meet your expectations

What you can do with Microsoft Copilot?

For this particular topic, I used the toolkit given by Microsoft. It gave many scenarios that you can try out. Do check out the copilot lab link and copilot adoption kits for more information.

https://adoption.microsoft.com/en-gb/copilot/

https://adoption.microsoft.com/en-gb/copilot/success-kit/

Below screenshot is one such example

A day in the life of a power platform developer

I used a requirement about encrypting data using HMAC SHA 256 for my demo on ‘Microsoft Copilot – A day in the life of a power platform developer’. (As I didn’t use MS Team’s Recap or Transcript Feature, here I’m giving a summary of the demo!)

A developer or an architect does the below in their day-to-day life:

  1. Research – The architect/developer gets a requirement from the client. First, they will need to do basic research. You can obviously do this using Copilot for Web, Mobile Apps, and Copilot for Edge. Again this involves the ‘two kinds of people’ that I mentioned in the previous topic. You can ask Copilot for Edge to
    • Search for a topic
    • Summarize a webpage
    • Take a screenshot of the webpage table or diagram and ask Copilot to summarize it in text.
  2. Share – Once they have sufficient information, they have to share it crisply and clearly back to the customer/client. You can achieve this by using Copilot in Outlook. Give the content and ask Copilot to summarize it
  3. Present – This is obvious. You can use Copilot in PowerPoint to create slides based on the content that you share as the source. Unfortunately in my experience, Copilot for PowerPoint didn’t give me a great output. Maybe, I didn’t master the art of prompting!
  4. Document – This is my best use case of Copilot. Copilot for Word can generate pages of the content that you need. In my demo, I asked it to create a technical specification document for the encryption logic with an algorithm, test cases, and even a sample javascript code!. Believe me, it was like magic! I think this is one use case that every developer and every architect needs to embrace!
  5. Implement – For this, I used multiple copilots. I started with a simple javascript by using Copilot for Windows and then used Copilot for Power Pages to tailor the script to work for Power Pages. I then changed the JavaScript to C#.net code that can work as a proper Dataverse Plugin using Copilot for Windows (of course you can try Github Copilot as well). Finally, I built the same logic in Power Automate using Copilot for Power Automate. I also built a simple canvas app to view the source and encrypted data in tables using Copilot for PowerApps.

What have we learnt and what’s next?

Microsoft Copilot is indeed a powerful tool with numerous potential applications in our daily routines. Its ability to assist with code generation and provide insightful suggestions is truly remarkable. As technology continues to advance, it’s exciting to consider the many ways in which tools like Copilot can streamline our tasks and enhance productivity.

I’ve dabbled with Copilot in a slew of my daily grind, but boy, have I been roasted a few times! 😄 From swiping the ‘hello’ from rephrasing suggestions for texts and emails to spouting off facts without double-checking—yep, I’ve seen it all. These AI mirages and my own ctrl+C, ctrl+V blunders? They’re like those spicy life lessons. But hey, they’re seasoning me to be an AI-whisperer!

AI is set to revolutionize the development process by slashing the time needed to create plugins, Power Automate flows, or Power Pages from 8 hours down to just 1. However, the ingenuity of the human mind remains indispensable for crafting the right prompts and integrating the components to produce the intended result.

For now, as we evolve, our jobs are safe. Yes, for now!

What-Why-How | Cloud Power Automates – Myths – General Guidelines

Cloud Power Automates, is a powerful tool that allows users to create and automate workflows between different applications and services.

This article will cover three things

  1. Basic best practices for implementing Power Automates
  2. Myths and Facts
  3. General Guidelines based on my experience

Basic best practices for implementing Power Automates

Here are some basic best practices while implementing Cloud Power Automates:

  1. Plan your workflow: Before creating a flow, take the time to plan out the steps and actions that will be involved. This will help you to create a more efficient and effective flow.
  2. Use templates: Cloud Power Automates offers a wide range of templates that can help you get started quickly. These templates are designed to address common scenarios and can save you time and effort.
  3. Test your flows: Before deploying a flow, make sure to test it thoroughly to ensure that it is working as intended. This will help you to identify and fix any issues before the flow is used in a production environment.
  4. Monitor your flows: Once a flow is deployed, it is important to monitor its performance and usage. This will help you to identify any issues and make any necessary adjustments.
  5. Keep your flows up to date: As the applications and services that your flows interact with change, it is important to keep your flows up to date. This will help to ensure that your flows continue to work as intended.

By following these best practices, you can make the most of Cloud Power Automates and create powerful and effective workflows.

Myths and Facts

Myth: Power Automates are slow

Power Automate, is a powerful tool that allows users to create and automate workflows between different applications and services. However, some users have reported that Power Automate can be slow. Let us explore some of the factors that can affect the speed of Power Automate and what you can do to improve its performance.

Factors that can affect the speed of Power Automate

  • Number of actions: The speed of a flow can be affected by the number of actions it contains. The more actions a flow has, the longer it may take to run.
  • Concurrency: Whether or not you are using concurrency can also affect the speed of a flow. Concurrency allows multiple instances of set of actions to run simultaneously, which can improve its performance.
  • Flow ownership and connections: The speed of a flow can also be affected by who owns the flow and whose connections are being used. If the flow owner or the connections being used are experiencing high load, this can slow down the flow.
  • Load on the source or target: The load on the source or target of a flow can also affect its speed. If the source or target is experiencing high load, this can slow down the flow. For example, understand the throttling behaviours of Dataverse is important!

Myth: Power Automate cannot replace plugins

Fact: It is important to note that Power Automate cannot replace all features of plugins. While it can replace most of the functionalities of a plugin, there are some things that it cannot do. If you need to perform complex operations or calculations, you may need to use a plugin instead of a flow. You might also need to go for plugins if you need to do some actions without an additional DB update.

Myth: Difficult to cancel Power Automate runs

Fact: Another issue that some users have reported with Power Automate is that it can be difficult to cancel runs. However, there are APIs available that can be used to cancel runs, and new features are coming to manage it via Dataverse. https://learn.microsoft.com/en-us/power-automate/how-tos-bulk-resubmit#cancel-more-than-20-flow-runs

Myth: Do not adopt Power Automates as it needs licenses.

Fact: Most customers have sufficient Enterprise Licenses that have Power Automate as part of it. However, before choosing to use Power Automate, make sure to check if you have the required licenses. This will help to ensure that you are able to use the tool effectively and avoid any issues.

While Power Automate can be slow, there are several factors that can affect its speed. By understanding these factors and taking steps to address them, you can improve the performance of your flows and make the most of this powerful tool.

As part of my implementations, I tend to suggest / follow the below best practices. Hope it is useful to you as well:

General Guidelines:

  • Naming Conventions are a set of rules for choosing the character sequence to be used for identifiers in a flow. A good naming convention is crucial for the readability and maintainability of your flows. Here is a sample format for naming conventions in Power Automate:

[TRIGGER TYPE]<<WORKING/TRIGGERING ENTITY>>|<<TRIGGERING ACTION>>|<<Short description of the business logic>>

Some examples of this format include:

  • [Auto] Opportunity | On Change of Owner | Set Assigned To
  • [Manual] Opportunity | Calculate Birthday
  • [Recurring] Opportunity | Once a week | Calculate Birthday
  • [Child Flow] Travel Requests | Approval Logic | Send Approval Request Email
  • [Manual / Parent] Opportunity | Calculate Birthday
  • [Parent] Opportunity | Calculate Birthday
  • [DONOTUSE] Opportunity | Calculate Birthday

By following a consistent naming convention, you can make it easier to understand and manage your flows.

  • Action names and notes are important components of a flow in Power Automate. Action names are used to identify the actions within a flow, while notes provide additional information about the purpose or function of an action. By using clear and descriptive action names and notes, you can make your flows easier to understand and maintain. It is a good practice to use action names that accurately describe the action being performed and to include notes that provide additional context or explanation. An example is given below
  • Basic setup for Dataverse Actions / Triggers: When setting up triggers for a Dataverse action, there are a few important things to keep in mind. Here are some best practices to follow:
    • Use Scope as ‘Organization’: This will ensure that the trigger is scoped to the entire organization, rather than a specific entity or record.
    • Set Run As as ‘Flow Owner’: This will ensure that the flow runs under the context of the flow owner, rather than the user who triggered the flow.
    • Use Column Filters and Filter Expressions. This will help to restrict the flow to a certain set of records / actions

  • Connection references are a way to manage and share connections between flows in Power Automate. When using connection references in Dataverse flows, it is important to follow best practices to ensure that your flows are secure, reliable, and easy to maintain. Some best practices for using connection references in Dataverse flows include:
    • Use connection references to share connections between flows: By using connection references, you can share connections between multiple flows, making it easier to manage and update your connections. Refrain creating multiple connection references as much as possible, else it will be a maintenance headache.
    • Use a dedicated service account / application user for connections: When creating connections, it is a good practice to use a dedicated service account with the minimum required permissions (as non-interactive user). This can help to improve the security of your flows and reduce the risk of unauthorized access. This will also help you to use ‘tenant pool’ and can increase the speed of execution by improving the throttling limits. Using Service Principals or Application users can help to improve the performance of your flows by reducing the load on interactive user accounts.
  • Use environment variables: Environment variables allow you to store and manage configuration data for your flows. By using environment variables, you can easily update the configuration of your flows without having to modify the flow itself. This can help to improve the maintainability and flexibility of your flows.
  • It is important to use ‘Try catch’ logic and ‘Do until’ loops when handling large datasets, such as those with more than 5,000 records. This is because Power Automate has a limit on the number of records that can be retrieved in a single action, and using these techniques can help to ensure that all records are processed correctly.
    • ‘Try catch’ logic allows you to handle errors that may occur when processing large datasets. By using this logic, you can specify what actions should be taken if an error occurs, such as retrying the operation or logging the error for further investigation.
    • ‘Do until’ loops, on the other hand, allow you to repeatedly perform an action until a certain condition is met. This can be useful when working with large datasets, as it allows you to process the records in smaller batches, rather than attempting to process all records at once. Use these loops to make sure you go above and beyond the 5K record limit by using paging cookies.

By using these techniques, you can improve the reliability and performance of your flows when working with large datasets.

  • Child flows are a powerful feature in Power Automate that allows you to create reusable, modular flows that can be called from other flows. Using child flows can have several benefits for both licensing and performance aspects.
    • From a performance perspective, using child flows can help you to improve the performance of your flows by breaking down complex flows into smaller, more manageable components. This can help to reduce the load on the Power Automate platform and improve the speed and reliability of your flows. Additionally, using child flows can help you to better organize your flows and make them easier to maintain and update. You are also splitting the number of actions that each flow has and will execute which can help you to be within the limits.

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

Cheers.

Through the lens: 10 months of On-Prem – A refresher course – Part 1

D365 On Premise – A Refresher Course

One of my resolutions for this year was to publish a blog article every month. Hoping to resume my blogging journey and share my insights and experiences.

After almost 8 continuous years of meddling with cloud – Azure, Dynamics, and a bit of AWS, I got a chance to come back to the On-Premise version of Dynamics 365. Close to 10 months of 2021 / 2022 have been sort of a refresher course and this time, I was not spearheading the delivery. A client-side application architect role with my day-to-day activities changing almost every day with less control over the deliverables and near zero control over the delivery team.

Photo by Pixabay on Pexels.com

I’m a hands-on architect and this role was completely different from what I used to do. Yes, interesting 10 months.

Like many architects, I prefer sticking to a process. I lay down the platform and make sure my team builds on it. Of course, I have been blessed with some awesome managers, consultants and great team leads / developers to deliver the best. 

But in these last 10 months, I only had a birds-eye view, and interesting enough, it taught me many valuable lessons. I’ll broadly classify them into two categories – Project Delivery and Solution Design.

The delivery side of things.

  1. The art of documentation
    • Documentation is a necessity regardless of the methodology used by the project. Methodology only changes the tools and methods involved in documentation. A typical waterfall model will involve creating a Word document while an agile/kanban/scrum will need user stories in Jira or ADO etc.,
    • Documentation is definitely required when you are requesting an out-of-the-ordinary infra setup, with a clear explanation addressing the – What, Why, and How. In many of my projects, it is normal to give a walkthrough of the document before getting things done.
    • This documentation activity also depends on the right timing. Documents need to be available during the design phase. You can obviously do the required modifications during the build phase.
  2. The urge to share knowledge
    • Every IT project has seen the churn of changing resources. This is part of parcel of life. The quicker we onboard and offboard people (yes, including offboarding), the easier it is to execute a project with the utmost quality.
    • Swift resource rotations are possible only if you have the right ‘Knowledge Base’ set up in your team. It should range from the basics of links to access, architecture, and best practices to the most complex and time-consuming activities that your team does.
    • Knowledge sharing is only going to benefit you more because you move on to the next best thing with your teammate now doing what you already did for many months!. The more you share, the more you gain!
  3. Task planning and tracking
    • There are many simple tools available that can help you plan and track the work of your team. Ranging from simple tools like Microsoft Planners to Advanced tools like Jira /ADO.
  4. Better to delay than to deliver with issues
    • Easy to say, but difficult to practice. Achieving functionality by any means is not the right way to deliver a solution. The technical aspects matter and a project lead should focus on doing justice to the chosen technical components while achieving a solution.
  5. The need for a delivery architect
  6. Roles and Responsibilities
    • Define clear roles and responsibilities. This will help you to achieve your goals with utmost quality as each person will have a specialized skillset and will also keep the morale of your team healthy.
  7. Coding standards, Reviews, and Source code management
    • Typical requirements of any project, when done properly can reduce your delivery time and will also give you a work-life balance. No point in slogging every day, it will only reduce the quality of your deliverable.

Solution design.

  1. Siebel can do, why not D365?
    • Users generally try to compare products. The delivery team must educate the features possible in a product and make sure the product is used in the right way. Focus on increasing user productivity using a next-gen system rather than on building a like-for-like system
  2. Functional and Technical Objectives – The needed balance
    • Same as the previous point. Use the product in the right way. There is no point in customizing it in incorrect ways just to meet the requirements. Educate the users on the advantages of the chosen product instead of building the Impossible in it.
  3. Data Structure
    • Do you know performance issues can be sorted by fixing the data structure? Yes, you can. Try it. Make your data structure linear if you need better performance. This is what AI says for linear data structure:
    • In the context of Dynamics 365 CE (Customer Engagement), a linear data structure can offer several advantages for organizing and managing data. Some of these advantages include:

      1. **Simplicity:** Linear data structures, like lists or arrays, are straightforward to implement and understand. They provide a simple way to store and retrieve data in a single, linear sequence.

      2. **Efficient Access:** Accessing elements in a linear data structure is usually efficient and fast. In D365 CE, this can be beneficial when handling large datasets or performing quick lookups.

      3. **Sequential Processing:** Linear data structures are ideal for scenarios where data needs to be processed sequentially. For example, when performing calculations or applying business logic step-by-step.

      4. **Memory Efficiency:** Linear data structures can be memory-efficient compared to more complex data structures, as they don’t require additional pointers or metadata to manage relationships between elements.

      5. **Easy Iteration:** Iterating over the elements in a linear data structure is straightforward and requires minimal code complexity. This can be helpful when performing operations that involve all records or entities in D365 CE.

      6. **Predictable Behavior:** Linear data structures provide predictable behavior for operations like adding, updating, or removing elements, making it easier to manage data changes.

      7. **Compatibility with APIs:** Many APIs in D365 CE are designed to work with linear data structures. Using these data structures can simplify data integration and data manipulation tasks.

      It’s important to note that while linear data structures offer advantages in certain scenarios, other data structures like hierarchical or graph-based structures may be more suitable for handling complex relationships and nested data in Dynamics 365 CE, depending on the specific use case and data model requirements. Choosing the right data structure depends on the nature of the data and the operations you need to perform on it.
  4. Notifications and the usual troubles
    • How many times has a notification from a non-prod environment reached a customer? I have seen many Android apps send me ‘Test’ notifications.
    • It is fundamental for any delivery team to build notifications with appropriate checkpoints and gates instead of adding whitelisting/turn-off features after an incident occurs. Think about what might go wrong and bring abilities to overcome it as part of your initial design.
  5. Sharing – Great for Jams, not so good for performance
    • My understanding of the Sharing feature of D365 is to give quick access to a colleague or team when needed. I rarely see a static sharing list, meaning 100k records are always shared with a single team or user!
    • We need to understand the purpose and the need for sharing. By Sharing too many records with too many users, you are also missing a way to find out easily who has access to a record, from UI or advanced find. Not to mention the impact on performance. You can increase the infra as required, but fixing the security model is better than pouring your money on infra.
  6. Security model – KISS
    • Keep it simple. Yes, make it easier for anyone to understand how your security model works. D365 CE offers some good features, stick to it.
    • Stay away from client-side security setups like using JavaScripts and implement column security profiles wherever JS might be required.
    • Reduce sharing
    • Use the concept of business units, teams, and additive security roles
      • In Dynamics 365 CE (Customer Engagement), additive security roles allow users to accumulate privileges from multiple roles. When a user is assigned multiple security roles, the privileges from each role are combined, granting the user access to the combined set of privileges from all assigned roles. This additive approach ensures that users have the sum of permissions granted by each role they belong to.

        For example, if Role A grants Create and Read privileges on Accounts, and Role B grants Update and Delete privileges on Accounts, a user assigned both Role A and Role B will have Create, Read, Update, and Delete privileges on Accounts.

        To assign additive security roles in Dynamics 365 CE:

        1. Go to the Dynamics 365 CE environment.
        2. Navigate to “Settings” and click on “Security.”
        3. Open the “Users” or “Teams” section.
        4. Locate and select the user or team you want to assign roles to.
        5. Click on “Manage Roles” or “Manage Roles for Team.”
        6. In the “Manage User Roles” or “Manage Team Roles” dialog, select the roles you want to add from the available roles list and move them to the “Assigned Roles” list.
        7. Click “OK” or “Add” to save the chan

        Remember that additive security roles can lead to a cumulative set of privileges, which might result in more access than intended. Always carefully review the roles assigned to users and regularly audit security settings to ensure that the access remains appropriate for each user’s role and responsibilities.

Part 2 coming soon..

Through the lens: AI and Accessibility

‘Guys, I’m color blind. I can’t figure out what you are talking about’ – This was the complaint of a frustrated client during a workshop I conducted years ago. The workshop was about ‘Design-Thinking’ and the slides were full of colors.

We ignored his feedback and did not change our slides for future workshops. We had many excuses for not making our slides more accessible. The main one was- ‘we did not want to spend time and effort to accommodate one person out of 20 in the room.’

Let’s be real. A common practice among global organizations and enterprises is to incorporate accessibility into their product development. However, how does this translate to the everyday production of technology?

Microsoft 365 products offer a range of accessibility features to help everyone create, communicate, and collaborate effectively. However, some features may not be accessible to all audiences, such as charts with color-coded segments. For example, if I have a chart with a red segment and I refer to it as the Red Segment, some people may not be able to identify it quickly or at all, even with a descriptive legend. A better way to make the chart more accessible is to use labels or patterns instead of colors or to avoid using color names in the text. This way, everyone can understand the chart without relying on color perception.

Accessibility is a topic that caught my attention after reading a piece by a former colleague who is a Thought Leader in this field and experimenting with some AI tools myself. I want to share some insights that I gained from this exploration.

I was curious about how AI can enable people with disabilities to overcome their challenges and access opportunities. Firstly, let’s understand accessibility and AI.

Accessibility is the design and practice of making products, systems, and environments usable by everyone, regardless of their abilities and disabilities. It is not only a human right, but also a social and economic imperative, as more than one billion people worldwide have some form of disability, according to the world health organization. Lack of accessibility can limit people to exercise their right to education, employment, and well-being.

AI – The science and engineering of creating intelligent machines that can perform tasks that normally require human intelligence, such as vision, speech, decision-making, and natural language processing, can actually help in providing accessibility.

In my example, AI can bring the ability to enhance presentations in various ways. For instance, it can detect what the presenter is saying and automatically emphasize the pie chart on the screen. Alternatively, it can translate the color words in the speech to the corresponding colors on the chart and provide audio captions for the listener.

My search to understand AI and Accessibility ranged from reading/scanning multiple articles, evaluating a few common products available in the market, and of course, asking the AI itself.

I also came across this wonderful article on how AI can help with accessibility. I have tried to summarize it below.

The article discusses how artificial intelligence (AI) can be used to improve accessibility for people with disabilities. It provides examples of how AI can be used to help people with visual, hearing, and mobility impairments.
The article also discusses some of the challenges that come with using AI for accessibility. For example, AI systems may not always be accurate or reliable, and there is a risk that they could perpetuate biases or discrimination if they are not designed and tested carefully.
Overall, the article highlights the potential benefits of using AI for accessibility while also acknowledging the need for careful design and testing to ensure that these systems are effective and equitable.

AI is involved in providing better accessibility features, but yes this is only the beginning.

So, as we endeavor to harness artificial intelligence to facilitate people with accessibility needs until such technology becomes ubiquitous for accessibility purposes, it is incumbent upon us to provide paramount accessible functionalities for our clientele and institutions.

Next time, when I build a presentation, I will try my best to be mindful of the audience, and yes, my colorful representation will change to a pattern representation.

Cheers. Let’s do things accessible.

What-Why-How | PowerPages as a mobile app

Product: Power Pages

Feature: Progressive Web Apps

We can create progressive web apps (PWAs) using Power Pages and it’s low-code tools. Yes, you heard me right. You can create web apps that look and feel like native apps, work on any device and browser, and even support offline scenarios. And you don’t need to write a single line of code!

How did I find out about this amazing feature? Well, I was trying to understand a few other features of Power Platform that can help in publishing apps for external and internal users as part of a previous article/session on Native Mobile Apps using Wrap Projects and came across this gem. Yup, I’m pretty late in the game. 😦

But better late than never, right? So I decided to give it a try.

The design studio lets you create sites as PWAs using drag-and-drop components, templates, and themes. You can customize your app’s name, icon, splash screen, starting page, and more. You can also choose which pages you want to make available offline for your users. And the best part is, you can publish your app to the web or to app stores with just a few clicks.

As usual, there are many blogs that explain step-by-step how to create progressive web apps using Power Pages, but very few explain the need and use cases. My take, here you go…

What are progressive web apps and why do we need them?

A progressive web app (PWA) is a type of web application that combines the best features of native apps and websites. A PWA can run on any device and platform and can work offline or on low-quality networks. A PWA can also access device capabilities such as a camera, microphone, push notifications, and geolocation.

Some of the benefits of using a PWA are:

  • Faster loading time: A PWA can cache the essential resources and data on the device, so it can load instantly and provide a smooth user experience.
  • Responsive design: A PWA can adapt to different screen sizes and orientations, making it suitable for desktops, tablets, and smartphones.
  • Engaging user interface: A PWA can mimic the look and feel of a native app, with features such as app icons, splash screens, home screen installation, and full-screen mode.
  • Offline functionality: A PWA can work even when there is no internet connection or when the connection is unreliable. A PWA can also sync data in the background when the connection is restored.
  • Enhanced security: A PWA uses HTTPS protocol to ensure secure data transmission and prevent malicious attacks.

A progressive web app is a modern way to deliver a high-quality web experience to your users. By using a PWA, you can improve your web app’s performance, usability, and engagement. A PWA can also help you reach more users across different devices and platforms.

Use Cases

One important request that I used to get from many of my implementations is how to get this wonderful PowerApps Portal (or now PowerPages) website that you have built (yes, slightly exaggerated 🙂 ) into each citizen’s (or external users’) hands as a mobile app. Earlier, my response has been they can bookmark the site on their mobile and will need the internet to even read simple ‘text’ pages.

Now my response will be, we can convert these Power Pages into a progressive web app and publish it to the Google play store or Microsoft Store!

Now, how to make sure end users or citizens, or people outside your organization can access your new PWA with login functionalities? You simply need to use Azure B2C / External Identity providers in your Power Pages. Refer to this link on the different authentication mechanisms / Identity providers for Power Pages.

Few use cases:

  1. Public Sector – A local council can publish it’s entire ‘My Account and Services’ PowerPages Website for citizens to use as a mobile app. They can also provide advanced features like push notifications!
  2. Manufacturing / Retail – A warranty/order management registration site can publish its entire Power Pages site for its customers to use as a mobile app to check/register warranties and also create new orders on the fly.
  3. E-commerce: Power Pages PWA can provide a fast and seamless shopping experience, even when the network is slow or unreliable. They can also send push notifications to customers about promotions, discounts, or new products.
  4. Education: Can offer interactive and engaging learning materials, such as quizzes, games, or simulations, that can adapt to different screen sizes and orientations. They can also support offline learning
  5. Travel: Can help travelers find and book flights, hotels, or tours, with features such as geolocation, maps, or calendars. They can also work offline and provide relevant information based on the user’s location and preferences.

and any more. So, use PWA for citizens / external customers and Canvas Wrap projects for Internal Users and Partners.

The steps given on the MS Learn site are pretty clear. You can refer to it here. I have given a few different screenshots and a few additional details in my deck below.

Cheers.

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.