Product Development basics for software

47
PRODUCT DEVELOPMENT (for a Software Machine)

Transcript of Product Development basics for software

Page 1: Product Development basics for software

PRODUCT DEVELOPMENT(for a Software Machine)

Page 2: Product Development basics for software

10.000FT

Page 3: Product Development basics for software

THE DREAMING TREE

Product Releases

Product Principles Manifesto

Product OpportunitiesRoadmap

Product Minor Releases

Mission

Strategy

Objectives

Intermissions

Updates

Page 4: Product Development basics for software

PRODUCT TOP DOWN FLOW

Product OpportunitiesRoadmap

Product PrinciplesManifesto

Strategic Product PlanningRoadmap

Product discovery

Page 5: Product Development basics for software

MANIFEST!

1.000 Manifestos: http://www.1000manifestos.com/list

Page 6: Product Development basics for software

PRODUCT MANIFESTO

• Publicly declares the product's principles, beliefs and intentions

• Inspires the final customer, internal team and product’s own functionalities

• Prioritizes the product main elements, thus helping to identify and separate essential from incidental; strategic from tactical

• Clearly states why the product exists

The Product Manifesto by SVPG

Page 7: Product Development basics for software

MANIFESTS

• The Internet is an integral part of modern life–a key component in education, communication, collaboration, business, entertainment and society as a whole.

• The Internet is a global public resource that must remain open and accessible.

• The Internet should enrich the lives of individual human beings.• Individuals’ security on the Internet is fundamental and cannot be

treated as optional.• Individuals must have the ability to shape their own experiences on

the Internet.• The effectiveness of the Internet as a public resource depends upon

interoperability (protocols, data formats, content), innovation and decentralized participation worldwide.

• Free and open source software promotes the development of the Internet as a public resource.

• Transparent community-based processes promote participation, accountability, and trust.

• Commercial involvement in the development of the Internet brings many benefits; a balance between commercial goals and public benefit is critical.

• Magnifying the public benefit aspects of the Internet is an important goal, worthy of time, attention and commitment.

• Focus on the user and all else will follow.• It’s best to do one thing really, really well.• Fast is better than slow.• Democracy on the web works.• You don’t need to be at your desk to need an

answer.• You can make money without doing evil.• There’s always more information out there.• The need for information crosses all borders.• You can be serious without a suit.• Great just isn’t good enough.

Page 8: Product Development basics for software

PRODUCT OPPORTUNITIES

How your products and services will deliver value to the defined customer segment(s) by creating gains and/or

relieving their pains

Page 9: Product Development basics for software

PRODUCT PLANNINGDefine the problem you are trying to solve for users, the business opportunities that exist to solve the problems, and the core competencies that will help you make the solution a success

Problem - Solution frame Persona Customer Journey Map

Requirements Gathering

Page 10: Product Development basics for software

PRODUCT PLANNING – REQUIREMENTS GATHERING

A requirement is simply a short statement of the problem

Suggested format:

[Persona] has [problem] with [frequency]

Product Requirements

Product managers explore the problem, not the solution at this stage. Design team understands the context of the problem.

Page 11: Product Development basics for software

PRODUCT PLANNING – REQUIREMENTS GATHERING

Benchmark for well-written requirements: 

• Is there a clear definition of the user(s)?

• Do I understand their problem / what they are trying to achieve?

• Do I have supporting documentation that provides the context about the persona and their problems so that I clearly understand how to design a solution to their problem?

Page 12: Product Development basics for software

PRODUCT PLANNING – REQUIREMENTS GATHERING

Requirements vs. Specifications

Requirement: short statement of the problem

Specification: how to solve the problem

Page 13: Product Development basics for software

PRODUCT OPPORTUNITIES – ROADMAPA plan of action for how a product or solution evolves over time.

It’s a communication tool that helps communicate where you are, where you are heading and how you expect to get there. Roadmaps should detail a high-level product vision and highlight basic prioritization for everyone in your organization, and customers too. 

Understand customer needs and pain points

Understand competitive

environment – what they do well, what they

don’t

Prioritization

Stra

tegi

c al

ignm

ent

Retu

rn o

n in

vest

men

t

Abilit

y to

ex

ecut

e Prioritized roadmap

Page 14: Product Development basics for software

PRODUCT OPPORTUNITIES – ROADMAP

Best practices:1. Identify key stakeholders2. Prepare list of questions, tailor per different group of

stakeholders3. Gather requirements and expectations (vision!)4. Prepare a matrix of questions and answers5. Convert answers into key takeaways6. Cost them and probably split into 3 sets: short (within 6

months), middle (6-12 months), long term 12+ months7. Score each of the key points8. Prioritize

Page 15: Product Development basics for software

PRODUCT PLANNING – REQUIREMENTS GATHERING

If you are using AGILE (you should be): "as a 'role,' I want to 'perform an activity,' so that I can 'achieve a goal’”

+ acceptance criteria*

Page 16: Product Development basics for software

PRODUCT PLANNING - NEEDS vs. FEATURES

Page 17: Product Development basics for software

PRODUCT PLANNING - NEEDS vs. FEATURES

Page 18: Product Development basics for software

PRODUCT DISCOVERY - BRAINSTORMING

Tech filter starts hereIdeation Prioritization

Page 19: Product Development basics for software

PRODUCT DISCOVERY – FLOW AND WIREFRAMEFlow charting and wire framing

Start Functional Specifications: “A functional specification describes how a product will work entirely from the user’s perspective. It doesn’t care how the thing is implemented. It talks about features. It specifies screens, menus, dialogs, and so on.”

Page 20: Product Development basics for software

PRODUCT EXECUTION – FUNCTIONAL SPECSHigh fidelity mockups that

incorporate visual design to implement intended

solutions

Sample: http://www.joelonsoftware.com/articles/WhatTimeIsIt.html

Detailed flowcharts from user's perspective. With features

descriptions along with screens, menus, dialogs, and

error specifications.

Page 21: Product Development basics for software

PRODUCT EXECUTION – TECHNICAL SPECS

Must read: http://c2.com/cgi/wiki?TechnicalSpecification

A technical specification describe the internal implementation of the program.

It talks about software architecture, data structures, relational database models, choice of programming languages and tools, algorithms, etc.

Good technical specification can be as simples as Functional Specifications that follow a particular SoftwareArchitecture that has been chosen to guide the solution.Generally you have to decide things like: • Communication protocols, availability, SLAs etc.• Management structure, reporting structure, budgets, conflict

resolution• Source code control, bug tracking, builds, testing, release

policies, etc.• Software methodology, coding standards, languages, OSs, etc.• Frameworks, message passing, logging, which libraries to use,

etc.• Resource management, memory management, etc.• System startup, configuration, monitoring, licensing,

contingency, backup, etc.• Application architecture• …..

Page 22: Product Development basics for software

FROM PLANNING TO EXECUTION – ZOOM OUT

Page 23: Product Development basics for software

THE PRODUCT MANAGER

AKA: PRODUCT CEO

For product managers to succeed, there needs to be an executive mandate and company-wide understanding that even though

everyone gets a voice, product decisions ultimately reside with product managers.

Making It Right: Product Management For A Startup World - http://amzn.to/1TPlDyX

Page 25: Product Development basics for software

PRODUCT DEVELOPMENT PROCESS OVERVIEW

Product Planning

Product Execution

Product Discovery

Page 26: Product Development basics for software

Astella is a Latin root that originated the words atelier and estaleiro (shipyard); a

place where great heroes are made, through science and art.

Page 27: Product Development basics for software

AGILE OVERVIEW

Page 28: Product Development basics for software
Page 29: Product Development basics for software

Discover

Design

Develop

Test

Busin

ess

Requ

irem

ents

Tech

nica

lDe

sign

Codi

ngTe

sting

Clie

nt O

kLa

unch

WATERFALL METHOD TEMPLATE

Page 30: Product Development basics for software

DiscoverDes

ignDevelop

Test

Test

Discover

Design

DevelopTe

st

Test

Discover

Design

Develop

Test

Test

AGILE METHODOLOGY LOOP

Page 31: Product Development basics for software

http://agilevideos.com/videos/why-agile-methods-business-value-roi/

Page 32: Product Development basics for software
Page 33: Product Development basics for software

Manifesto for Agile Software Development

We are uncovering better ways of developingsoftware by doing it and helping others do it.

Through this work we have come to value:

Individuals and interactions over processes and toolsWorking software over comprehensive documentation

Customer collaboration over contract negotiationResponding to change over following a plan

That is, while there is value in the items onthe right, we value the items on the left more.

Twelve Principles of Agile Software

Page 34: Product Development basics for software
Page 35: Product Development basics for software
Page 36: Product Development basics for software

15-30days

24hours

Product BacklogSample text

Sprint BacklogSample text

Sprint

Daily ScrumSample textSample textSample text

Working increment of the product

SCRUM PROCESS

Deliverable

Page 37: Product Development basics for software

…………..

1 2 3 n

Page 38: Product Development basics for software
Page 39: Product Development basics for software
Page 40: Product Development basics for software

ConfirmationBasket Delivery details

Existing customer

New customer

GOAL: TO BUY THE ITEMS IN MY BASKET

Add product to basket

List of selected items and quantities

Edit basket

Selectcheckout

option

Login

Enter name and email address

Enter address

Select save name and address

Add new name and address

New or existing Payment

Enter credit card details

NotesSeveral existing customers find it easier to checkout as a new customer as they don’t remember their username and password and find managing address fiddly. We should aim to make this much simply with the next release and enhance the process for repeat customers.

Confirm

Page 41: Product Development basics for software

SCRUM TASK BOARD TEMPLATE Company name

Stories To Do In Progress Testing Done

This is a sample text. Replace it with your own text.

This is a sample text. Replace it with your own text.

This is a sample text. Replace it with your own text.

This is a sample text. Replace it with your own text.

This is a sample text. Replace it with your own text.

This is a sample text. Replace it with your own text.

This is a sample text.

This is a sample text.

This is a sample text.

This is a sample text.

This is a sample text.

This is a sample text.

This is a sample text.

This is a sample text.

This is a sample text.

This is a sample text.

This is a sample text.

This is a sample text. Replace it with your own.

This is a sample text.

This is a sample text.

This is a sample text. Replace it with your own text.

This is a sample text. Replace it with your own text.

This is a sample text. Replace it with your own text.

Page 42: Product Development basics for software

KANBAN POWERPOINT TEMPLATECompany name

BACKLOG SELECTED DONEDEVELOPMENT

ONGOING DONE

TESTING

ONGOING DONE

DEPLOYMENT

ABC

DEF

GHI

JKL

MNO

PQR

STU

VWX

XYZ

T1

XYZ

T2

ALE

T3T4 XYZ

T1

XYZ

T2

ALE

T6T7

MKO

S5

UJN

S9

TGB

S1

YHN

S2

EDC

S6S7

PQR

STU

GHI

ASF

S6S7

RTG

S6S7

ASD

WER

IKL

ZXC

CVB

BNM

DFG

HJK

Page 43: Product Development basics for software

http://www.cognizant.com/InsightsWhitepapers/Kanban-as-a-Tool-in-the-Agile-Toolbox.pdf

Page 44: Product Development basics for software
Page 45: Product Development basics for software

The formula is: D = V * T

It reads as: DONE Features = Velocity multiplied by Time

http://agilefromthegroundup.blogspot.it/2009/09/done-features-equals-velocity.html

Page 46: Product Development basics for software
Page 47: Product Development basics for software

Astella is a Latin root that originated the words atelier and estaleiro (shipyard); a

place where great heroes are made, through science and art.