You are on page 1of 64

22MBA24 - TFB

Software Product
Management
Module _3 - Chapter_6

Delivered By,
Dr. S. Gokula Krishnan, PhD.,
Associate Professor – Analytics & HR,
Dept. of Management Studies & Research Centre,
Global Academy of Technology, Bengaluru.
https://linktr.ee/profgokula
Discussions on
 Product Development
 Product Life Cycle
 Software development Life Cycle,
 Production cycle
 Methodologies
 Software business Models
 Software Program Management

References:

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
References:
 https://www.forbes.com/advisor/in/business/how-to-start-a-business/
 https://www.forbes.com/sites/forbesbusinesscouncil/2022/12/20/7-steps-
for-creating-an-innovative-new-product/?sh=510be8a016b9
 https://www.marketing91.com/product-development/
 https://www.ibm.com/topics/software-development
 https://aws.amazon.com/what-is/sdlc/
 https://www.indeed.com/career-advice/career-development/software-
development-methodologies
 https://www.altexsoft.com/blog/business/software-business-models-
examples-revenue-streams-and-characteristics-for-products-services-and-
platforms/
 https://www.atlassian.com/agile/project-management/program-
management
 https://www.forbes.com/advisor/in/business/software/project-
management-software/
 https://clickup.com/blog/program-management-tools/
Dr. S. GOKULA KRISHNAN, Associate Professor -
Analytics
How to start a business
 https://www.forbes.com/advisor/in/business/how-to-
start-a-business/

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
How to create a product
 https://www.forbes.com/sites/forbesbusinesscouncil/2022
/12/20/7-steps-for-creating-an-innovative-new-
product/?sh=510be8a016b9

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
Product Development
 https://www.marketing91.com/product-development/

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
Product life cycle
 https://www.twi-global.com/technical-
knowledge/faqs/what-is-a-product-life-cycle

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
Software Development
 What is software development?
 Software development refers to a set of computer science activities dedicated to
the process of creating, designing, deploying and supporting software.
 Software itself is the set of instructions or programs that tell a computer what to
do. It is independent of hardware and makes computers programmable. There
are three basic types:
 System software to provide core functions such as operating systems, disk
management, utilities, hardware management and other operational necessities.
 Programming software to give programmers tools such as text editors, compilers,
linkers, debuggers and other tools to create code.
 Application software (applications or apps) to help users perform tasks. Office
productivity suites, data management software, media players and security
programs are examples. Applications also refers to web and mobile applications
like those used to shop on Amazon.com, socialize with Facebook or post pictures
to Instagram.
 A possible fourth type is embedded software. Embedded systems software is used
to control machines and devices not typically considered computers —
telecommunications networks, cars, industrial robots and more. These devices,
and their software, can be connected as part of the Internet of Things (IoT)
 https://www.ibm.com/topics/software-development

Dr. S. GOKULA KRISHNAN, Associate Professor - Analytics


Steps in the software development process
1. Selecting a methodology to establish a framework in which the steps of
software development are applied. It describes an overall work process or
roadmap for the project. Methodologies can include Agile
development, DevOps, Rapid Application Development (RAD), Scaled Agile
Framework (SAFe), Waterfall and others. (See the glossary.)
2. Gathering requirements to understand and document what is required by
users and other stakeholders.
3. Choosing or building an architecture as the underlying structure within which
the software will operate.
4. Developing a design around solutions to the problems presented by
requirements, often involving process models and storyboards.
5. Building a model with a modeling tool that uses a modeling language like
SysML or UML to conduct early validation, prototyping and simulation of the
design.

Dr. S. GOKULA KRISHNAN, Associate Professor - Analytics


6. Constructing code in the appropriate programming language.
Involves peer and team review to eliminate problems early and
produce quality software faster.
7. Testing with pre-planned scenarios as part of software design and
coding — and conducting performance testing to simulate load
testing on the application.
8. Managing configuration and defects to understand all the
software artifacts (requirements, design, code, test) and build
distinct versions of the software. Establish quality assurance
priorities and release criteria to address and track defects.
9. Deploying the software for use and responding to and resolving
user problems.
10. Migrating data to the new or updated software from existing
applications or data sources if necessary.
11. Managing and measuring the project to maintain quality and
delivery over the application lifecycle, and to evaluate the
development process with models such as the Capability Maturity
Model (CMM).

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
software development process fit
into application lifecycle management (ALM)
 The steps of the software development process fit
into application lifecycle management (ALM). The IBM
Engineering Management solution is a superset of ALM that
enables the management of parallel mechanical, electrical and
software development.
• Requirements analysis and specification
• Design and development
• Testing
• Deployment
• Maintenance and support
 Software development process steps can be grouped into the
phases of the lifecycle, but the importance of the lifecycle is that
it recycles to enable continuous improvement. For example, user
issues that surface in the maintenance and support phase can
become requirements at the beginning of the next cycle.

Dr. S. GOKULA KRISHNAN, Associate Professor - Analytics


Key features of effective software
development
 Artificial intelligence (AI)
 Cloud-native development
 Cloud-based development
 Blockchain
 Low code
 Analytics
 Model Based Systems Engineering (MBSE)
 Mobile

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
Glossary
 Agile development breaks requirements into consumable
functions and delivers rapidly on those functions through
incremental development. A feedback loop helps find and
fix defects as functionality continues to deploy.
• Capability Maturity Model (CMM) assesses the
proficiency of software development processes. It tracks
progress from ad hoc actions to defined steps to measured
results and optimized processes.
• DevOps, a combination of development and
operations, is an agile-based approach that brings
software development and IT operations together in
the design, development, deployment and support of
software.
Dr. S. GOKULA KRISHNAN, Associate Professor -
Analytics
• Rapid application development (RAD) is a non-linear
approach that condenses design and code
construction into one interconnected step.
• Scaled Agile Framework (SAFe) provides a way to
scale agile methodology to a larger software
development team or organization
• Waterfall, often considered the traditional software
development methodology, is a set of cascading linear
steps from planning and requirements gathering
through deployment and maintenance.

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
Software Development Life Cycle
(SDLC)
 What is SDLC?
 The software development lifecycle (SDLC) is the cost-
effective and time-efficient process that development
teams use to design and build high-quality software. The
goal of SDLC is to minimize project risks through forward
planning so that software meets customer expectations
during production and beyond. This methodology outlines
a series of steps that divide the software development
process into tasks you can assign, complete, and measure.

 https://aws.amazon.com/what-is/sdlc/

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
Why is SDLC important?
 Software development can be challenging to manage due to
changing requirements, technology upgrades, and cross-
functional collaboration. The software development lifecycle
(SDLC) methodology provides a systematic management
framework with specific deliverables at every stage of the
software development process. As a result, all stakeholders
agree on software development goals and requirements upfront
and also have a plan to achieve those goals.
 Here are some benefits of SDLC:
• Increased visibility of the development process for all stakeholders
involved
• Efficient estimation, planning, and scheduling
• Improved risk management and cost estimation
• Systematic software delivery and better customer satisfaction

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
How does SDLC work?
 The software development lifecycle (SDLC) outlines several
tasks required to build a software application. The
development process goes through several stages as
developers add new features and fix bugs in the software.
 The details of the SDLC process vary for different teams.
However, we outline some common SDLC phases below.
 Plan
 Design
 Implement
 Test
 Deploy
 Maintain

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
What are SDLC models?
 A software development lifecycle (SDLC) model
conceptually presents SDLC in an organized fashion to
help organizations implement it. Different models
arrange the SDLC phases in varying chronological
order to optimize the development cycle. We look at
some popular SDLC models below.
 Waterfall
 Iterative
 Spiral
 Agile

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
Waterfall
 The waterfall model arranges all the phases sequentially so
that each new phase depends on the outcome of the
previous phase. Conceptually, the design flows from one
phase down to the next, like that of a waterfall.
 Pros and cons
 The waterfall model provides discipline to project
management and gives a tangible output at the end of
each phase. However, there is little room for change once
a phase is considered complete, as changes can affect the
software's delivery time, cost, and quality. Therefore, the
model is most suitable for small software development
projects, where tasks are easy to arrange and manage and
requirements can be pre-defined accurately.
Dr. S. GOKULA KRISHNAN, Associate Professor -
Analytics
Iterative
 The iterative process suggests that teams begin
software development with a small subset of
requirements. Then, they iteratively enhance versions
over time until the complete software is ready for
production. The team produces a new software
version at the end of each iteration.
 Pros and cons
 It’s easy to identify and manage risks, as requirements
can change between iterations. However, repeated
cycles could lead to scope change and
underestimation of resources.

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
Spiral

 The spiral model combines the iterative model's small


repeated cycles with the waterfall model's linear
sequential flow to prioritize risk analysis. You can use the
spiral model to ensure software's gradual release and
improvement by building prototypes at each phase.
 Pros and cons
 The spiral model is suitable for large and complex projects
that require frequent changes. However, it can be
expensive for smaller projects with a limited scope.

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
Agile
 The agile model arranges the SDLC phases into several
development cycles. The team iterates through the phases
rapidly, delivering only small, incremental software changes in
each cycle. They continuously evaluate requirements, plans, and
results so that they can respond quickly to change. The agile
model is both iterative and incremental, making it more efficient
than other process models.
 Pros and cons
 Rapid development cycles help teams identify and address
issues in complex projects early on and before they become
significant problems. They can also engage customers and
stakeholders to obtain feedback throughout the project
lifecycle. However, overreliance on customer feedback could
lead to excessive scope changes or end the project midway.
Dr. S. GOKULA KRISHNAN, Associate Professor -
Analytics
How does SDLC address security?
 In traditional software development, security testing
was a separate process from the software
development lifecycle (SDLC). The security team
discovered security flaws only after they had built the
software. This led to a high number of bugs that
remained hidden as well as increased security risks.
 Today, most teams recognize that security is an
integral part of the software development lifecycle.
You can address security in SDLC following DevSecOps
practices and conducting security assessments during
the entire SDLC process.
Dr. S. GOKULA KRISHNAN, Associate Professor -
Analytics
DevSecOps
 DevSecOps is the practice of integrating security
testing at every stage of the software development
process. It includes tools and processes that
encourage collaboration between developers, security
specialists, and operation teams to build software that
can withstand modern threats. In addition, it ensures
that security assurance activities such as code review,
architecture analysis, and penetration testing are
integral to development efforts.

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
How does SDLC compare with other
lifecycle management methodologies?
 The term software development lifecycle (SDLC) is frequently used in
technology to refer to the entire process of technology innovation and
support. We give other similar terms below.
 Systems development lifecycle
 The abbreviation SDLC can sometimes refer to the systems development
lifecycle, the process for planning and creating an IT system. The system
typically consists of several hardware and software components that work
together to perform complex functions.
 Software development lifecycle compared to systems development
lifecycle
 The software development lifecycle addresses only the development and
testing of software components. On the other hand, system development is a
broader superset involving the setup and management of the software,
hardware, people, and processes that can make up a system. It can include
tasks like organizational training and change management policies that don’t
fall under the software development umbrella.

Dr. S. GOKULA KRISHNAN, Associate Professor - Analytics


 Application lifecycle management
 Application lifecycle management (ALM) is the creation and
maintenance of software applications until they are no longer
required. It involves multiple processes, tools, and people
working together to manage every lifecycle aspect, such as
ideation, design and development, testing, production,
support, and eventual redundancy.
 SDLC compared to ALM
 SDLC describes the application development phase in greater
detail. It is a part of ALM. ALM includes the entire lifecycle of
the application and continues beyond SDLC. ALM can have
multiple SDLCs during an application's lifecycle.

Dr. S. GOKULA KRISHNAN, Associate Professor - Analytics


Software Development Methodologies
 https://www.indeed.com/career-advice/career-
development/software-development-methodologies

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
11 Software Development
Methodologies
1. Agile
2. DevOps
3. Waterfall
4. Spiral
5. Rapid application development
6. Dynamic systems development method
7. Prototype
8. Extreme programming
9. Feature-driven development
10. Joint application development
11. Rational Unified Process
Dr. S. GOKULA KRISHNAN, Associate Professor -
Analytics
Agile
 Agile is a set of beliefs that developers can apply to
their decisions in the software development process.
Though it's not strictly a methodology, there are
several principles in Agile that developers have
focused on for standardizing methods, and these
principles have led to the development of related
frameworks, such as Lean and Scrum. The Agile
principles are:
• Division of a project into manageable steps
• Incremental development and delivery of software,
rather than lump-sum delivery at full completion
• Development of parts within short time frames, or
iterations, usually within weeks or months
• Constant interaction with and feedback from the client

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
DevOps
 DevOps gets its name from combining
"development" and "operations," which are
two departments that normally work
independently of each other. As a
methodology, DevOps focuses on establishing
collaboration between these traditionally
divided teams throughout the software
development life cycle. Combining their
practices can lead to improved efficiency,
faster development of software and greater
product quality.
Dr. S. GOKULA KRISHNAN, Associate Professor -
Analytics
Waterfall
 In this methodology, developers complete one stage in its entirety
before beginning the next. Each stage has its own requirements
and plan and is reliant on inputs from the previous stage. In this
way, the development flows from one stage to the next, and there's
no overlap of work between any two stages.
 The six stages in the Waterfall methodology are:
1. Requirements: This is the conceptualization stage in which the
developers determine the expectations of the project and the
function of the product in development.
2. System design: In this stage, the developers define the software
architecture and other requirements of the system.
3. Implementation: The developers develop the software in separate
units, testing each for isolated functionality.
4. Integration and testing: The developers combine the units and test
the integrated system for flaws or errors.
5. Deployment: The software becomes available on the market or for
client use.
6. Maintenance: The developers troubleshoot or repair any issues that
become known during actual use.

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
Spiral
 In the spiral methodology, the development
process comprises four phases. The developers
continually pass through these phases in a spiral,
or cycle. After each pass, they progress to a new
iteration in development, with the aim of refining
the product in each iteration.
 The four phases of the spiral methodology are:
1. Planning: The developers define their objectives at a
given stage of development.
2. Risk analysis: The developers predict risks and try to
devise solutions for them.
3. Engineering: The developers design and develop the
product based on the previous phases.
4. Evaluation: The developers evaluate the status of
the project and make plans for the next iteration.
Dr. S. GOKULA KRISHNAN, Associate Professor -
Analytics
Rapid application development
 The primary aims of rapid application development, or RAD, are
quick iterations and rapid releases of prototypes. There's less focus
on following a rigid plan and more focus on collecting and
implementing feedback from users.
 RAD allows for increased flexibility, as the developers can adjust
their requirements in response to feedback, and the collaborative
nature of the methodology may lead to greater client satisfaction.
 RAD comprises four phases:
1. Requirements planning: The developers define the requirements
and specifications of the project.
2. User design: The developers and client work together in an iterative
process in which they develop a prototype, test it and discuss its
successes and failures. They continue this cyclical process until they
reach an acceptable level of refinement.
3. Construction: Based on the prototypes, the developers produce a
working version of the final software application.
4. Cutover: This is the final stage in preparing the software for launch.
It includes data conversion, product testing and user training.

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
Dynamic systems development
method
 The dynamic systems development method, or DSDM, is a
variation of RAD. DSDM emphasizes collaboration with the
client or user and follows an iterative process. It's
incremental, meaning that the developers initially deliver a
prototype that shows the basic functionality of the
application and later deliver the remaining functionality.
 There are four phases in the DSDM life cycle:
1. Feasibility and business study: The developers define the
requirements and determine the appropriate method for the
project.
2. Functional model and prototype iteration: The developers
produce prototypes that show functionality.
3. Design and build iteration: The developers refine the
prototypes until they produce an acceptable functional
model.
4. Implementation: Users undergo training, and the software
enters an operational environment.

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
Prototype
 The prototype methodology combines the iterative system with a
trial-and-error approach. In this methodology, the developers build
a prototype, test it and refine it until it reaches an acceptable level
of functionality to demonstrate to the client. Based on feedback, the
developers can make any necessary modifications when producing
the actual software application.
 There are six phases in the prototype methodology:
1. Requirements gathering and analysis: The developers determine
users' expectations and define the application requirements.
2. Quick design: The developers create a quick design of the
application to get an understanding of its capabilities and provide a
basis for prototypes.
3. Prototype building: The developers create a working model of the
application based on the quick design.
4. User evaluation: The developers present the prototype to the client
or representative users, who then provide feedback.
5. Refinement: The developers make improvements to the prototype
until it satisfies the client's or users' expectations.
6. Implementation and maintenance: The developers test the
application, launch it and perform routine maintenance.

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
Extreme programming
 Extreme programming, or XP, focuses on frequent releases of
software versions within short time frames, allowing the developers
to incorporate new requirements as needed with each version.
 This methodology relies on regular feedback and open
communication with the client to establish these requirements. XP
helps ensure all the members of the development team are aware
of the project goals and can align their efforts.
 XP is an iterative methodology, with each iteration comprising five
phases:
1. Planning: The developers and the client discuss the vision and goals
of the product.
2. Designing: The developers define the code before writing it, aiming
for simplicity.
3. Coding: The developers write the code and rework its structure to
achieve simplicity by affecting the functionality.
4. Testing: The developers test the code for functionality. Often, this
phase occurs concurrently with the coding phase.
5. Listening: The developers get feedback from the client and make
changes accordingly.

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
Feature-driven development
 Feature-driven development, or FDD, is a framework based on Agile principles that
organize its development tasks around the primary features of the software. Here are the
members of an FDD:
• Project manager: Oversees the overall project
• Chief architect: Designs the software system
• Development manager: Oversees development team activities
• Chief programmer: Assists with the system design
• Class owner: Is responsible for coding and testing software features
• Domain expert: Helps to ensure the development team meets client expectations
 FDD adheres to the following five steps in developing feature sets within short time
frames:
1. Develop the overall model. The developers define the problem or need they want the
application to resolve.
2. Build a features list. The developers identify the required features for the application
based on the client's requirements.
3. Plan by feature. The developers plan the order for feature development. They also try to
predict any risks and obstacles to development.
4. Design by feature. The chief programmer determines the priorities of the features and
assigns roles.
5. Build by feature. The developers build and test a feature and then add approved versions
to the final build.

Dr. S. GOKULA KRISHNAN, Associate Professor - Analytics


Joint application development
 Joint application development, or JAD, involves the
client and users in designing and developing an
application. The developers, client and end
users attend structured, focused workshop
sessions to reach a consensus on the software
requirements. These sessions comprise the
following members:
• Executive sponsor: Acts as the executive decision-
maker and shares details about resources
• Client and end users: Provides input about needs
and expectations
• Facilitator: Moderates the session, mediates
disputes and ensures members address all issues
• Scribe: Records the details of the session

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
Rational Unified Process
 Rational Unified Process, or RUP, is an Agile-based methodology that
divides development into four phases:
1. Inception: The developers determine the feasibility of the project and
what resources they may need to carry it out.
2. Elaboration: The developers predict project costs and determine the
potential uses of the software.
3. Construction: The developers design, build and test the software.
4. Transition: The software enters an operational environment. Based
on any feedback, the developers make adjustments.
 In each phase, the developers also execute the following
engineering disciplines, with varying degrees of emphasis
depending on the phase:
• Business modeling: Outlining the process and roles
• Analysis and design: Explaining how to realize goals
• Implementation: Defining and executing tasks
• Testing: Assessing for feasibility or functionality
• Deployment: Launching the efforts or product

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
Software Business Models
 https://www.altexsoft.com/blog/business/software-
business-models-examples-revenue-streams-and-
characteristics-for-products-services-and-platforms/

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
Business model characteristics

Dr. S. GOKULA KRISHNAN, Associate Professor - Analytics


 Despite the numerous and varied publications in the field, there is still no single
classification approach to business model types and the revenue models that best
match them. That’s why, instead of trying to classify a variety of unique models, we’ll
define and discuss characteristics that constitute business models of software
product companies. So, creating a business model of a company involves a
combination of the following characteristics:
 Distribution approach. The most important business model characteristic is the
distribution approach that a company uses to provide services or create products for
customers. We distinguish three main distribution approaches that can be used: on-
premise, cloud, and hybrid.
 Source code licensing. Based on licensing of source code the company creates, the
software may be proprietary or open-source code.
 Revenue streams. A software revenue stream defines the way company is paid for its
products and services. A business model can make use of one or several revenue
streams. For instance, software product revenue streams can include ad revenue, sales,
subscriptions, and their combinations.
 Business model interaction. Software companies inevitably choose between two
types of business model interactions while forming its business model. It can take a
form of one-to-many or many-to-many. The former is traditional value delivery,
when a provider directly solves customer problems (Trello, Microsoft Office, Photoshop,
etc.). The latter implies that a company creates a platform where both end-providers
and customers meet (Airbnb, Uber, or Upwork). But more on that below.
 B2C or B2B market. Eventually, a company must choose the target audience that it sells
products or services to, which would lead to the company taking the business-to-
business (B2B) or the business-to-consumer (B2C) approach. B2B means that
company sells services to other businesses and B2C means selling a product or service
directly to a consumer.

Dr. S. GOKULA KRISHNAN, Associate Professor - Analytics


On-premises software distribution
approach
 The on-premises distribution approach entails a software product being installed and
running within a client’s in-house infrastructure, be that a single computer or a local
server. The traditional distribution approach has been used for many years by such
companies as SAP, Oracle, and Microsoft.
 Pros of traditional on-premises software distribution approach
• On-premises deployment allows you to customize the product, aligning it with client’
needs.
• It allows simple integration with a client’s other corporate systems over the intranet.
• All infrastructural expenses are covered by one client.
 Cons of traditional on-premises distribution approach
• Implementation of a new on-premises environment requires a lot of time.
• The client must have its own IT support staff and in-house server hardware if you provide
corporate-level software.
• These first two factors may turn potential customers towards cloud competitors.
• If a product is distributed via a license model, your clients will be hesitant about making a
large, upfront investment in a license considering the risks.
• If on-premises software was customized, upgrading it becomes increasingly more
complicated.
 Examples: Microsoft Office, Maxon Cinema 4d, KMPlayer.

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
Cloud-based software distribution approach
 The main characteristic of the cloud-based distribution approach is that the software runs at a
hosting provider or in the cloud service.
 For instance, software as a service (SaaS) is a cloud-based distribution approach in which a
provider hosts its applications and makes them available to customers via the Internet. According
to the SaaS method, businesses and individuals don’t need to install applications on their own
computers or own data centers. They can access the software using a Web browser or a mobile
device. SaaS is typically delivered via a term-based subscription.
 Pros of the cloud-based distribution approach
• Cloud products and services have faster implementation timeframes for clients
• Users will be able to access products and information remotely from anywhere at any time, given that
they have an Internet connection
• The SaaS approach doesn’t require any initial setup costs from users. The customers just need to
subscribe and log into their account to get full access to the app and its updates
• The SaaS approach gives you the opportunity to provide the same software version for all your
customers. This means that you have a single version to maintain, upgrade, de bug, and provide
storage support for.
• The main revenue stream of the cloud distribution approach is subscriptions, and as a result you will
be able to receive revenue as long as the client uses the software, on an ongoing basis.
 Cons of cloud distribution approach
• There may be compatibility issues between cloud solutions and integration with existing on-premise
enterprise applications that your clients already have.
• You are fully responsible for service outages that may occur. Setting up reliable infrastructure is
required.
 Examples: Amazon Web Services, Dropbox, Netflix.

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
Hybrid software distribution approach
 Some software companies have a hybrid distribution
approach. Hybrid in this case is the approach that combines a
SaaS solution with an on-premise software application. So, a
cloud-driven technology complements an on-premise one.
For instance, Adobe Creative Cloud combines on-premise
products like Photoshop with additional cloud services like
libraries, presets, etc. Besides, on-premise software gets
updated as if deployed on the cloud, regularly and without
asking the client to purchase a separate license for each new
version of a product. As high-speed Internet connection has
become a new standard, hybrids will become increasingly
more common.
 Another way to realize the hybrid deployment is to let
customers choose between a SaaS service or an on-premises
solution and provide the opportunity to switch from one to
the other if needed. For example, Microsoft Outlook can be
deployed on-premises but can also be accessed online.

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
 Pros of hybrid software distribution
• It allows a client the flexibility to move information between on-premises
data centers and third-party cloud services, without being locked into a
particular cloud provider or their own infrastructure
• Users can take advantage of tight integration with existing corporate systems
and they can also easily transfer large files regardless of their Internet speed.
• A provider can ensure seamless updates of on-premise software and
distribute different features between on-premise and cloud
• Sensitive or highly regulated information (e.g. medical records) can stay on-
premise, while operations that don’t involve sensitive data can be conducted
in the cloud
 Cons of hybrid software distribution
 The hybrid approach combines and amplifies the difficulties of both SaaS
and on-premise approaches.
• On-premise has limited customization opportunities compared to that of a
pure cloud version
• If customizations are available, updating software becomes a critical
engineering challenge
• If software is accessible both from a web interface and an on-premise
interface, the amount of front-end development tasks significantly increases
 Examples: Adobe Creative Cloud, Salesforce, Zendesk.

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
Source code licensing
 Software companies can create proprietary or open
source software.
 Proprietary software
 In most cases, proprietary software doesn’t let the user
access, change, or reuse the copyrighted source code. Even if
a program is free to use, it may have proprietary code that
users and third-parties can’t change. In this case, code written
in a high-level language is assembled in a machine language,
which is executable by a machine but unreadable by a
human. Most companies make their software products
proprietary to protect it from copying, changing, or emulating.
 There are exceptions. Sometimes, software protected by
copyright does have code available for alteration by users.

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
 Pros of creating proprietary software
• Users will be sure that the product will work properly due to a
single source for support, bug fixes, security fixes, and regular
upgrades
• Software is protected by copyright and can be monetized
 Cons of proprietary software
• As described in the “pros” section, the owner of proprietary
software is responsible for all updates, customization (if needed),
and maintenance. Having a limited engineering capacity may
slow down feature development compared to competing
providers.
• Proprietary software may be unaffordable to a chunk of potential
clients
• The code owning organization is the only one responsible for
finding and fixing code vulnerabilities. So, closed-code software is
more likely to be vulnerable to malware and attacks than open-
source code where possible exploits can be better detected as a
community effort
 Examples: Microsoft Windows, McAfee, iTunes.

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
Open source software
 Open source software means that users get software and access to source
code free. Nowadays, an increasing number of technology companies create
open source software. Black Duck Software, the open-source software (OSS)
solution provider that helps maximize value by minimizing risks from open
source software, has disclosed the results of 2016 The Tenth Annual Future of
Open Source Survey. According to the research, 78 percent of respondent
companies run part or even all of their operations on OSS, and 66 percent
said their companies create software for customers built on open source. It’s
the highest open source software usage rates of all time.
 Pros of creating open source software
• OSS is a great opportunity to present the innovative features and technical
capabilities of your product to attract more users.
• Clients can customize a product for their needs.
• OSS is a good way to improve brand recognition among technology companies
• As mentioned above, OSS has less chance of having vulnerabilities as they can
be detected by a community
 Cons of open source software
• Many corporate clients will struggle to create formal policies for selecting and
approving open source code
• Creating open source products require finding additional revenue streams
 Examples: VLC, Ubuntu, Open Office.

Dr. S. GOKULA KRISHNAN, Associate Professor - Analytics


Revenue streams
 Paid apps and license
 Examples: Cinema 4D, ADW Launcher EX, Minecraft.
 Free, with in-app advertising
 Examples: Angry Birds, Facebook, Twitter.
 Free, with in-app purchases
 Examples: VSCO, Meet me.
 Subscriptions
 Standard subscription
 Examples: Financial Times, SalesForce.
 Free trial
 Examples: Adobe Creative Cloud, Netflix
 Freemium
 Examples: Grammarly, Tinder, Zapier
 Usage-based license
 Examples: Amazon Lambda, MailChimp (pay as you go plan), Shutterstock.
 Transaction Fee
 Examples: Airbnb, Uber, eBay.

Dr. S. GOKULA KRISHNAN, Associate Professor - Analytics


Business model interaction
 Broadly, there are two types of business model interactions you can
use to build your business: the one-to-many business model
interaction and the many-to-many business model interaction.
 One-to-many business model interaction one in which companies
create products and services, develop and evolve them, and sell to
customers. Most eCommerce stores and software products work
according to this value model.
 Examples: Adobe Creative Cloud, Buzzsumo, Microsoft Office, Gmail
 Many-to-many business model interaction allows one group of
users (producers) to create and consume value on the platform for
the other group of users (consumers) to consume.
 Examples: Wikipedia, Uber, AliExpress, Google search engine
 These two types have fundamentally different strategies of creating
products. The one-to-many business model interaction approach
requires companies build products with the end consumer only in
mind. On the contrary, the many-to-many value model requires being
mindful of both producers and consumers. For example, YouTube
requires building tools for producers – video hosting on YouTube –
and for consumers – video viewing.

Dr. S. GOKULA KRISHNAN, Associate Professor - Analytics


Software Program Management
 https://www.atlassian.com/agile/project-management/program-management
 What is program management?
 Program management is the process of managing programs mapped to business
objectives that improve organizational performance. Program managers oversee and
coordinate the various projects and other strategic initiatives throughout an
organization.
 Project management software is a digital platform/tool that businesses or
individuals use to plan projects, allocate and track project resources, schedule
project timelines and tasks, assign tasks, track progress, capture and
implement knowledge and ideas, and collaborate with team members for
project completion. It further helps companies stay organized via document
storage, search and organizational features. - Forbes
 Program managers also help to drive organizational change by helping
with agile transformations, including helping to implement DevOps practices and
principles. Program managers may align program management practices and
processes with agile values such as collaboration, team autonomy and empowerment,
delivering value to customers, and adapting to change in the moment. A program
manager can bring agile and DevOps to life for teams across large programs or
individual projects by tailoring programs to the specific requirements and
opportunities of the business.

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
Program management vs. project
management

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
 Project management is the process of leading a project performed by a
team to achieve certain goals, such as building a new product.
 A project represents a single, focused piece of work with a specific scope
and defined output. Projects can run for several years, but their main
focus remains the same. A project’s success can be measured by the
delivery of artifacts and deliverables that roll up to a program’s larger
goals.
 Project management is the process of delivering value that
incrementally moves a program forward. Despite the emphasis on
artifacts and deliverables, project management still involves strategy
and planning, since a project manager must determine how to meet the
goals laid out at the beginning of the project. Once a project is
underway, a project manager tracks progress, allocates resources,
manages risks, communicates, and more.
 Program management entails managing a program with multiple,
related projects. Since programs are linked to strategic initiatives, they
are often long-running and possibly permanent. Programs continue
through organizational change, contribute to multiple goals, and contain
many projects that deliver specific components of the larger strategic
initiative.
Dr. S. GOKULA KRISHNAN, Associate Professor -
Analytics
Projects have
• A set of tasks with a clear deliverable and a deadline
for completion
• Relates to creating, updating, or reviewing a particular
document, process, outcome, or another single unit of
work
• A predefined scope that is limited to a specific output
• Improves quality, efficiency, cost management, or
customer satisfaction in a specific and predetermined
way

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
Programs have
• Unknown or fluid deadlines due to the large scope and
impact of the work that must be done continuously over a
long period of time
• Multiple deliverables with inter-related dependencies that
may continue to evolve based on changing business needs
• A series of deliverables completed together to increase
efficiency, accuracy, reliability, or other business needs
• The work enables the company to achieve a long-term
business goal or initiative that will run in perpetuity
• Success delivers long-term benefits or unlocks new
capabilities for the organization
Dr. S. GOKULA KRISHNAN, Associate Professor -
Analytics
What does a program manager do?

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
What does a project manager do?
 A typical day for a project manager can include:
• Checking on the status of a deliverable to determine
whether it will be delivered on time and within budget
• Reviewing a queue to identify new work, monitor existing
tasks, and unblock specific elements for the project team
• Create a plan for how to reach a specific milestone that
describes the stakeholder management and
communications opportunities
• Ensure that project work meets the quality and reliability
requirements established at the beginning of the project

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
Program manager Project manager

Plans strategies Plans projects

Provides advice to stakeholders Tracks progress of projects

Review and advise on projects Allocates resources

Offers audits and QA Manage risks

Mentorship to project teams Communicate

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
What makes a great program management
software?
 When choosing an excellent program management tool, here are six features to look out
for:
1. Project tracking: Your software of choice should seamlessly combine new and existing
projects on one platform and ensure a company-wide view of progress
2. Resource planning: A tool worth its weight in gold should have a Workload view and
pretty visuals that allow you to spot resource bottlenecks and keep tabs on everyone’s
workload on the fly. It’s not even a debate
3. Dashboards: A dashboard provides a dedicated, high-level view of how your program is
performing, so there’s no jumping from one project to another
4. Reporting: Solid up-to-the-minute reporting ensures you are making the right decisions,
every single time. No more guesswork. No more wishful thinking
5. Timesheets: Without this feature, you won’t get complete visibility into your team’s day-
to-day activities, let alone their actual hours to finish individual projects. It’ll be chaos
after chaos after chaos
6. Portfolios: “Program management tools shouldn’t have portfolios,” said no one ever.
Good software incorporates portfolios—what you get is a bird’s eye view of how all your
projects are progressing, and you can also drill in for more details to address risks
1. https://clickup.com/blog/program-management-tools/

Dr. S. GOKULA KRISHNAN, Associate Professor - Analytics


Best Project Management Software For
September 2023
• ClickUp: Best for Agile Development Teams
• Monday.com: Best for Startups on a Tight Budget
• Asana: Best for Collaboration Tools
• Zoho Projects: Best for Integrations
• Smartsheet: Best for Workflow Automation
• Notion: Best for Content Creators
• Airtable: Best for Data-Driven Companies
• Teamwork: Best for Client-Facing Service Providers
• Wrike: Best for Artificial Intelligence Features
• Jira: Best for Product Development Teams
• https://www.forbes.com/advisor/in/business/software/
project-management-software/

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
How To Choose the Best Project
Management Software
 https://www.forbes.com/advisor/in/business/software/pr
oject-management-software/

Dr. S. GOKULA KRISHNAN, Associate Professor -


Analytics
Dr. S. GOKULA KRISHNAN, Associate Professor -
Analytics
END OF THE CHAPTER

You might also like