Sei sulla pagina 1di 48

Statement of Work

Khaleej Times
Client: Zameer Hassan
Date: 20th May, 2019

Flexsin Technologies Pt. Ltd.


Toll free: 1-844-FLEXSIN (353-9746)
Phone (INDIA): +91-120-4206342
Phone (USA): +1 914-400-1777
Email: info@flexsin.com
Website: www.flexsin.com
Scope of Work

Table of Contents

1. Company Introduction ............................................................................................................................................ 2


2. Project Background .................................................................................................................................................. 4
3. Project Overview ........................................................................................................................................................ 4
4. Services covered in the scope............................................................................................................................... 5
5. Engagement Overview ............................................................................................................................................ 6
6. Project Commercial for Development ............................................................................................................ 13
7. Project Commercial for Maintenance ............................................................................................................. 14
8. Acceptance of Scope of work ............................................................................................................................ 16
9. APPENDIX .................................................................................................................................................................. 17
10. APPENDIX A: Our Preferred Methodology ................................................................................................... 18
11. APPENDIX B: Design Process ............................................................................................................................. 23
12. APPENDIX C: Testing ............................................................................................................................................. 26
13. APPENDIX D: Deployment .................................................................................................................................. 40

Flexsin Technologies Inc. | © Copyrights 2019 Page 1 of 48


Scope of Work

Company Introduction
Flexsin FZ LLC (parent company Flexsin Technologies Inc.) is a global software development company
with over 10 years of experience and over 350 employees. We are an ISO 9001 certified company for
the delivery of software development and maintenance and IT Solutions. We have a rich experience
and capabilities in delivering world class IT services in a Global Delivery Model. Our presence is
spread across geographies including major locations in USA, India, UK, UAE, France, Saudi Arabia,
and Australia. We have two delivery centers one in Noida, India and the other in Dallas, TX.

Our Services
Flexsin offers managed IT services ranging from turn-key web development, mobile applications and
digital marketing. We transform your business operations with our technology expertise and scalable
IT solutions.

We Consult, Design, Develop the core IT applications, and business processes by leveraging
technology, intelligent automation, agile development, and cloud solutions.

Being professional software development company, our aim is to provide customer-centric, result
oriented, cost-competitive, innovative & functional IT Solutions to our valuable global clients. We
stick to the standard principles that stands us different.

Our Vision
Our vision is to be best service provider in IT industry. Focused on constant innovation as our key for
achieving the ultimate goal of success and emerge as a globally recognized company by providing
the superior quality services and solutions.

Flexsin Technologies Inc. | © Copyrights 2019 Page 2 of 48


Scope of Work

Our Core Values


As a professional IT organization, our core values are driven by an aspiration to develop human life,
accomplish scientific excellence, function with the highest standards of honesty, increase access to
our services and hire a diverse workforce that values teamwork.

 Exceed client expectation


 Partner with clients
 Trust and teamwork
 Ingenuity and innovation
 Complete transparency
 Exceptional quality

Our Partnerships and Alliances

Flexsin Technologies Inc. | © Copyrights 2019 Page 3 of 48


Scope of Work

Project Background
Khaleej Times is a daily English Language Newspaper published in Dubai, United Arab Emirates.
Launched on April 16, 1978, Khaleej Times is the UAE's oldest and remains the country's longest
running English daily.

Khaleej Times now want to re-launch fully refurbished mobile news applications for iOS & Android
device users with a rich & modern user experience.

Project Overview
Flexsin will redesign and develop the existing mobile apps of the Khaleej Times on Native IOS &
Android Platform. We will develop the mobile apps from scratch.

The objective of this app is to innovate the overall look and feel of the Khaleej Times as per the latest
UI/UX standard along with some functional innovation. The focus points of the app will be fonts,
personalization, card design, navigation & performance.

Flexsin will refer the research & UI/UX designs prepared & presented in the pre-execution phase, all
of which is presented in the file “Proposed UX Design_Khaleej_Times_16_05_19” for final UI/UX
creation of the app.

Note: Aforementioned details are based on the current understanding and knowledge. It can change
based on forth discovery and execution.

Flexsin Technologies Inc. | © Copyrights 2019 Page 4 of 48


Scope of Work

Services covered in the scope


 Requirement Gathering
 Mobile App Design
 Mobile App Development (IOS & Android)
 Admin Web Panel for managing the content from backend.
 Testing
 Deployment
 Sprint Planning – We will follow a 2-week Sprint cycle and Monthly Releases as shown in the
image below:

 Project closure report

Flexsin Technologies Inc. | © Copyrights 2019 Page 5 of 48


Scope of Work

Engagement Overview
Engagement Overview section contains the following important components:

 Success Criteria
 Execution Procedure
 Client Responsibilities
 Project Technology Stack
 Project Deliverable
 Project Delivery
 Project Pricing Model
 Staffing – Roles and responsibilities
 Status Reporting
 Project Deliver Approval Process
 Change Management

Each of the above listed components is explained in a detailed manner below:

Flexsin Technologies Inc. | © Copyrights 2019 Page 6 of 48


Scope of Work

Success Criteria
This engagement will be successful when the Flexsin will successfully deliver the mobile app (IOS &
Android) as per the requirement shared by the client.

Execution Procedure
At a high level Flexsin will follow the following procedure for project execution:
 Kick off
o Flexsin will perform a formal project kick off to ensure that all the parties are aware of the
project start and the support needed from each party.
 Backlogging
o Requirements gathering for Project and creating user stories over VSTS
 Designing
o Creating UI/UX of the app
 Development
o Programming the requirement using technology
 Project signoff
o Post successful deployment of apps to respective stores, Flexsin will take signoff on the
project from client
 Support
o Flexsin will provide 30 days of free support post project goes go live to address any issue
 Project closure
o Flexsin will formally close out the project by reviewing a project closeout report with
Khaleej Times.
 Maintenance for 3 Months
o This will start post 30 days of free support period; client will be billed separately for the 3
months engagement and is a subject of approval by client.

Client Responsibilities
Our delivery of the services at the fees set forth herein, are dependent on Khaleej Times.
Involvement in all aspects of the services, the ability to provide accurate and complete information as
needed, timely and effective completion of the responsibilities, the accuracy and completeness of the
assumptions, and timely decisions and approvals by management as set forth herein. Some general
client responsibilities have been mentioned below:-
 Provide a client representative to participate in the Project. This client representative will:
o Work with the Flexsin Scrum Master to deliver the Project on schedule
o Make key day-to-day decisions and provide a single point of contact and accept
deliverables
 Provide, as needed, business user representatives or subject matter experts
 Provide, unless otherwise agreed to in writing, all test cases, test data, procedures, and
personnel needed to conduct the Acceptance Testing of the solution, including interfaces
 Provide access with proper licenses to all necessary tools and third party products required
for Flexsin to complete its assigned tasks

Flexsin Technologies Inc. | © Copyrights 2019 Page 7 of 48


Scope of Work

Project Technology Stack


Below is the list of the all the technology services that we will use to build and run the project:

Platforms Technology we’ll use Estimated for

IPad/iPhone App  XCode version 10.1 iPad/iPhone App


Development  Minimum OS version supported: iOS 12
 Device Support: iPhone 5, 5S, 5C, 6, 6+,
6S,7,7+, 8, 8+, X,XR, XS Max
 Programming Language -Swift 5.0
 Core Data - Local database
 Portrait Mode
 Third party Libraries like JSON, ASIHTTP,
Reachability, and more

Note: OS version support shall only be applicable on


the available latest OS version at the date of signing
the contract. All future OS versions during the
execution/ completion of the project shall be treated
as an Add-on and shall follow the Change
Management Process.

Tablet/Android  Eclipse IDE latest version of Android studio 3.4 Tablet/Android App
App  Minimum OS support: 4.x onwards
Development Programming in Java
 Maximum OS support: 9.0
 Local Database: SQLite/ORMLite
 Portrait Mode
 Programming Language –JAVA SE 11 & Kotlin
1.3

Note: Maximum OS version support shall only be


applicable on the available latest OS version at the
date of signing the contract. All future OS versions
during the execution/ completion of the project shall
be treated as an Add-on and shall follow the Change
Management Process.

Note: We will use the existing CMS of the Khaleej Times application and will update it accordingly as
per the requirement.

Flexsin Technologies Inc. | © Copyrights 2019 Page 8 of 48


Scope of Work

Project Delivery Model


In offshore delivery model, development team (resource) of Flexsin will be working from India office.
The advantage of this model is, client need not handle a big onsite team and this model is
economical too.

Note: During the execution phase if any on-site activity is required by client from Flexsin, commercial
for same will be submitted separately.

Flexsin Technologies Inc. | © Copyrights 2019 Page 9 of 48


Scope of Work

Project Pricing Model:


For this engagement, Flexsin proposes a Time & Material Pricing model. Time and Material is an
engagement model in which client pays only for time and resources spent on the project. It supports
agile development process.

TIME AND MATERIAL


You Send an Enquiry

Project We Analyze
Completion Requirements

Log We
Hours Propose
Review T&M
Work Model

Resource Project
Allocation Agreement
& Award

This model provides flexibility to define


and change project specifications at any
stage of its implementation.

Benefits of this model:

 Team’s capabilities are well known


 No ambiguity in the requirement gathering
 Quick delivery turnaround time
 Team size could be increased/ decreased as and when required.

Flexsin Technologies Inc. | © Copyrights 2019 Page 10 of 48


Scope of Work

Estimating Assumptions
The overall scope and related work estimates for this engagement were developed based on the
following assumptions. Material changes to these assumptions may impact the estimated effort,
schedule and fees associated with completing the work.

 The scope, approach, and deliverables for this initiative are based on our current
understanding of the work required to complete the objective.
 Information provided in client documents and statements prior to this Statement of Work is
assumed to be an accurate representation of the respective subject matter.
 Client key stakeholders will be accessible for key decision making throughout the course of
the initiative.
 The Flexsin team may perform portions of the work either on site or off site, depending on
the nature of each task but, commercials modeling has been done considering the off-shore
effort only. In case of on-site efforts commercials will be submitted separately.
 Hardware and software costs that may be required to complete this engagement are not
included in this Statement of Work and proposed commercials.
 Any cost related to the following items is excluded from the commercial mentioned in this
Statement of Work:
o Acquiring SSL certificate (in case required)
o Domain name Registration
o Procuring Servers and other hardware
o On and Off page SEO
o Server installation
o Any Activity related to the training
o Deliverables or activities not identified in this document are by definition out of
scope unless accompanied by an approved Project Change Request
o Travel, visa & stay for on-site activity

Project Team –Resource Allocation


ROLE RESPONSIBILITIES

Scrum Master  Oversee adherence to scrum practices


 Facilitate scrum meetings like sprint planning, standups, review,
retrospectives and requirement elaboration
Business Analyst  Backlogging the requirement initially over VSTS

Backend Web Developer  Development and unit testing.


Quality Analyst  Manage test plan, test cases, test report and execution of test
cycle.
IOS Developer  Deployment for the source code and code management
Android Developer  Development of frontend and unit testing.

UI/UX Team  Design and development for UI and UX.

Flexsin Technologies Inc. | © Copyrights 2019 Page 11 of 48


Scope of Work

Status Reporting
The Flexsin team will prepare a Weekly Status Report that captures relevant details related to work
progress and highlight any issues that require management attention. The Status Report will also include
budget and schedule tracking information. The Flexsin team will conduct a status meeting with the
Client team to review the Status Report and address any issues or activities that require attention.

Approving Deliverables
The Flexsin and Client teams will jointly execute a deliverable review process as defined in the
diagram below.

Flexsin Team Present Client review the Flexsin team revise Client approves
the deliverables to deliverables and the deliverables and deliverables
the client team provide feedback re -submits

Team

Within 3 Business Days Within 2 Business Days

There can be multiple iterations of this process as per the delivery plan; the Flexsin Delivery Manager
will provide the delivery plan after project kickoff.

Change Management
Either Flexsin or the Client may initiate a Change Request when some change or event has occurred
that may impact the scope of the engagement. Flexsin will prepare formal documentation that
includes description of the change with estimated implementation effort and impact to schedule and
budget. The Client can choose to approve or deny the change request. Flexsin will not proceed with
work related to the change request until the Client has issued formal approval.

Some examples of events that can cause a Change Request include the following:

 Change in Technical Scope – Client decides to include new functionality or capabilities not
identified in the initial scope and related work estimates.

 Change in Scope of Work – Client requests Flexsin perform work activities or produce
deliverables not originally assigned to the Flexsin team.

 Change in Approach – Material changes in the work approach due to circumstances outside
the control of the engagement team. Some examples include: Client team members not
available as planned, delays in client tasks or responsibilities, or equipment not available as
planned.

Flexsin Technologies Inc. | © Copyrights 2019 Page 12 of 48


Scope of Work

Project Commercial for Development


Sr. No Description Project Duration Commercials ( Excluding Taxes)

1. Fee for professional 5 months


services mentioned in this
Statement of Work

Resource Pricing Plan

Resources No. of Resources Engagement Type Rate per


Hour

Scrum Master 1 Shared 20

Business Analyst 1 Shared 15

UI/UX Designer 1 Shared 20

Native IOS Developer 1 Dedicated 20

Native Android Developer 1 Dedicated 20

Backend Developer 1 Shared 20

Quality Analyst 1 Shared 15

Notes:

 The Products and Services described in this SOW are bid on a time & material basis.
 Invoicing and delivery cycle will be monthly.
 Client will pay a an amount i.e. $5700+applicable taxes, as project commencement advance.
 All resources assigned to this project will be working on a Time & Material model. Monthly
Invoices will be raised based on the total efforts invested by Flexsin team per monthly cycle.
To track utilization of resource time, we will be using Time Doctor, a time tracking tool. All
the meeting timings during the month will be added manually or using time doctor.
 All applicable taxes and shipping fees will be assessed and applied to final invoice.
 Working hours / month: Flexsin's working day business hours as per IST schedule(10 AM IST -
7 PM IST)

Flexsin Technologies Inc. | © Copyrights 2019 Page 13 of 48


Scope of Work

Project Commercial for Maintenance


Flexsin Maintenance Plan includes automatic software updates and enhancements and access to
Technical Support during Business Hours.

Mainstream Services
 Adaptive Maintenance & Support
o We help you make the necessary modifications and revisions to your so ftware
for the ever changing needs of your business. Here is an overview of what we
do - Data format change, Localization and regulation change, Hardware
configuration change, Support Utility Modification, and Operating system
integration.

 Corrective Maintenance & Support


o We help you fix errors in your software system, be it logical errors, coding
errors, or design errors. Moreover, we look into any bug that may arise in your
software algorithms.

 Perfective Maintenance & Support


o Constant upkeep and special attention is needed to make the most of the
technology for your business. We look into your software for modifications,
rectifications, editing, deletions, additions and enhancements.

 Preventive Maintenance
o Proactive and Preventive - that is how we define the efficiency of our services.
Based on customer feedback and past incidents, we prepare your software for
future requirements.

Project Commercial for Maintenance Plan (Optional)


Maintenance Fee:

 The contract will be for a 3 months period and will be billed separately other than the cost
of services mentioned in this SOW; the acceptance of this contract is a subject of approval
by client. After 3 months period, a month by month maintenance plan is available, to meet
your company’s ongoing needs. (Cancellation of Contract requires thirty - 30 - days advance
written notice)

Resources Number of Resources Hours per Cost (in US


month $) per
month
Native Mobile (iOS/Android) Developer 1 80 USD 1200

 Offshore delivery and Time & Material pricing Model


 Easily Extendable: - If you feel at any time that you need an extra resource for your project
or for any other project, we can add it to your team anytime as we follow agile process.

Flexsin Technologies Inc. | © Copyrights 2019 Page 14 of 48


Scope of Work

 The billing cycle will be Monthly.

Response Time:
 Every issue is of high importance to the company but these issues are segregated into three
categories as follows:

S.No. Priority Level Issue Description Response Time


P0 Low Issues like spelling mistake, Within 24 Hours
UI issues
P1 Normal Data population error, Within 16 Hours
particular feature has bug
P2 High System crash/Site Within 8 Hours
breakdown, Key modules
not working

 Please note that response time denotes the time in which assigned resource will respond
back on the issue however it doesn’t imply the issue resolve time.
 The time required to resolve any issues totally depends upon the issue category and its
dependency on other issues.

Flexsin Technologies Inc. | © Copyrights 2019 Page 15 of 48


Scope of Work

Acceptance of Statement of work


BY ACCEPTANCE OF THIS DOCUMENT, BOTH RECIEPIANTS AGREE TO BE BOUND BY THE ABOVE
MENTIONED STATEMENT.

Name: Amit Sharma Client name:

Signature: Signature:

Title: COO (Chief Operating Officer) Title:

Date: 16th May, 2019 Date:

Address: : G-63, Sector 63, Noida, Uttar Address:


Pradesh, India

Telephone: +91- 120 - 4206342 Telephone:

Email ID: info@flexsin.com Email ID:

Flexsin Technologies Inc. | © Copyrights 2019 Page 16 of 48


Scope of Work

APPENDIX

Appendix List
 APPENDIX A: Our Preferred Methodology
 APPENDIX B: Design Process
 APPENDIX C: Testing
 APPENDIX D: Deployment

Flexsin Technologies Inc. | © Copyrights 2019 Page 17 of 48


Scope of Work

APPENDIX A: Our Preferred Methodology


Agile development accelerates the delivery of initial business value and through a process of
continuous planning and feedback, can ensure that value is continuing to be maximized throughout
the development process. As a result of this sprint planning and feedback loop, teams can
continuously learn the current coding patterns project, align the delivered software with desired
business needs, easily adapting to changing requirements throughout the process.

We would highly recommend the agile process as this may involve experts from the development
team, Domain consultant, and Design team

Picture 1: Agile Methodolgy

Scrum: Scrum is a framework used by teams to manage their work. Scrum implements the principles
of Agile as a concrete set of artifacts, practices, and roles.

Flexsin Technologies Inc. | © Copyrights 2019 Page 18 of 48


Scope of Work

Scrum Lifecycle:

The following diagram details the Scrum Lifecycle. Scrum is iterative. The entire Lifecycle is
completed in fixed time-period called a Sprint. A Sprint is typically 2-4 weeks long.

Picture 2: Sprint Lifecycle

Sprint Cycles: Typically, a Sprint cycle is a two-week period with a defined Start date and an End
date with prior agreement on the user stories/tasks. During every cycle we implement some
identified user Stories and tasks, you can achieve within each cycle, so development estimated
margins of error is reduced. No other features are normally considered during the cycle, so
interruptions are minimized. In case a single feature is estimated to take longer than one cycle the
problem should be broken down further and based on the feasibility and importance of the timelines
more developers can be added.

Scrum Roles:

 Product Owner: Responsible for what the team is building, and why they’re building it. The
product owner is responsible for keeping the backlog up-to-date and in priority order.
 Scrum Master: Responsible to ensure the scrum process is followed by the team. Scrum
Master is continually on the lookout for how the team can improve, while also resolving
impediments (blocking issues) that arise during the sprint. Scrum Masters play several roles
such as part coach, part team member, and part cheerleader.
 Scrum Team: These are the individuals that actually build the product. The team owns the
engineering of the product, and the quality that goes with it.

Project Management Tool: We plan to use Microsoft Azure DevOps which is a collaboration
tool that organizes your projects into boards. In one glance, it tells you what's being worked on,
who is working on what, and where something is in a process. For additional information please
refer to what is Azure DevOps at https://www.youtube.com/watch?v=JhqpF-5E10I

Flexsin Technologies Inc. | © Copyrights 2019 Page 19 of 48


Scope of Work

Product Backlog: The Product Backlog is a prioritized list of items that needs to be delivered by the
project team. The Product Owner owns the backlog and adds, changes, and reprioritizes as needed.
The items at the top of the backlog should always be ready for the team to execute on.

Sprint Planning and Sprint Backlog: In Sprint Planning, the team chooses the backlog items they
will work on in the upcoming sprint. The team chooses backlog items based on priority and what
they believe they can complete in the sprint. The Sprint Backlog is the list of items the team plans to
deliver in the sprint. Often, each item on the Sprint Backlog is broken down into tasks. Once all
members agree the Sprint Backlog is achievable, the Sprint starts.

Spring Execution and Daily Scrum: Once the Sprint starts, the team executes on the Sprint Backlog.
Scrum does not specify how the team should execute. That is left to the individual to decide. Scrum
defines a practice called a Daily Scrum, often called the Daily Standup. The Daily Scrum is daily
meeting limited to 15 minutes. Team members often stand during the meeting, to ensure it stays
brief. Each team member will provide brief status of the progress since yesterday, plan for today and
anything impeding their progress. To aid the Daily Scrum, teams often review two artifacts:

 The Task Board: Lists each backlog item the team is working on, broken down into the tasks
required to complete it. Tasks are placed in To Do, In Progress, and done columns based on
their status. It provides a visual way of tracking progress for each backlog item.

Flexsin Technologies Inc. | © Copyrights 2019 Page 20 of 48


Scope of Work

 The Sprint Burn down: A graph that plots the daily total of remaining work. Remaining work
is typically in hours. It provides a visual way of showing whether the team is “on track” to
complete all the work by the end of the Sprint.

Sprint Review & Sprint Retrospective: At the end of the Sprint, the team performs two practices:

 Sprint Review: The team demonstrates what they’ve accomplished to stakeholders. They
demo the software and show its value.
 Sprint Retrospective: The team takes time to reflect on what went well and which areas
need improvement. The outcome of the retrospective is actions for next sprint.

Increment: The product of a Sprint is called the “Increment” or “Potentially Shippable Increment”.
Regardless the term, a Sprint’s output should be of shippable quality, even if it’s part of something
bigger and can’t ship by itself. It should meet all the quality criteria set by the team and Product
Owner.

Repeat. Learn. Improve.

The entire cycle is repeated for the next sprint. Sprint Planning selects the next items on the Product
Backlog and the cycle repeats. While the team is executing the Sprint, the Product Owner is ensuring
the items at the top of the backlog are ready to execute in the following Sprint.

This shorter, iterative cycle provides the team with lots of opportunities to learn and improve. A
traditional project often has a long lifecycle, say 6-12 months. While a team can learn from a
traditional project, the opportunities are far less than a team who executes in 2-week sprints, for
example.

This iterative cycle is, in many ways, the essence of Agile.

Scrum is very popular because it provides just enough frameworks to guide teams, while giving them
flexibility in how they execute. Its concepts are simple and easy to learn. Teams can get started
quickly and learn as they go. All of this makes Scrum a great choice for teams just starting to
implement agile principles.

Time Tracking Tool: To calculate the actual working hours, we plan to use a time tracking tool
called Time Doctor. It is a simple application that every virtual workforce installs on their machines to
track time, activity levels, and take screenshots. Users or Employees can select a project, and Time
Doctor will then track time and activity to that specific project, which becomes viewable in the web
application. At the end of the month, Time Doctor computes and reports actual person hours worked
on the project. This helps clients to make payments at the end of the month for actual person hours
worked. For more information, please refer to what is Time Doctor at:

Flexsin Technologies Inc. | © Copyrights 2019 Page 21 of 48


Scope of Work

https://www.youtube.com/user/timedoctorsoftware/ . The best part of working with Flexsin is that


every Employee as well as every Consultant (if any) assigned to the project uses Time Doctor.

Flexsin Technologies Inc. | © Copyrights 2019 Page 22 of 48


Scope of Work

APPENDIX B: Design Process

Wire framing/ Prototyping Process:

A prototype is a draft version of a product that allows you to explore your ideas and show the
intention behind a feature or the overall design concept to users before investing time and money
into development. In general, there are two types of prototypes namely Low-fidelity and High-
fidelity. A Low-fidelity is something that allows click-through of a few pieces of content whereas
High-fidelity is a fully functioning site.

Design fidelity refers to the level of detail and functionality included in a prototype. Fidelity can vary
in interactivity, visuals, content and commands, and other areas. When you’re getting ready to begin
prototyping, you’ll need to decide how closely you want it to match the result, which will also dictate
how much time and energy you need to put into it. There two types of Fidelity Designs

 Low-fidelity prototypes are simple and low-tech concepts. All you need to get started is a
pen and paper. The goal is to turn your ideas into testable artifacts that you can then use to
collect and analyze feedback in the early stages.

Low Fidelity Sample

 High-fidelity prototypes are highly functional and interactive. They are very close to the final
product, with most of the necessary design assets and components developed and
integrated. Hi-fi prototypes are often used in the later stages to test usability and identify
issues in the workflow.

Flexsin Technologies Inc. | © Copyrights 2019 Page 23 of 48


Scope of Work

High Fidelity Sample

Benefits of Low-Fidelity Prototyping


 Focus on design and concepts: Without the pressure of making every page linked, clickable,
and interactive, you can worry less about the more technical parts of prototyping and spend
more energy on ideation.

 Real-time iteration: Let’s say you’re gathering customer feedback on your sketched
prototype. During this test, you can quickly redo part of the design based on customer
comments in real time, in just a few minutes.

 Accessible to everyone: Everyone can doodle. With low-fidelity prototyping, even non-
designers can participate in the design process and think through content, menus, and flow.

Benefits of High-Fidelity Prototyping


 More familiar to users: High-fidelity prototypes look like live software to customers, meaning
participants would be more likely to behave naturally during testing.

 Pinpoint specific components to test: You can dive deep into a single component (like flow,
visuals, engagement, or navigation) during user testing. This allows you to get detailed
feedback on certain elements of the design that would not be possible with pen and paper.

 More presentable to stakeholders: Clients and team members will get a clear idea of how the
product will look and work before it ever goes live. You can also set clear expectations with
developers in the early stages of how much time will be needed to build your prototype and
have a finished product.

Note: High fidelity design has sample content and images. The client can provide copyrighted
images and content during the development of high fidelity designs or may have the execution team
to do the same by providing the necessary image and content resources.

Flexsin Technologies Inc. | © Copyrights 2019 Page 24 of 48


Scope of Work

For speed and flexibility, low-fidelity prototypes may be best to start as they can been done
on a very high level for important pages. And upon approval of the low fidelity, we may
choose high-fidelity prototypes to showcase the actual design.

Flexsin Technologies Inc. | © Copyrights 2019 Page 25 of 48


Scope of Work

APPENDIX C: Testing
Flexsin's QA engineers perform stringent quality assurance and testing including business cycle tests,
white box unit testing, Functional Testing, Load Balancing, Usability, security, Performance,
Verification and Acceptance tests throughout software development process to identify bugs and
achieve highest quality deliverables.

 Unit testing is performed by Development Team.


 Functional Testing is performed by QA Team.
 Non Functional Testing is performed by QA Team.
 Maintenance Testing is performed by QA Team.
 Automated Code Testing performed by Development Team.

Unit Test
UNIT testing is defined as a type of software testing where individual units/components of software
are tested:
• Developers Basically focus Tests are written before the code
• Rely heavily on testing frameworks.
• All classes in the applications are tested
• Quick and easy integration is made possible
Steps to be executed by the Development Team:
• Backlog creation
• Creation User story for the particular task
• Creation of Unit Test cases
• Execution of Unit Test cases ( Smoke Testing)
• Bug Fixation
• Sharing the results with QA Team

Flexsin Technologies Inc. | © Copyrights 2019 Page 26 of 48


Scope of Work

Example to Setup Unit Test

Flexsin Technologies Inc. | © Copyrights 2019 Page 27 of 48


Scope of Work

Functional Testing
Smoke Testing

Smoke testing is a process to check whether the deployed build is stable or not as to confirm if the
QA team can proceed with further testing.

Smoke tests are a minimal set of tests run on each build.

Smoke testing is a process where the software build is deployed to QA environment and is verified to
ensure the stability of the application. It is also called as "Build verification Testing".

In simple terms, we are verifying whether the important features are working and there are no
showstoppers in the build that is under testing.

Feature Testing:

A Software feature can be defined as the changes made in the system to add new functionality or
modify the existing functionality.

Each feature is said to have a characteristics that is designed to be useful, intuitive and effective.

In reality, a new test set is created for testing that feature corresponding to that cycle of that release.
The extremely important and generally used new features ought to be tested thoroughly in each
build of that release and also regression testing should be done relevant to those areas.

Integration Testing:

In integration testing, individual software modules are integrated logically and tested as a group.

A typical software project consists of multiple software modules, coded by different programmers.

Integration Testing focuses on checking data communication amongst these modules.

Regression Testing:

Regression Testing is defined as a type of software testing to confirm that a recent program or code
change has not adversely affected existing features.

Regression Testing is nothing but full or partial selection of already executed test cases which are re-
executed to ensure existing functionalities work fine.

This testing is done to make sure that new code changes should not have side effects on the existing
functionalities. It ensures that old code still works once the new code changes are done.

Exploratory Testing:

During testing phase where there is severe time pressure, Exploratory testing technique is adopted
that combines the experience of testers along with a structured approach to testing.

Exploratory testing often performed as a black box testing technique, the tester learns things that
together with experience and creativity generate new good tests to run.

Flexsin Technologies Inc. | © Copyrights 2019 Page 28 of 48


Scope of Work

User Acceptance Testing:

User acceptance is a type of testing performed by the Client to certify the system with respect to the
requirements that was agreed upon.

This testing happens in the final phase of testing before moving the software application to Market
or Production environment.

Non - Functional Testing:


Browser Compatibility Testing:

Compatibility is a non- functional testing to ensure customer satisfaction. It is to determine whether


your software application or product is proficient enough to run in different browsers, database,
hardware, operating system, mobile devices, and networks.

As a Non- functional tests, Compatibility testing is to endorse that the application runs properly in
different browsers, versions, OS and networks successfully.

Performance Testing:

Performance testing, a non-functional testing technique performed to determine the system


parameters in terms of responsiveness and stability under various workload.

Performance testing measures the quality attributes of the system, such as scalability, reliability and
resource usage.

Load Testing:

Load testing is performance testing technique using which the response of the system is measured
under various load conditions.

The load testing is performed for normal and peak load conditions.

Flexsin Technologies Inc. | © Copyrights 2019 Page 29 of 48


Scope of Work

Example Explaining QA Process


Sprint Planning Backlog & Task Creation

Assigning Task and Creating User Story

Flexsin Technologies Inc. | © Copyrights 2019 Page 30 of 48


Scope of Work

Test Plan Creation and attaching with current Sprint

Flexsin Technologies Inc. | © Copyrights 2019 Page 31 of 48


Scope of Work

Configuration of Test Plan

Flexsin Technologies Inc. | © Copyrights 2019 Page 32 of 48


Scope of Work

Test Scenarios Creation/ Test Cases Creation

Flexsin Technologies Inc. | © Copyrights 2019 Page 33 of 48


Scope of Work

Test Cases Execution

Flexsin Technologies Inc. | © Copyrights 2019 Page 34 of 48


Scope of Work

Bug Reporting

Flexsin Technologies Inc. | © Copyrights 2019 Page 35 of 48


Scope of Work

Test Results

Flexsin Technologies Inc. | © Copyrights 2019 Page 36 of 48


Scope of Work

Email Notifications on Bug Assigning

Flexsin Technologies Inc. | © Copyrights 2019 Page 37 of 48


Scope of Work

Flexsin Technologies Inc. | © Copyrights 2019 Page 38 of 48


Scope of Work

Test Results

Flexsin Technologies Inc. | © Copyrights 2019 Page 39 of 48


Scope of Work

APPENDIX D: Deployment

Continuous Integration
Continuous Integration (CI) aims at integrating the work products of individual developers into a
central repository early and frequently. When done several times a day, CI ensures early detection of
integration bugs. This, in turn, results in better collaboration between teams, and eventually a better-
quality product.

Goal: The goal of CI is to make the process of integration a simple, easily-repeatable, and everyday
development task to reduce overall build costs and reveal defects early in the cycle. It gets
developers to carry out integration sooner and more frequently, rather than at one shot in the end.
Since in practice, a developer will often discover integration challenges between new and existing
code only at the time of integration, if done early and often, conflicts will be easier to identify and
less costly to solve.

Process: With CI, developers frequently integrate their code into a common repository. Rather than
building features in isolation and submitting each of them at the end of the cycle, they continuously
build software work products several times on any given day. Every time the code is inputted, the
system starts the compilation process, run unit tests and other quality-related checks as needed.

Dependencies: CI relies heavily on test suites and an automated test execution. When done
correctly, it enables developers to perform frequent and iterative builds, and deal with bugs early in
the lifecycle.

Steps for the CI to work

Development Team to Code Repository


this is the first step during which developers will push their code to the repository.

CI Server:
During this phase, the code integration is performed. Jenkins can be used as a simple CI server or
turned into the continuous delivery hub for any project. You can schedule the build, trigger it
manually, start when there is a change in the Code Repository or you can setup automatically
build trigger when build push on a respective branch.

You may define different pre-requisites and post-requisites. For example, on success, trigger the
package generation of assemblies.
When the build is completed and is a success, the NuGet package is generated and versioned before
uploading it to the artifact repository automatically. An example of the Artifact Repository is ProGet.
The NuGet package contains the assemblies that need to be deployed to the different Environments.

Flexsin Technologies Inc. | © Copyrights 2019 Page 40 of 48


Scope of Work

Continuous Delivery
Continuous Delivery (CD) aims to automate the software delivery process to enable easy and assured
deployments into production —at any time. By using an automatic or manual trigger, CD ensures the
frequent release of bug-free software into the production environment and hence into the hands of
the customers.

Goal: The main goal of CD is to produce software in short cycles so that new features and changes
can be quickly, safely, and reliably released at any time. Since CD involves automating each of the
steps for build delivery, it minimizes the friction points that are inherent in the deployment or release
processes and ensures safe code release can be done at any moment.

Process: CD executes a progressive set of test suites against every build and alerts the development
team in case of a failure, which then rectifies it. In situations where there are no issues, CD conducts
tests in a sequential manner. The end result is a build that is deployable and verifiable in an actual
production environment.

Dependencies: Since CD aims at building, testing, and releasing software quickly and frequently, it
depends on an automated system that helps the development team to automate the testing and
deployment processes. This is to ensure the code is always in a deployable state.

Flexsin Technologies Inc. | © Copyrights 2019 Page 41 of 48


Scope of Work

Steps for the CD to work


When the package is uploaded on the Artifact Repository, a request is sent to the Octopus Deploy
Server to trigger the deployment process. Once the deployment request is received at the Octopus
Deploy Server, it will fetch the NuGet package using the version number from the Artifact Repository.

The way Octopus Deploy works is as follows: it has different tentacles which are configured on the
different servers. When the code is pushed to a Cluster, the code gets deployed to all the servers
which have a tentacle configured as shown in the diagram below:

CI-CD with Cloud Using Dockers

Prerequisites

 A VSTS account. If you don't have one, you can create one for free. If your team already has
one, then make sure you are an administrator of the team project you want to use.
 An Azure subscription. If you don't have one, you can create one for free.

Create an Azure Container Registry

You use Azure Container Registry to host the Docker image that is published by the CI process.
Follow the steps below to create and configure a registry. In later steps, you use VSTS to deploy the
image to an Azure Web App for Containers.

 Sign into your Azure Account at https://portal.azure.com.


 In the Azure Portal, choose New, Containers, and then choose Azure Container Registry.

Flexsin Technologies Inc. | © Copyrights 2019 Page 42 of 48


Scope of Work

 Enter a Registry name, Resource Group, and select a Location. For Admin user,
choose Enable and then choose Create.
 Wait for the Azure Container Registry deployment to finish.

To configure a CI build process for your app, the source code needs to be in a version control
system. VSTS and TFS integrate with various version control systems such as Git in VSTS

Set up continuous integration


A continuous integration (CI) process automatically builds and tests code every time a team member
commits changes to version control. Here you'll create a CI build definition that helps your team
keep the master branch clean.

Create a new build definition.


You are taken to the Build & Release hub and asked to select a template for the new build
definition.

 In the right panel, click Start with an Empty Process.


 For the Default agent queue, select Hosted Linux/Windows/Mac. This is how you can
use our pool of agents that have the software you need to build your app.
 Click Get sources and then: the new build definition is automatically linked to your
repository.
 Select + Add Task to add another task to the build definition. From the displayed task
catalog, select Docker task. Change the parameters for this task as follows:
o Azure subscription: Select a connection from the list under Available Azure Service
Connections or create a more restricted permissions connection to your Azure
subscription. If you are using VSTS and if you see an Authorize button next to the
input, click on it to authorize VSTS to connect to your Azure subscription.
o If you are using TFS or if you do not see the desired Azure subscription in the list of
subscriptions, see Azure Resource Manager service endpoint to manually set up the
connection.
o Azure Container Registry: Select the Azure container registry that you created
above.
o Action: Build an image.
 Select + Add Task to add another Dockers task to the build definition. Make sure that the
task is inserted after the previous Dockers task. Change the parameters for this task as
follows:
o Azure subscription: Same as in previous task.
o Azure Container Registry: Same as in previous task.
o Action: Push an image.
 Click the Triggers tab in the build definition. Enable the Continuous Integration trigger.
This will ensure that the build process is automatically triggered every time you commit a
change to your repository.

Flexsin Technologies Inc. | © Copyrights 2019 Page 43 of 48


Scope of Work

 Click Save and queue to kick off your first build. On the Queue build dialog box,
click Queue.
 A new build is started. You'll see a link to the new build on the top of the page. Click the link
to watch the new build as it happens.

Deploy to an Azure Web App for Containers

Create an Azure web app to host a container

 Sign into your Azure Account at https://portal.azure.com.


 In the Azure Portal, choose New, Web + Mobile, and then choose Web App for
Containers.
 Enter a name for your new web app, and select or create a new Resource Group. Then
choose Configure container and select Azure Container Registry. Use the drop-down lists
to select the registry you created earlier and the Dockers image and tag that was generated
by the build definition.
 The Dockers tasks you used in the build definition when you created the build artifacts push
the Dockers image back into your Azure Container Registry. The web app you created here
will host an instance of that image and expose it as a website.
 Wait until the new web app has been created. Then you can create a release definition as
shown in the next section.

Why use a separate release definition instead of the automatic deployment feature available in
Web App for Containers?
You can configure Web App for Containers to automatically configure deployment as part of the
CI/CD process so that the web app is automatically updated when a new image is pushed to the
container registry (this feature uses a web hook). However, by using a separate release definition in
VSTS or TFS you gain extra flexibility and traceability. You can:

 Specify an appropriate tag that is used to select the deployment target for multi-
environment deployments.
 Use separate container registries for different environments.
 Use parameterized start-up commands to; for example, set the values of variables based on
the target environment.
 Avoid using the same tag for all the deployments. The default CD process for Web App for
Containers uses the same tag for every deployment. While this may be appropriate for a tag
such as latest, you can achieve end-to-end traceability from code to deployment by using a
build-specific tag for each deployment. For example, the Dockers build tasks let you tag your
images with the Build.ID for each deployment.

Create a release definition

 In the Build & Release hub, open the build summary for your build.
 In the build summary page, choose the Release icon to start a new release definition.

Flexsin Technologies Inc. | © Copyrights 2019 Page 44 of 48


Scope of Work

 If you have previously created a release definition that uses these build artifacts, you will be
prompted to create a new release instead. In that case, go to the Releases tab page and start
a new release definition from there by choosing the + icon.
 Select the Azure App Service Deployment task and choose Apply.
 Open the Tasks tab and select the Azure App Service Deployment task. Configure the
properties as follows:
o Azure Subscription: Select a connection from the list under Available Azure Service
Connections or create a more restricted permissions connection to your Azure
subscription. If you are using VSTS and if you see an Authorize button next to the
input, click on it to authorize VSTS to connect to your Azure subscription. If you are
using TFS or if you do not see the desired Azure subscription in the list of
subscriptions, see Azure Resource Manager service endpoint to manually set up the
connection.
o App Service Name: Select the name of the web app from your subscription.When
you select the Docker-enabled app service, the task recognizes that it is a
containerized app, and changes the property settings to show the following:
o Registry or Namespace: Enter the path to your Azure Container Registry. Typically
this is your-registry-name.azurecr.io
o Repository: Enter the name of your repository, which is typically the name of the app
you started with.
o Tag: Enter $(Build.BuildId) . The tag that was created automatically is the build
identifier.
o Save the release definition.

Create a release to deploy your app

You're now ready to create a release, which means to start the process of running the release
definition with the artifacts produced by a specific build. This will result in deploying the build:

1. Choose + Release and select Create Release.


2. In the Create new release panel, check that the artifact version you want to use is selected
and choose Create.
3. Choose the release link in the information bar message. For example: "Release Release-1 has
been created".
4. Open the Logs tab to watch the release console output.
5. After the release is complete, navigate to your site running in Azure using the Web
App URL http://{web_app_name}.azurewebsites.net , and verify its contents.

Flexsin Technologies Inc. | © Copyrights 2019 Page 45 of 48


Scope of Work

GIT & Branch Setup of the Project


After setup the project we need to configure GIT for the project. The procedure is mention below:

 First, we create a repository. Like Web-Frontend, Web-Backend, Socket, Mobile


IOS, and Mobile Android.
 Each repository has own Master branch.
 Create a Development branch connect with the Master branch.
 Developer, QA, Staging and Production branch would also connect with
the Development branch.
 Developer merges the code in the development branch.
 QA branch: Once lead developer finds develop branch code stable then he pushes code to
QA branch for testing team. => Need QA server to be connected for testing.
 Staging branch: Once QA team will give green signal then the code will be
a push to staging branch for a customer demo. => Need staging server to be connected.
This branch will always stable.
 Production Branch: Once Customer confirms the demo then we will push code to production
branch with versioning. => When a customer shares their server then we will push code to
the client’s server.

Flexsin Technologies Inc. | © Copyrights 2019 Page 46 of 48


Scope of Work

Flexsin Technologies Inc. | © Copyrights 2019 Page 47 of 48

Potrebbero piacerti anche