0% found this document useful (0 votes)
30 views26 pages

CEN512 Module1

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views26 pages

CEN512 Module1

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 26

CEN512

Computer Software Engineering II

Course lectures
Dr Odu Tiwalade & Mr Emmanuel Simonyan
• Course Objectives:
By the end of this class, students will:
1.Understand the core concepts of software product
engineering, including how software products are developed,
managed, and maintained.
2.Learn to create and manage a product backlog, user
stories, and develop a basic prototype for a software product.
3.Explore modern software examples, like Zoom and
Salesforce, and how these products have evolved from custom
software to widely-used software products.
4.Familiarize themselves with key trends in software
products, such as the rise of cloud computing, DevOps
practices, and security considerations in product development.
• Learning Outcomes:
By the end of this class, students should be able to:
1.Differentiate between project-based and product-based
software development and understand their implications on
software engineering practices.
2.Identify the different types of software products (stand-
alone, hybrid, and SaaS) and explain how they impact user
experience and business models.
3.Understand the role of Agile methodologies in modern
software product development and how it contributes to faster
and more adaptable software releases.
4.Develop a basic product vision and roadmap for a software
product, identifying the key components needed for successful
product management.
Introduction to Software
Products
• A software product is any computer program designed for a
specific purpose that can be sold or used by various people,
businesses, or governments. These products help us in almost
every aspect of our daily lives.
• Example: Microsoft Office is a set of tools (like Word, Excel) that
helps people write documents, make spreadsheets, and organize
their work.
• Zoom is a software product that allows us to hold meetings or
classes online, which became especially important during the
COVID-19 pandemic.
• Without realizing it, you’ve likely interacted with dozens of
software products today!
Evolution from Custom to Product-Based Software
• In the early days of computers, most software was
created for a specific purpose or customer. This is
called custom software. Companies or governments
would request custom software to meet their
needs, like an air traffic control system.
• But over time, companies realised that many
people or businesses had similar needs. So instead
of creating new software for every customer, they
started building software products that many
different people or companies could use. This shift
from custom to product-based software saved time
and money.
• Example: Google Workspace is used by millions of
businesses for email, documents, and meetings.
Instead of each company building its own office
software, they use Google’s product.
Key Differences Between Project
and Product-Based Software
Let’s compare project-based and product-based
software:
• Project-Based Software: This is built specifically for
a single client. It follows strict requirements, and the
software is often custom-built, like a tailor-made suit.
• Product-Based Software: This is more like ready-to-
wear clothing; it’s built for general use. The company
decides on features and sells it to many users.
• Slack, a communication tool for teams, is product-
based software. It wasn’t created for one company but
for any business that needs a way to communicate
with their team.
Software Product Types
There are three main types of software products:
1.Stand-Alone Products: These are installed on your
computer and work without an internet connection.
Example: Adobe Photoshop, used for editing images, runs on
your computer without connecting to the internet.
2.Hybrid Products: These use both your computer and
the internet. Part of the software works locally, but it
also connects to the cloud for more features.
Example: Google Docs lets you type offline, but it saves and
syncs documents online when connected.
3.Service-Based Products (SaaS): Everything
happens online. You don’t install anything; you just
access the software through a browser.
Example: Salesforce, a popular business tool, is entirely web-
based.
Recent Shifts in Product Delivery

• We’ve moved from physical products,


like CDs, to cloud-based delivery:
• Old Model: You used to buy a CD with
software on it and install it on your
computer.
• Example: Microsoft Office used to be sold
in stores, and you had to install it manually.
• New Model: Now, you download
software directly from the internet.
Microsoft Office became Office 365,
where you access all the tools online,
and updates happen automatically
without installing anything.
The Role of Agile in Product
Development
• Agile development is a way to build software quickly,
adapting to changes as needed. Instead of spending
years planning, companies can create small parts of
software, release them, and get feedback.
• Example: Spotify, a music streaming app, uses Agile.
They constantly release small updates and new features
based on user feedback.
• Agile is perfect for modern software because it allows
companies to respond to the market quickly.
The Product Vision

• A product vision is a simple statement that describes


what the product is, who it’s for, and why it’s better
than others.
• Think of it like this: If you were creating a new app, you
need to clearly explain what makes it different. A good
product vision helps guide the development team and
keeps everyone focused.
• Example: Airbnb’s vision is to “help people belong
anywhere.” This means they want people to find a home
wherever they are, and that vision drives all their
product decisions.
Defining Product Vision
When developing a product vision, we ask three
questions:
1.What: What is the product we are building?
2.Who: Who is the target audience?
3.Why: Why will customers use this product instead of
something else?
• Example: A new CRM system might answer:
• What: A tool to manage customer relationships.
• Who: Small businesses.
• Why: It’s cheaper and easier to use than other systems.
Case Study - iLearn System Vision

• Here’s an example is a learning tool called iLearn. Its


vision is to create a system where teachers can design
online learning environments, tailored to their class
needs.
• Unlike platforms like Moodle or Blackboard that focus on
managing assignments, iLearn is all about making
learning more flexible and student-focused.
Product Management in Software Development

• A product manager (PM) is responsible for making sure


the software is useful for customers and helps the
business make money. They communicate with
developers to make sure the right features are being
built, and they understand what users want.
• Example: Think of a product manager at Apple
ensuring that the new iPhone has the features people
care about most, like better cameras and battery life.
Product Management Triangle
Product managers juggle three main things:
1.Business: Does the product make money?
2.Technology: Is it built well and efficiently?
3.User Experience: Is it easy for users to use and
enjoy?
• A product manager ensures all three areas are
balanced.
• Roadmap Development
• A product roadmap is a plan that outlines when important features will be
released and how the product will evolve.
• Take Apple’s iPhone for example the roadmap a is planned well in advance. They
know which features will be added each year, like new cameras or faster
processors, to keep users excited.
The Product Backlog
• A product backlog is a list of all the things that need to be done to complete the
product, from adding features to fixing bugs. It’s constantly updated.
• Example: Developers at Slack might have a backlog that includes adding a dark
mode feature or fixing a bug with notifications.
User Story Development
• User stories are descriptions of features from the user’s perspective. They help
developers understand what the user needs.
• Example: “As a user, I want to receive notifications when I get a new message
so that I stay updated.” This story helps the developer understand what to build
and why it’s important.
Prototyping in Software Product Development
• A prototype is an early version of the product that’s built to test
ideas. It helps you see how the product will work without
building the whole thing yet.
• Example: Before WhatsApp became the messaging app it is
today, the creators built a simple version to see if their idea
worked. Once they knew it worked, they built out more features.
• Prototyping Benefits
Prototypes help you:
1.See what works and what doesn’t.
2.Get feedback from users before you’ve spent too much time and
money.
• Case Study: Tesla creates prototypes for its electric cars to test
how they work in the real world before mass production.
Software Execution Models
• There are different ways software runs:
1.Stand-Alone: It runs directly on your computer (e.g.,
Photoshop).
2.Hybrid: Some parts run locally, others on the internet
(e.g., Evernote).
3.SaaS: Everything runs on the internet (e.g., Google
Drive).
Key Factors in Product Development Success
• One key to success is launching your product quickly. If
you wait too long, a competitor might launch something
similar and capture the market.
• Example: Netflix constantly updates its product to offer
better streaming recommendations, keeping users loyal.
Agile Methods for Product
Development
• Agile helps teams move fast by releasing small updates
instead of waiting to release everything at once.
• Example: Atlassian, the company behind Jira, uses
Agile to release frequent updates to keep their software
fresh and responsive to user needs.
Product Line vs. Platform
• Product Line: Similar products designed for specific
customers (e.g., Samsung’s Galaxy phones).
• Platform: A foundation others can build on (e.g.,
Android, which many phone makers use).
Modern Software Products

• Examples of Modern Software Products


1.Zoom: A video conferencing tool that grew rapidly
during the pandemic.
2.Spotify: Uses AI to recommend music tailored to your
tastes.
3.Slack: A communication platform designed for teams
working together.
Security Considerations in Software Products

• Security Considerations in Software Products


• Security is a big deal in software, especially when sensitive data
is involved.
• Example: WhatsApp uses end-to-end encryption to keep your
messages private. This means only the sender and receiver can
read the messages.
• Software Maintenance and Evolution
• Even after the software is released, it needs to be updated and
maintained to fix bugs and add new features.
• Example: Microsoft Windows 10 receives updates years after it
was first released, improving security and functionality.
Product Quality and Testing

• Testing ensures the product works as intended and


doesn't have bugs. It’s a continuous process throughout
development.
• Example: Google uses test-driven development to write
tests before the code to ensure their products are
always reliable.
Key Points
• The difference between product-based and project-
based software.
• Why Agile development is important.
• The role of product management in keeping the product
relevant to users.
Questions for Thought

1.How does product-based development differ from


project-based development?
2.Why is time-to-market critical for software products?
3.How does Agile benefit product development compared
to traditional methods?
Book Recommendations
• Zero to one by Peter Thiel
• Lean startup by Eric Ries

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy