Friday 30 April 2021

Azure Naming Conventions

 My Format (I simplify for smaller companies)

<Company>-<BusinessUnit>-<Region>-<Environment>-<ResourceType>-<Project>-<Instance>

GS-IT-UK-PR-RGP-Treetops-001

GS-HR-US-DV-NSG-Cloud-001

I like to enforce the same length for each part, just because it makes it easier to read in a list.  i.e. Region - Could be the 2 digit country code.  Case consistency is also important. 

Environment is my DTAP environment i.e. DV = Development, TS = Test, AS = Acceptance, PR=Production

Resource Type is the Azure Resource Type e.g. Network Security Group = NSG.   It is worth publishing a list as application services could be app or aps.

Tip: In azure sometime you can't use hyphens or need to use lowercase.  If I am forced, then I keep the same convention but merely abide by the rules of the service.

The key is just keep it consistent.  I find organisation use Tags poorly so with the naming convention, it helps replace the need for Tags or tags can easily be added as it gives the info away in the name.

Microsoft Recommends Azure naming convention:


Another example format:
<4digitApplicationName>-<2digitEnvironment>-apim-<2digitcounter> e.g. taxp-pr-apim-01 or  dvla-dv-appins-01 
I think it is just key to agree a standard format and stick to it.

I 100% ensure naming is consistently followed for resources, it's also useful to have a few tags, but I'm not dogmatic regarding tags.

Tags Examples
Env: Dev
Data Classification: Confidential
Project: Tax Treaties

Friday 2 April 2021

Power Apps using Excel in One Drive or SharePoint

Overview:  A Canvas Power App can easily connect to Excel held with SharePoint of OneDrive.   It is great for getting values in, or for reading static values from a list.

Limitations

1. You need to create a table in Excel to connect from Power Apps.  The problem is the table cannot contain any formulas.  I wanted to input a value, use Excel formulas to get a calculate risk value.  It can't connect.  The work around is to build the formulas in Power Apps but for my customer complex Excel sheet I don't want to spend weeks re-engineering the logic from code.

Excel: Trying to read field B19 that reference my calculation:


Power Apps: Trying to connect to the Excel table results in the "Excel file containing formula are currently not supported" error message:

2. Size limit, max 2 MB Excel file.  This may be bigger now.

Summary:  You can't work with large data sets and you can read from calculation cells in tables o Excel is fine for inputting into an Excel document that will be used as excel but pretty useless as a data store for Power Apps.  Rather use a SharePoint list but this doesn't help if you actually want to use Excel as it contains complex logic.

Sunday 21 March 2021

Building Response Canvas Power App

Problem:  Power Apps is great but historically you either build for the tablet or the phone and then the end users get an alright experience on the other device type.  Microsoft have Horizonal and Vertical containers and it is a greate way to build Resposnvie/Progressive applications.  

On the Power App make the following settings changes:

  • Settings > Advanced Settings > Enable "Layout Containers"
  • Settings > Screensize + Orientation > Diable "Scale to Fit"
  • Settings > Screensize + Orientation > Diable "Lock Orientation"

Layout controls: Horizontal container & Vertical container, use these 2 controls to get a Responsive Design.  Screen layouts are only available for the Tablet layout. 

WIP

Monday 15 March 2021

APIM Authentication and authorisation

Overview:  APIM provides two methods for secure access to an API operations:

  1. Subscription: passed in the header or the query string (generated primary and secondary subscription key for each subscription), and 
  2. Client Certificates.
WIP


Sunday 14 March 2021

DNSCheck SaaS Service

Good service to check when DNS changes are propagated on the Interweb 

https://dnschecker.org/

Saturday 13 March 2021

APIM OpenAPI Specification Documentation Example within the Developer Portal

Overview:  I find document APIM contracts incredibly important and yet it's often very poorly done.  This post provide a simple YAML and JSON example that can be imported into APIM or any other gateway product for that matter.

The YAML file below can be imported into APIM and published to the developer portal.  The example provides a clear example on options and how an API should be documented.  Developers can see an example of the JSON to use when performing the PUT.  The developers can see more information of a property, for instance a passport number would be a certain length and rather than specifying and option free text string with no description, the developer would know that the property has to come in the correct format.

Simple Open API specification showing a single documented operation for a complex PUT object (YAML).

PB APIM Series:
Documenting you API in the Developer portal (this post)


Sunday 7 March 2021

SaaS Product Customer Experience - level 101 Thoughts

Overview: With SaaS products is is easy for our customers to leave.  We need to reduce turnover/churn and technology can help to deliver great Customer Experience (CX).  CX is closely coupled with Customer Success.


Topics to Review:
  1. SLA's & OLA's
  2. Pricing: 
    1. per seat (subscription), 
    2. flat usage or 
    3. usage model (pay as you go).  
    4. Always keep it simple.   In B2B SaaS pricing keep it simple, aim for MMR, that clients understand for cost forecasting.  Make it easy to buy, increase/upsell and leave.  It's amazing how many companies try to hide the sale to reduce churn.  Build good products and service don't try hide exit so stop loosing customers, it's pointless and a poor long term strategy.  
    5. Tiered pricing is good, but keep it simple.  Try stick to 1 form of pricing, its aweful for the customer to have base usage costs and then some crazy secondary model to figure out and explain in the purchasing process.
    6. Companies want Monthly Recurring Revenue (MRR) or ARR and the ability to up sell later.  It depends on the nature of the business and product but monthly should be the default goal especially for B2B SaaS.
    7. Offer a free trial for E2E fairly long is not a bad idea depending on the product.  Two weeks is a rough starting point.  Less if you need them engaged quickly or even several months to get real value.  I tend to find E2E customers with free software don't tend to use it unless their is a limited time.  So I'd always limit to 1 month for a free trial. you can always extend.
    8. Freemium version may be useful (unlimited time) and generally are not applicable to B2B/E2E SaaS models.
  3. Service Status Page - Microsoft do a great job at showing status pages for their services.
  4. Incident Management - Convert into knowledge base both internally and customer facing.  Sales and customer management information alignment.  Find a customer, see their past requests, help reduce churn. service now incident management,   Generally, go for tech touch for interaction over low touch or even high touch.  In E2E, large customers want good tech touch but will require high touch, specifically around customization.  Beware the small customer demanding high touch for their "future potential growth/usage".
  5. Content - product documentation, community forum, online knowledge base, ability to have a good search to cross all the channels (think Coveo), support chat bots, live conversations with support.
  6. Certifications, "gamification" useful for building a community. 
  7. Communicate new features, educate support, educate sales and evangelists and clients.  Training and consultancy.  Monitor communication, use Sentiment Analysis.
  8. Support level i.e. free support may not allow phone conversations and not have an SLA whereas premium support may offer 24 hour production issue resolution with money back guarantees.  Example: Azure Support Plans.  Phone is expensive for support, do we offer this 24/7 and having good support is costly.  People are becoming more familiar with digital self service.  It is also a good idea to have a  warm hand-off from automation to a person.
Getting your processes correct and clear is key to your Digital customer experience (CX).  Key areas to consider: 
  • Advertising/attracting clients, converting leads to clients;
  • Trials and paying (make it easy, cost effective, billing) - customer must understand what they are paying for;
  • First time user experience (easy good experience the client can use);
  • Habitual users (once use to the system, do my users have the best experience - get usage telemetry); and
  • Support (levels of support, chat bots, email, call support).
Thoughts: SaaS world changes so quickly these days, great customer experience and support are more important than ever.  An interesting idea I heard, "You can loose a customer on price or customer service, you will only win them back thru customer service".  (KYC) Know Your Customer to ensure you can delight your customer and comply with AML rules.  Get one step ahead, try understand your customers concerns early.

There is a great book that has been around for a few years on Customer Success by Nick Mehta, Dan Steinman, and Lincoln Murphy.  How innovative companies are reducing churn and growing recurring revenue.