Non functional requirements being so critical for any organization we came up with mandatory GATES concept nicely embedding NFRs to deliver a quality product.Key players being cloud adoption, open source frameworks, micro services, data engineering, Security, Operability, Measurability and Monitoring
Mission has been to build global products usable in multi countries hence concepts such as powered by data , driven by people, connected through Innovative Technology, Digital experience in a most convenient, secure, cost-optimal, reusable data APIs with utmost customer-centric is so vital.
I tried to decompose article in to 12 mini articles focus on 12 principles ( 6 product & 6 platform engineering)
We will discuss the very first one Business before technology (Digital Multi Experience Channels).
Critical success factor for any experience is friction less, less touch points, performant and available, and to enable such experience within various channels Mobile, Desktop, Voice, Touch, Wearables for upcoming 5G speed.
To enable parallel isolated development and CI/CD with front end Micro front ends for discrete apps is inevitable with responsive and few times adaptive. Delivering optimal experience along with protection back end systems with solid design around pagination/filtering/search , caching within front end, reduce chattiness etc.
Sometimes there is a strong need for visualization tools PowerBI/Tableau etc , need to ensure performance with caching and security. Hence heavy focus on Data in transit , authN , data AuthZ
Fundamental design patterns to enable ZERO business logic within front end, clear separation of content vs data, front end feature entitlement, feature toggling etc
Utilizing matured and vibrant frameworks (Angular/React etc)
Designing and right placement of localization aspects such as DateTime formats, UTC, Currency, formulae, language within experience APIs vs front end layer.
Adapting a development pattern such as RED/BLUE/GREEN to deliver a feature within a sprint — RED (Interface only with mock) , Blue (Functionality) , Green ( Production ready). This might help to gain alignment from business users about experience, make quick decisions, scope changes for faster product delivery with help of blue/green and/or A/B feature testing.
Utilizing matured and vibrant frameworks (Angular/React etc), Continuous validation of security within open source frameworks, plan for frequent upgrades. Be it web or mobile native, every open source component we download are vulnerable to security. Mandating a Gate for open source scan is inevitable with a OSA tool eg: FOSSA/Snyk within build pipeline.
Frequent validations with SAST (eg: SonarQube) / DAST (eg: GitLab, CheckMarx) and Pen-testing with ( eg: COBALT) would help keep the product with utmost robust secure.
Hope this helps, will discuss APIs in next topic !