Wednesday, April 27, 2022

Cloud Services and Enterprise Mobility

MS offers 365 and storage services, outlook etc. (free consumer offerings)

In MS Office 365, you can install applications on premise or as cloud

Cloud storage types:

·       Personal cloud storage (example – OneDrive)

·       Public cloud storage (entire company’s storage offloaded to a public cloud service)

·       Private cloud storage (data made available via an internal data centre, and not via internet)

·       Hybrid – combination of public + private

 

Advantages - Off site backup, less local storage

Disadvantages – argument on data ownership, bandwidth constrictions on public clouds

Cloud communication characteristics

·       Internet based voice ccommunication are hosted outside of the organization

·       Voice over internet protocol

·       Replacement of private branch exchange (PBX)

Advantages of cloud-based comm. Services

·       Cost is lower

·       Allows for greater flexibility

·       Services can be outsourced

Disadvantages of cloud-based comm. Services

Depends on the internet connectivity

 

Examples – Whatsapp, Skype

Azure search services

·       Fully managed cloud services

·       Offers search capability

·       Natural language support

·       Scalability

·       API-based

·       Stores data in an index

·       Data storage is given to the search service

·       Can use push/pull models for indexing

·       Can select the prederred service type (dedicated services or not)

 

MS Intune

·       Mobile device management and mobile application management is available with MS Intune

·       Offers PC management including Windows, Windows RT

·       Updates can be performed and managed in MS Intune easily

·       Protection tab of MS Intune shows malware statuses

·       Alerts section shows what input protection and monitoring was done by MS Intune on behalf of us

·       Apps status is displayed as a dashboard

·       Several out of the box reports are available for licensing, software history, inventory etc.

·       Selective WAP capabilities are there

·       Devices can be grouped and managed

·       In the Account portal, you can create users

·       Create a user -> assign a role (whether administrative role, if not then what the role is), user location (if licensing is prohibited in the country then the country will not appear, create the user with a temporary password

·       MS Intune allows us to configure malware protection (real time or by via certificate updates)

 

Microsoft Azure

You can create a VM whether using gallery or as a quick create

Select the OS, and the image (several images such as Windows server, sharepoint, sql server, Visual studio are there)

Replications of storage can be configured

Options for replication are – locally redundant, geo redundant and read-access geo redundant

Locally redundant = replication within the same region

Geo redundant = replication within a secondary storage region

Read-access geo redundant = geo-redundant however the second copy is only read only

 

Fault tolerance in MS Azure

Fault domain = a hosting space maintained separately in Azure data centre, fault domain is automatically created to allow for seamless service-level agreement enforcement

Upgrade domains are similar to fault domains, however, they support upgrades instead of failures

Identity services

In Windows, goto Administrative tools

Domain specific info can be configured in AD Domains and Trusts tool

To access the Azure active directory, login to manage.windowsazure.com

Login using Windows account/onMicrosoft account (organizational account)

 

 

 

 Agile Project Management Certification Prep+Agile Scrum+Jira 

Agile = incremental delivery + high collaboration

Some agile methods:

o   Scrum

o   Extreme programming

o   Kanban

o   Pragmatic programming

o   Agile modeling

Agile characteristics:

o   Active user involvement

o   Team is empowered to make decisions

o   Requirements evolve but time is fixed

o   Capture req. at high level

o   Develop small and incremental releases

o   Focus on freq delivery

o   Complete each feature before moving onto the next

o   Apply the 80/20 rule

o   Testing is integrated throughout the lifecycle

o   A collaborative and corporative approach between all stakeholders

Agile is a mindset and an umbrella term for many methods and frameworks used to deliver projects and products in small pieces

Top of Form

Why is The Agile Manifesto So Important (pick one answer) ?  It sums up the Agile mindset in 4 lines and serves as the foundation for Agile methods

 

 

12 Agile principles:

1.      Early and continuous delivery

2.      Welcome changing requirements

3.      Deliver working software from a couple of weeks to a couple of months, with a preference to the shorter timescale

4.      Business-people and developers work together daily throughout the project

5.      Build projects around motivated individuals, give them the environment, and support they need and trust them to get the job done

6.      The most effective method of conveying information to and within a development team is a face-to-face conversation

7.      The primary measure of progress is actual working software

8.      Agile principles promote sustainable development. The sponsors, developers and users should be able to maintain a constant pace indefinitely

9.      Continuous attention to technical excellence and good design enhances agility. (there is no design phase in agile, in each phase a design is done, this may lead to bad design, hence a great focus needs to be made to ensure good design)

10.  Simplicity – the art of maximizing the amount of unwanted work not done – is essential

11.  The best architectural design and requirements emerge from self-organizing teams

12.  At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly (Retrospective that happens at end of every iteration)

 

 

What is the purpose of business people (the customers) and developers (the team) working together?

Good alignment between what's being asked for and what's being built

 

XP (Extreme programming) = look for the simplest code that works

Feedback is important in XP.

On-site customer = in XP, the customer sits with the team., he is an actual member of the team

 

Scrum

 

Waterfall SDLC required many months to complete

At this time, team might bring wrong products to the market

Issues in Waterfall – planning begins without much idea about complete rquiement , planning has to be done in order to start development

In Scrum, we take a small requirement just enough to build something, and then we build what is planned. These periods are Sprints.

3 key roles in Scrum:

o   product owner – responsible for defining the features that are needed in the product

o   scrum master – protects/manages the development team

 

o   product backlog – product owner creates prioritized list of features (user stories)

o   way of writing user stories : “As a user, I need <<>> so that <<reason>>”

o   user stories are written similar to wish lists

o   sprint backlog – highest prioritized requirements go to the sprint backlog.  They are committed in the next sprint

o   Burndown chart – shows the progress during the sprint on the completion of tasks on the sprint backlog

o   Increment - a concrete steppingstone toward the Product Goal. Each Increment is additive to all prior Increments and thoroughly verified, ensuring that all Increments work together. In order to provide value, the Increment must be usable. The increment is of the potentially shippable product.

 

 

3 ceremonies in Scrum

o   Sprint planning – product owner, scrum master and developers discuss and pririties the requirements

o   Daily scrum – daily standup meeting

o   Sprint review and retrospective – occurs at the end of sprint to review the history. Sprint review = the team showcases their work to the product owner and retrospective = team works on what they can do to improve their process

 

Sprint is a 1 to 3 weeks’ time period

Sprint planning meeting = the team decides what product backlog items they will take on in the sprint and how they will develop them into a working piece of the product

 

Kanban

Is a light weight alternative to agile

Software teams have many work in progress

A member may cause a bottle neck

Kanban can resolve it

It is a scheduling system for lean

Kanban was used to indicate need of inventory for running a production

Kanban involves Kanban cards which were used to move production material within departments

 

3 bin systems – production in done using supplied materials

When one bin is empty, it is filled using another bin

3 bins = factory floor, factory store, supplier

When factory floor is empty, materials are brought in from factory store if factory store is also empty then materials are taken from the supplier

 

In Kanban -> If there is a bottle neck caused by one member, then tasks are moved to another method

Kanban-ish = Ageing each task in the work in progress column on the board

Ageing is: 1 day then baby, 2 days then man, 3 days then old man, 4 days then dead, 5 days then zombie

 

Kanban board is a visual table with 4 columns – to do, In process, to verify and done.

There can be Digital and physical Kanban boards

JIRA with GreenHopper plugin is a good Kanban board

 

Lean (manufacturing)

It is a simple way of thinking about customer value

Your Manufacturing process should be thought as a value stream that flows products to your customer

Value is anything your customer pay for, waste is not

Kaizen refers to an event, Lean is a philosophy

Lean aims to increase the value and cut the waste

5S is a Lean tools

5S = Sort, Straighten, Shine, Standardize, Sustain

Pull process = individual work area will not start production until downstream process/customer tells it to

Lean philosophies -

o   Kaizen  (how can we improve today, slow and steady, keep efforts coming)

o   Genchi Genbutsu -= going and seeing where the work is being done, see on your own eyes

 

Lean in software development

We can achieve high speed and low cost, with Lean in software development

Build what is necessary

Constantly monitor for unnecessary efforts

 

DSDM (Dynamic System Development Method)

DSDM is an agile method for software development

Allows integration with other project development approaches

DSDM includes everything needed for project management and governance

Application of DSDM – Agile project delivery, XP and other agile methods

DSDM principles – focuses from pre to post, focuses on business needs, collaboraetes , build incrementally, communicate early, deliver on time, etc.

DSDM roles and responsibility:

Unlike in Scrum, in DSDM the rules are more pronounced

Roles are – business sponsor, project manager, technical coordinator , business visionary, team lead, scrum team

Business ambassador helps with the Moscow

DSDM key techniques – facilitating workshops, modelling, MoSCoW prioritization (must have, should have, could have, would like to have), iterative development / prototype, timeboxing

Continuous delivery –

Deploying code seamlessly using continuous delivery pipeline

CI CD facilitates – source control management, continuous integration, systems integration tests, operational acceptance testing

User stories

o   Agile teams capture requirements through user stories

o   User stories are written in story cards

o   Example – As a manager, I need to see the performance review s of my team so that I can have a conversation with them about their performance

o   A story card is a promise for a detailed conversation

o   Prioritizing and estimating the story cards need to be done next

 

Acceptance test driven development (ATTD)

They are automated, living, executable tests

They are actual examples

Behavior driven development (BDD)

o   Every change is attached to a cost

o   To reduce this cost, we need to understand the client better

o   Interaction between business and technical stakeholders are involved

o   Product owner, developer and tester are involved

o   The meetings involving above 3 are named as three amigos meetings

o   In BDD, you test from outside

 

JIRA – setting up a Scrum project

Go to Atlassian JIRA website – try for free – select “JIRA software” – create the account and sign up

Choose the type of team u r working on, the profile, invite the team if required, new to JIRA and agile? Chose classic scrum template – create project -

 

In the backlog you can write the user stories

o   Example – as a user, I want a Home page so that I can see an overview of what the company offers

o   As a user, I want a Product page so that I can see a list of products offered by the company

 

In the right-side description, add the acceptance criteria.

Example –

The page should exactly match the design document attached.

The user should see:

o   The top Blog posts

o   The top 3 products

o   The most popular published by the company

Goto backlog (menu on left pane) – create sprint to create a sprint

Drag and drop the items from the backlog to the sprint that is created

Story points can be added for each element in the sprint

 

·       Start the sprint

·       Add the sprint goal and click start

·       You can move items from backlog to active sprint

·       There can be only one active sprint at a given time

·       Click on a task – create subtasks – record the subtask name and click Create

·       Click on a subtask and add original estimate (in days)

·       Drag and drop the sub tasks into “In progress” tab

·       We can set colors to in progress, done and to do items (Green, Yello, Red likewise)

·       Goto “All reports” to view reports such as Burn down chart

 

 Agile & TDD Best Practices for APIs: API Microservices Using TDD

APIs vs Microservices

·       An API is a contract between a caller and an application underlying data and functionality

·       APIs can be public (web based) or private

·       Web APIs usually send data in JSON or XML

·       Common API methods – GET, POST, PUT, DELETE

 

 

·       Microservices often include APIs

·       Microservices are multiple component services that can be combined to create a software solution

·       Microservices are decentralized and may have decentralized data

·       Microservices are self-contained and have dedicated data sources

 

TDD

·       Mock services can be used to mock REST APIs

·       TDD allows clients to test APIs before the coding is completed

·       TDD API design process:

o   Tests are written based on scenarios and required functionality

o   A REST API mock service is created for running the test scenarios

o   Tests are run on mock services

o   The real APIs are created and run against the test scenarios

 

REST API Mocking

Tools for REST API mocking: Nock, MockServer, Beeceptor, Mockoon

Behavior driven development (BDD) API design

·       BDD is an agile development approach

·       API design steps:

o   Select a small unit of work, brainstorm and reach a consensus of API work to be done

o   Document and track the API examples from the brainstorming session using automation tools

o   Implement the API web service behavior described in each example and create a unit test to guide the implementation

·       BDD involves all stakeholders, hence it allow for a shared understanding of the problem domain, documentation is created in general language, increases collaboration

·       BDD supports better communication between technical and non-technical people

·       Natural language specifications and real-world examples are used in BDD

·       Tests generated in natural language are automated in BDD

Software testing techniques

·       REST API testing

o   Functional software testing

o   Security testing

·       Load testing

o   Determine the maximum number of concurrent users

o   Infrastructure stress tests check the server and network architecture

o   Maximum operation capacity captures the total number of operations performed

·       Database testing

o   Structural testing to validate the architecture database

o   Functional testing validates mapping between fields and functions

o   Non-functional (example – security testing, load testing)

·       Unit testing

 

 

Software testing tools

o   Web testing platforms – Katalon Studio web testing tools (for validation testing, error detection testing and functional testing, SOAP UI REST API testing)

o   SOAP and REST API testing tools

o   Tools for unit testing

 

Integration testing

3 methods to write -> Create test (to setup the resources such as the DB), read test and delete test (to clean up the resources such as DB)

Tools – Postman