You are on page 1of 53

UNIT-4

Minimum Viable Product


 MVP: A product that contains just enough functionality to
be released to the market.
 A Minimal Viable Product (MVP) in software development
refers to a version of a product that includes only the core
features necessary to meet the basic needs of early users.
 The primary goal of an MVP is to quickly bring a functional
version of the product to market in order to gather user
feedback.
 This allows you to quickly respond to changes if necessary
and build the right and complete set of features afterward.
Minimum Viable Product
 Key purpose
 To test the 'look and feel 'of the application.
 Refine the User Interface before the actual coding.
 To start gathering user feedback and gaining profits
early on.
 An MVP is supposed to help you avoid failure, or even
if you fail, this happens in the early phases of
development, where you can quickly make changes
and improve.
MVP Vs Prototyping
 One common misconception about MVP is that it's
same as a prototype.
 A prototype is just a sketch or draft created to visualize
and demonstrate how the final product will look and
function.
 Prototypes are more focused on design, user interface,
and user experience. They aim to showcase the visual
and interactive aspects of the product.
MVP Vs Prototyping
 MVP is the simplest version of a product that includes
only the core features necessary to address the needs
of the end users.
 MVPs are developed after the prototype stage and are
typically the first version of the product that users can
interact with.
 MVPs are typically used for market validation or
assessing product viability.
MVP Vs Prototyping
MVP Prototype
prototype is a visual representation of MVP is a functional product that can be
the product's design and user used by real users to solve a problem.
interactions.

Prototypes are often created early in the MVPs are developed after the prototype
design process. stage.

Involves Coding and Testing No coding and Testing.


MVP is market ready Prototype is not market ready.
Prototypes are used to gather internal MVPs are released to real users for
feedback and align stakeholders. testing and validation.
How Do You Build an MVP?
 MVP follows the typical Agile iterative approach.
 Development teams divide the project into several
iterations based on the problem you want to solve with
your product.
 During each iteration phase, teams constantly verify
and analyse if a product meets the target audience's
needs.
 Here is Step-by-step guide on how to build an MVP.
How Do You Build an MVP?
1. Identify Your Target Audience
Define the specific group of users who will benefit the most
from your product. Understand their needs and
preferences.
2. Define the problem
Get a clear statement of the problem your product solves.
3. Define the solution
 designers start sketching different solutions.
 compare all solution sketches and decide on what
would be the best fit.
How Do You Build an MVP?
4. Start working on the MVP
 Start building the MVP based on the core features.
 Before releasing the MVP to users, perform internal
testing to identify and fix any bugs. This step ensures a
smoother user experience.
5. Launch to a Limited Audience: Release the MVP to
a small group of target users. This early release helps
you gather valuable feedback and insights about the
product's usability and effectiveness.
How Do You Build an MVP?
6.Gather User Feedback: Encourage users to provide
feedback on their experience with the MVP. Listen to
their suggestions and ideas for improvement.
7. Start next round of iterations. Iterate on the MVP
to refine the existing features based on user feedback
and add new features that enhance the product's value
proposition.
Advantages of MVP
1. Saving Time and Money
 Creation of a full-featured software application takes
long time and requires a big budget.
 An MVP version can be launched to the market much
faster without investing excessive time and money
upfront.
 By focusing on building only basic functions, you are
spending your money wisely, avoiding budget
overruns.
Advantages of MVP
2.Attracting Investors
 If you need to attract investors to your organization, there
is no better way than using an MVP.
 A functional MVP demonstrates tangible progress and
validates your vision, improves chances of investing in your
product by potential investors.
3. User-Centered Development
 Releasing an MVP to real users provides you with valuable
feedback early in the development cycle.
 This feedback helps you identify potential issues,
understand user preferences, and make informed
improvements.
Advantages of MVP
4.Risk Mitigation:
 Going to the market implies high risks of being
unaccepted by customers.
 If something like this happens with a fully-featured
product, you are losing all money and efforts spent on
development.
 In the case of an MVP, you haven't spent too much
time and money on its development process, so
potential losses are diminished.
Advantages of MVP
5. Faster Time-to-Market:
 Bringing a functional product to market more quickly,
can give you a competitive edge.
 One of the most significant benefits of MVP is
attracting more money for further development.
Therefore, a quick start means faster earnings.
6. Market Validation:
 An MVP helps validate your assumptions about the
product's value and market demand.
 If users are willing to use and pay for your MVP, it's a
strong indicator of a viable product concept.
Advantages of MVP
7. Scalability
 After releasing an MVP and getting real feedback, you
can clearly see what changes are needed and what new
features should be developed next.
 Based on the feedback , the developers can polish the
features proposed by an MVP and further iterate by
adding functionalities.
 You can scale the product to a broader audience
through a steady stream of improvements.
Drawbacks of MVP
1. Limited Features:
 The primary disadvantage of an MVP is that it offers
limited features and functionality compared to a fully
developed product. This can make potential users
unsatisfied who are looking for a more
comprehensive solution.
 Users might find the MVP lacking in critical
features, causing frustration and potential churn.
Drawbacks of MVP
2. Compromising Design
 Making an MVP look attractive means a lot of time
spent on UI(UserInterface)/UX(UserExperience)
design. However, if you spend lots of time on UI/UX
design, your customers will have to wait longer for the
functionality.
 In the case of MVP, features are the priority. It would
be reasonable to compromise the design and focus on
functionality. Focus on usability and simplicity instead
of a perfect design.
Drawbacks of MVP
3. Technical debt
 Rushing to release an MVP can make developers
choose a stack of technologies that don't allow scaling
the project in the future.
 This can impede future development and cause
difficulties when adding new features or making
necessary changes.
 To avoid this trap, always make sure the technologies
you select allow scaling in the future.
Drawbacks of MVP
4. Scalability Challenges: If the MVP's architecture is
not designed with scalability in mind, it might struggle
to handle increased user loads as the product gains
popularity.
5. Brand Perception: A poorly executed or Lowquality
MVP can result in a negative perception of your brand.
Users may not be impressed with incomplete
product, making it difficult to regain their trust later.
How DevOps facilitates MVP
Development?
 The purpose behind developing a minimum viable
product (MVP) is to understand the customer
behaviour about the product and learn maximum.
 Learning as well as understanding should be a
continuous process that requires a development
process that adds value.
 DevOps practices streamline the development process,
enhance collaboration, and provide the necessary
automation and monitoring.
How DevOps facilitates MVP
Development?
 With DevOps, MVP can be developed, tested, and
deployed quickly while maintaining a high level of
quality.
 DevOps allows teams to gather user feedback early and
make informed decisions about the direction and
enhancements of the MVP.
 Here is how Devops help MVP development.
How DevOps facilitates MVP
Development?
1. Continuous Updates
 Developers built MVP initially with assumptions about
customer needs in mind and then refine the application
further depending on the customer responses.
 DevOps makes a difference here.
 Its continuous integration and continuous delivery
(CI/CD) tools help in automate the process of integrating
code changes, running tests, and deploying the application
to production or staging environments.
 MVP can be easily updated according to dynamically
changing scenarios,i.e DevOps can accelerate MVP
development.
How DevOps facilitates MVP
Development?
2. Microservices
 Microservices is a concept in DevOps where the
application is broken down into several loosely held
parts.
 For instance, when a social media app is being built, its
various components such as a newsfeed, stories, chat
box, etc., are built separately as microservices.
 The prime_benefit of microservices is that the
updating, maintenance and bug-fixing process is
simplified and easy to manage.
How DevOps facilitates MVP
Development?
3. Extensive Automation
 DevOps and Automation go hand in hand.
 Right from continuous business planning to feedback
optimization, there is plenty of scope for automation
in MVP .
 It also quickens the pace at which routine tasks are
done.
 Developers can make more features and deployments
faster with in a short span of time.
How DevOps facilitates MVP
Development?
A Scalable Foundation
 Infrastructure as code or IAC, is a key DevOps practice that
involves provisioning (create and setup) computing
infrastructure using code and automation.
 In traditional way, setting up and configuring
infrastructure components like servers, networks, and
databases often involved manual processes, which could be
error-prone, time-consuming, and difficult to reproduce
consistently.
 IAC addresses these challenges by treating infrastructure
configuration as code, enabling automation, version
control, and reproducibility.
Application Deployment
 Application deployment(software deployment) refers
to the process of making a software application
available and operational for end users.
 It is a process of installing , configuring, enabling an
application to a specific URL on a server.
 Once the process of deploying the application(s) has
been completed it becomes publicly accessible on the
URL .
Application Deployment
 In DevOps, deployment refers to the process of
delivering software updates and applications to
production environments.
 This typically involves building, testing, and releasing
code changes, as well as configuring and maintaining
the infrastructure required to run the software.
 To facilitate deployment, DevOps teams often use
automation tools and practices such as continuous
integration and delivery (Cl/CD) to streamline the
process and ensure that updates can be deployed
quickly and consistently.
Application Deployment
 The goal of deployment in DevOps is to make the
process of updating a production environment as
efficient, reliable, and as fast as possible and to make
code changes available to end users as quickly as
possible, while minimizing downtime and disruption.
Continuous Integration
 Continuous Integration (CI) is a practice in Devops
that involves the frequent and automated integration
of code changes from multiple developers into a
shared code repository.
 The main goal of CI is to detect and address
integration issues as early as possible, promoting
collaboration, reducing errors, and ensuring a
smoother software development process.
 Jenkins is the most popular tool used for continuous
integration.
How Does Cl Work
How Does Cl Work
 The entire CI pipeline process is automated to track
and integrate code changes smoothly.
 The CI workflow includes
 Code Repository: Developers writes code for new
features or bug fixes in isolated branches with in a
version control system(e.g.,Git).
 Developers commit(save) their code changes to the
shared code repository multiple times a day.
How Does Cl Work
 Automated Build and Test: whenever code changes
are committed to the repository, an automated build
process is triggered. This process compiles the new
code, resolves dependencies, and creates an executable
artifact.
 After this automated tests (unit test, integrate test etc)
are executed on build.
 Fast Feedback: If any tests fail, developers are
notified, and the code is returned to the development
team for bug fixes.
How Does Cl Work
 Continuous Integration Server: A CI server
manages the automated build and testing processes.
This server monitors the version control repository for
changes and triggers the appropriate build and test
workflows.
 Integration: Successfully passed automated tests
indicates that the code changes can be safely
integrated with the main codebase.
 Once the changes have been approved, they can be
deployed to a production environment.
Continuous Integration
Why is Continuous Integration
Needed?
 Large, complex projects can be difficult to manage
with many different components and dependencies.
 CI is very helpful as it allows quick and easy code
integration in the main codebase(repository).
 Projects that require frequent code changes or
updates.
 Projects that need to be deployed rapidly and
regularly.
 Different developers working on the same application.
Benefits of CI
1.Faster Feedback : Developers receive feedback on
their changes quickly, allowing them to fix issues
earlier in the development process.
2.Reduced Integration Risks: Frequent integration
helps identify and resolve errors early, reducing the
risk of big integration problems near release time.
3.Efficiency: CI automates many time-consuming
manual tasks, freeing developers to focus on writing
code and addressing critical issues.
Benefits of CI
4.Greater Collaboration: With the use of CI ,different
developers can work simultaneously, making it easy for
them to store their code and faster integration of
changes. CI helps to ensure that everyone is working on
the latest version of the code.
5.Improved Software Quality: Automated testing helps
maintain a higher standard of code quality, as issues are
caught before they reach production.
Benefits of CI
6. Facilitates Continuous Delivery and DevOps: CI is
a foundation for implementing Continuous Delivery
and the broader DevOps approach, enabling
continuous software delivery and operation.
7.Reduced development time: By automating the
build, test,and integration processes, Cl helps to
reduce the time to release new features or bug fixes.
Continous Delivery
 Continuous Delivery is a DevOps practice where code
changes are automatically prepared for release to
production server.
 It is extension to Continuous Integration (CI) phase to
make sure that new changes can be released to the
customers at any time.
 Continuous delivery involves running extensive
regression, UI, and performance tests to ensure that
the code is production-ready.
Continous Delivery
 Continuous Integration and Continuous Delivery
(CI/CD) pipeline is one of the best DevOps practices to
deliver the code changes frequently and safely.
 Continuous Integration and Continuous Delivery are
create a process of integrating changes and delivering
the product to the market.
 CI and CD provide continuous feedback from the
customers and the DevOps team, thus increasing the
transparency of any problem within the team or outside
it.
 The failures can be detected faster and hence fixed
quickly, which increases the speed of release.
Continuous Deployment
 When the step of Continuous Delivery is extended, it
results in the phase of Continuous Deployment.
 Continuous Deployment (CD) is the final stage in the
pipeline that refers to the automatic releasing of any
developer changes from the repository to the
production.
 Continuous Deployment ensures that any change that
passes through the stages of production is released to
the end-users.
 This step is free from human intervention.
Relation between CI ,Continuous Delivery
and Continuous Deployment
 let's have a look at all the three processes in a
sequential order to understand how they are related.
 The CI/CD pipeline begins with the process of
Continuous Integration.
 The process of Continuous Integration allows the
developers to integrate code changes into shared
repository continuously.
 The code in this process is continually tested and
incorporated more smoothly.
Relation between CI ,Continuous
Delivery and Continuous Deployment
 After the Integration phase, comes the Continuous
Delivery phase.
 The changes made in the code go through several fixes
and feedback before going to the next phase. The team
in this phase decides what is to be deployed to the
customers and when.
Relation between CI ,Continuous
Delivery and Continuous Deployment
 The next and the final phase is the Continuous
Deployment phase which is releasing of any developer
changes from the repository to the production.

 The process of Continuous Delivery and Continuous


Deployment are often confused. There are many
common things between the two practices, but there
are differences too.
Continuous Delivery Vs Continuous
Deployment
Continuous Delivery Vs Continuous
Deployment
Continuous
Continuous Delivery
Deployment

The practice of The practice of


automatically releasing ensuring that software
changes to production is always ready for
Definition
once they pass release by automating
automated tests and the build, testing, and
quality checks. deployment processes.
Continuous Delivery Vs Continuous
Deployment
Continuous Continuous
Deployment Delivery
Requires a high Also requires
degree of automation automation but
to ensure that allows for manual
Automation changes are approval/coordinat
Effort automatically ion
deployed to
production without
human intervention
Continuous Delivery Vs Continuous
Deployment
Continuous Continuous
Deployment Delivery
Organizations that Organizations that
release new features want to stage new
For Whom? on a daily and hourly features and
basis. releases on a
frequent schedule.
Scope of Entire application or Can be a subset of
Deployment system. features or
components of the
application.
Continuous Delivery Vs Continuous
Deployment
Continuous Continuous
Deployment Delivery
Customer Feedback Enables faster Feedback loops may
feedback loops from be slower as
users as changes are releases are
deployed quickly. controlled and
scheduled.
Benefits of continuous delivery /deployment
Faster Time to Market
 The goal of the DevOps CI /CD pipeline is to deliver
software faster and frequently.
 Discover the market needs, develop necessary features,
and make it reach the users as fast as possible.
Reduced Market Risk
 When the application is frequently updated and
launched in the market, the marketing team or the
product managers have the opportunity to test if the
product is able to solve the problem of users.
Benefits of continuous delivery /deployment
Faster Testing & Bug Fixing
 Continuous Deployment reduces human intervention
in the release cycle.
 With a rigorous testing environment, the code is
tested to the greatest extent possible.
 It is much easier to identify the root cause of the
problem and fix it by sending feedback to the
development team.
Benefits of continuous delivery /deployment
Better products
 Continuous delivery makes it economic to work in
small batches. This means we can get feedback from
users throughout the delivery lifecycle based on
working software.

You might also like