How to Build Software If You Can't Write Code
-
Upload
russell-wallace -
Category
Small Business & Entrepreneurship
-
view
3.565 -
download
9
description
Transcript of How to Build Software If You Can't Write Code
Who This Presentation is For
• You want to build a startup software company
Who This Presentation is For
• You want to build a startup software company
• You’re not a software engineer
Who This Presentation is For
• You want to build a startup software company
• You’re not a software engineer
• You’ve never worked at a tech company before
Who This Presentation is For
• You want to build a startup software company
• You’re not a software engineer
• You’ve never worked at a tech company before
• You believe “perfect” is the enemy of “good”
Why Learn to Be a Product Manager (PM)?
• If you're not an engineer, then you're everything else
Why Learn to Be a Product Manager (PM)?
• If you're not an engineer, then you're everything else
• You need to know how to build the whole company • At first, you're a PM
• Then, you're sales (or “Biz Dev” if you want to sound cool)
• If lucky, you get to be an exec (culture, long-term plans, M&A, etc)
Why Listen to Me?
• No sacred cows: I just want to get shit done
@rustysf
Why Listen to Me?
• No sacred cows: I just want to get shit done
• No allegiances: I don't debate the finer points • Not interested in the “perfect” PM style, methodology, tool, etc.
@rustysf
Why Listen to Me?
• No sacred cows: I just want to get shit done
• No allegiances: I don't debate the finer points • Not interested in the “perfect” PM style, methodology, tool, etc.
• My opinion: • Your success doesn't hinge on “perfect” product management
• Pick the most widely recognized, get organized and move on
@rustysf
Product Management = Non-Technical Building
• Software companies don't start needing sales or culture
Product Management = Non-Technical Building
• Software companies don't start needing sales or culture • They start needing a good software product
• Everything else comes after that
Product Management = Non-Technical Building
• Software companies don't start needing sales or culture • They start needing a good software product
• Everything else comes after that
• Software engineers build software
Product Management = Non-Technical Building
• Software companies don't start needing sales or culture • They start needing a good software product
• Everything else comes after that
• Software engineers build software • You're not a software engineer
Product Management = Non-Technical Building
• Software companies don't start needing sales or culture • They start needing a good software product
• Everything else comes after that
• Software engineers build software • You're not a software engineer
• You're only useful if you can help engineers build reasonably scalable code as fast as possible
What a PM Does
• Make the decisions about a product that determine if it succeeds
What a PM Does
• Make the decisions about a product that determine if it succeeds • What to build & when it needs to be built
What a PM Does
• Make the decisions about a product that determine if it succeeds • What to build & when it needs to be built
• Taking responsibility for what to include and what to leave out
What a PM Does
• Make the decisions about a product that determine if it succeeds • What to build & when it needs to be built
• Taking responsibility for what to include and what to leave out
• Approving progress as it happens
What a PM Does
• Make the decisions about a product that determine if it succeeds • What to build & when it needs to be built
• Taking responsibility for what to include and what to leave out
• Approving progress as it happens
• Any admin on the project:
• Setting up accounts, signing up for tools
• Removing “blockers” (things big & small that prevent engineers from continuing to build)
• Anything engineers don’t want to (or can’t) do
What a PM Does Not Do
• PMs DO NOT code
What a PM Does Not Do
• PMs DO NOT code • It's great to be technical, or to learn coding in order to
communicate, but don't try to commit code
What a PM Does Not Do
• PMs DO NOT code • It's great to be technical, or to learn coding in order to
communicate, but don't try to commit code
• PMs DO NOT decide how a product is built
What a PM Does Not Do
• PMs DO NOT code • It's great to be technical, or to learn coding in order to
communicate, but don't try to commit code
• PMs DO NOT decide how a product is built • When/Why is not How
• Engineers choose language, coding tools, libraries, etc (excepting choices that affect business aspects of the product, such as IP rights or functionality)
Side Note On Choosing What to Build
• This is where you can help as a “business guy” (or gal)
Side Note On Choosing What to Build
• This is where you can help as a “business guy” (or gal) • Talk to everyone who is relevant to your product
• Talk to every potential customer. Take detailed notes on what they want.
• If you're really good, sell a product before it's built
Side Note On Choosing What to Build
• This is where you can help as a “business guy” (or gal) • Talk to everyone who is relevant to your product
• Talk to every potential customer. Take detailed notes on what they want.
• If you're really good, sell a product before it's built
• DO NOT: read books, guess, or ask your friends and family what they want
Side Note On Choosing What to Build
• This is where you can help as a “business guy” (or gal) • Talk to everyone who is relevant to your product
• Talk to every potential customer. Take detailed notes on what they want.
• If you're really good, sell a product before it's built
• DO NOT: read books, guess, or ask your friends and family what they want
• Once you know what to build, refer to this presentation to get it built
Being a PM is Difficult
• Becoming an “A-level” PM takes years of experience, mistakes and mentors
Being a PM is Difficult
• Becoming an “A-level” PM takes years of experience, mistakes and mentors
• This presentation will help you look like a “B”
Being a PM is Difficult
• Becoming an “A-level” PM takes years of experience, mistakes and mentors
• This presentation will help you look like a “B” • Repeat: a few slides can't make you an “A”
• That's OK: you don't need to be an “A” PM to be an effective non-technical founder
Being a PM is Difficult
• Becoming an “A-level” PM takes years of experience, mistakes and mentors
• This presentation will help you look like a “B” • Repeat: a few slides can't make you an “A”
• That's OK: you don't need to be an “A” PM to be an effective non-technical founder
But you can't be a “C”
Product Methodologies (“How to Build”)
• Almost as many as there are coding languages • Waterfall/BDUF
• Agile/Scrum
• Extreme/kanban
Product Methodologies (“How to Build”)
!
SKIP IT:
You can cover 80%+ of engineers you'll work with by understanding a scrum-based agile format
Agile? Agile what?
• “Agile” is a philosophy/methodology that boils down to: • Break up the project into discrete deliverables
Agile? Agile what?
• “Agile” is a philosophy/methodology that boils down to: • Break up the project into discrete deliverables
• Communicate constantly
Agile? Agile what?
• “Agile” is a philosophy/methodology that boils down to: • Break up the project into discrete deliverables
• Communicate constantly
• Focus on product goals, not features
Agile? Agile what?
• “Agile” is a philosophy/methodology that boils down to: • Break up the project into discrete deliverables
• Communicate constantly
• Focus on product goals, not features
• It’s the opposite of: • Creating lengthy, detailed product specifications before getting
started
Agile? Agile what?
• “Agile” is a philosophy/methodology that boils down to: • Break up the project into discrete deliverables
• Communicate constantly
• Focus on product goals, not features
• It’s the opposite of: • Creating lengthy, detailed product specifications before getting
started
• Locking engineers into inflexible final product requirements before knowing what bugs/issues will arise
And Scrum is…?
• A set of procedures that are considered agile
And Scrum is…?
• A set of procedures that are considered agile
• No one actually implements them the same (AFAICT)
And Scrum is…?
• A set of procedures that are considered agile
• No one actually implements them the same (AFAICT)
• For your purposes, just know about: • Stories
• Sprints (and the rules regarding these)
• Retrospectives
Step 1: Stories
• “Stories” are the way you should think about product features
Step 1: Stories
• “Stories” are the way you should think about product features • Think in terms of the user: what goals does the user have with respect
to each feature?
Step 1: Stories
• “Stories” are the way you should think about product features • Think in terms of the user: what goals does the user have with respect
to each feature?
• Goal is to think through every detail of the user’s experience before building
A Basic Example of User Stories
• To sign into your software: • Story 1: User can register for an account
A Basic Example of User Stories
• To sign into your software: • Story 1: User can register for an account
• Task: user must enter full name, email and a password [include final designs for what this page looks like]
A Basic Example of User Stories
• To sign into your software: • Story 1: User can register for an account
• Task: user must enter full name, email and a password [include final designs for what this page looks like]
• Task: forms must validate that the email address is valid
A Basic Example of User Stories
• To sign into your software: • Story 1: User can register for an account
• Task: user must enter full name, email and a password [include final designs for what this page looks like]
• Task: forms must validate that the email address is valid
• Task: after registering, user is taken to their Account Profile page [include destination link]
A Basic Example of User Stories
• To sign into your software: • Story 1: User can register for an account
• Task: user must enter full name, email and a password [include final designs for what this page looks like]
• Task: forms must validate that the email address is valid
• Task: after registering, user is taken to their Account Profile page [include destination link]
• Story 2: User can sign into their account
A Basic Example of User Stories
• To sign into your software: • Story 1: User can register for an account
• Task: user must enter full name, email and a password [include final designs for what this page looks like]
• Task: forms must validate that the email address is valid
• Task: after registering, user is taken to their Account Profile page [include destination link]
• Story 2: User can sign into their account
• Task: user enters email address and password [include design for page]
A Basic Example of User Stories
• To sign into your software: • Story 1: User can register for an account
• Task: user must enter full name, email and a password [include final designs for what this page looks like]
• Task: forms must validate that the email address is valid
• Task: after registering, user is taken to their Account Profile page [include destination link]
• Story 2: User can sign into their account
• Task: user enters email address and password [include design for page]
• Task: user can click “Forgot Password” to get an email with a link to reset their password [include design & copy for email]
Add Each Story to PivotalTracker.com
• 80%+ of engineers will be familiar with it, just use it
Add Each Story to PivotalTracker.com
• 80%+ of engineers will be familiar with it, just use it
• Story writing guidelines: • Each story should relate to a single, discrete feature
Add Each Story to PivotalTracker.com
• 80%+ of engineers will be familiar with it, just use it
• Story writing guidelines: • Each story should relate to a single, discrete feature
• Try to think of every question your engineer will have:
• Always include needed design assets (PSDs, images, screenshots, whatever you have)
Add Each Story to PivotalTracker.com
• 80%+ of engineers will be familiar with it, just use it
• Story writing guidelines: • Each story should relate to a single, discrete feature
• Try to think of every question your engineer will have:
• Always include needed design assets (PSDs, images, screenshots, whatever you have)
• Use the “tasks” section to create checklists for the engineers to double-check before submitting
Add Each Story to PivotalTracker.com
• 80%+ of engineers will be familiar with it, just use it
• Story writing guidelines: • Each story should relate to a single, discrete feature
• Try to think of every question your engineer will have:
• Always include needed design assets (PSDs, images, screenshots, whatever you have)
• Use the “tasks” section to create checklists for the engineers to double-check before submitting
DO NOT assume that your vision for the product is clear to your engineering team.
Step 2: Organize & Track Your Backlog
• The “backlog” in Pivotal Tracker is the to-do list for the entire project
Step 2: Organize & Track Your Backlog
• The “backlog” in Pivotal Tracker is the to-do list for the entire project
• Always keep stories ordered by priority: • Stories that aren't dependent on any others are the highest
priority (e.g., login requires sign up, so build sign up first)
• Engineer will start at the top and work her way down
Keep it Simple for Your Team
• Pivotal Tracker is a reference point for the project; no need to get fancy • Ignore the point system; not necessary for tiny teams
• Keep all files, notes, comments, etc. in each story so that the history is in one place
Keep it Simple for Your Team
• Pivotal Tracker is a reference point for the project; no need to get fancy • Ignore the point system; not necessary for tiny teams
• Keep all files, notes, comments, etc. in each story so that the history is in one place
• Simple = always available, always responsive • Respond to any changes in the story within 1 hour
• Continually follow & update the status of each story until it is Accepted
What Pivotal Tracker Story “States” Should Mean
Unstarted No one has begun work
Started Someone has started work
Finished Needs code review (if only 1 engineer, skip this step)
Delivered PM must review and test the feature
Accept Story is completed in full, all requirements are met and have been double-checked
Reject Story not completed as requested (always leave notes when Rejecting)
Step 3: Group Stories Into “Sprints”
• A “sprint” is a protected period of time for pre-determined work on specific tasks
Step 3: Group Stories Into “Sprints”
• A “sprint” is a protected period of time for pre-determined work on specific tasks • One week sprint = plan on Monday, finish on Friday
• Once the sprint plan has been agreed to, it cannot be changed (this is why the sprint should only last one week)
Step 3: Group Stories Into “Sprints”
• Sprints are organized around three crucial meetings: • Start with a “sprint planner” on Monday
Step 3: Group Stories Into “Sprints”
• Sprints are organized around three crucial meetings: • Start with a “sprint planner” on Monday
• Conduct daily standups to check in every morning
Step 3: Group Stories Into “Sprints”
• Sprints are organized around three crucial meetings: • Start with a “sprint planner” on Monday
• Conduct daily standups to check in every morning
• Conclude with a “sprint review” on Friday EOD
Sprint Planner
• Meet & decide what will get done in the sprint
Sprint Planner
• Meet & decide what will get done in the sprint • Show up with all stories prioritized ahead of time
Sprint Planner
• Meet & decide what will get done in the sprint • Show up with all stories prioritized ahead of time
• Read each story with the engineer, starting with the highest priority
• Make sure the engineer knows what the story means and has everything she needs to complete it
Sprint Planner
• Meet & decide what will get done in the sprint • Show up with all stories prioritized ahead of time
• Read each story with the engineer, starting with the highest priority
• Make sure the engineer knows what the story means and has everything she needs to complete it
• Add all stories to be completed during a sprint to the “CURRENT” column in Pivotal • This will be your to-do list for the week: if all stories get done, you
& your team were productive
Each Day During the Sprint, PMs must:
• Conduct daily “standups” • Each morning, everyone must meet and answer aloud:
• What did you do yesterday?
• What are you doing today?
• Are you blocked from further work by anything?
Each Day During the Sprint, PMs must:
• Conduct daily “standups” • Each morning, everyone must meet and answer aloud:
• What did you do yesterday?
• What are you doing today?
• Are you blocked from further work by anything?
• Standups should be fast (15 mins max)
Each Day During the Sprint, PMs must:
• Conduct daily “standups” • Each morning, everyone must meet and answer aloud:
• What did you do yesterday?
• What are you doing today?
• Are you blocked from further work by anything?
• Standups should be fast (15 mins max)
• Over-communicate: share everything, clear anything preventing progress (“blockers”)
Each Day During the Sprint, PMs must:
• Assist, answer questions, and “groom” Pivotal Tracker: • Test the latest version of the product
Each Day During the Sprint, PMs must:
• Assist, answer questions, and “groom” Pivotal Tracker: • Test the latest version of the product
• Report all bugs in Pivotal Tracker
Each Day During the Sprint, PMs must:
• Assist, answer questions, and “groom” Pivotal Tracker: • Test the latest version of the product
• Report all bugs in Pivotal Tracker
• Accept/Reject any story within one hour after it is delivered
Each Day During the Sprint, PMs must:
• Assist, answer questions, and “groom” Pivotal Tracker: • Test the latest version of the product
• Report all bugs in Pivotal Tracker
• Accept/Reject any story within one hour after it is delivered
• Get any needed resources: answers from partners, additional designs, tools or libraries, passwords, etc.
Mid-Sprint DON’Ts:
• DO NOT skip stand ups • You can’t afford to be that busy
Mid-Sprint DON’Ts:
• DO NOT skip stand ups • You can’t afford to be that busy
• DO NOT change priorities or add tasks • The point of a sprint is to agree on the deliverable and allow the
engineer to focus
Mid-Sprint DON’Ts:
• DO NOT skip stand ups • You can’t afford to be that busy
• DO NOT change priorities or add tasks • The point of a sprint is to agree on the deliverable and allow the
engineer to focus
• DO NOT find out your engineer needs something that’s not in the story • All design assets (buttons, colors, fonts, screenshots, etc.) should
be attached to the story before the sprint begins
Sprint Review
• What got done? What didn't? Is the project on pace?
Sprint Review
• What got done? What didn't? Is the project on pace?
• Keep it casual • Friday end of day, 30 minutes max
• Often done over beers, should be fun
Sprint Review
• What got done? What didn't? Is the project on pace?
• Keep it casual • Friday end of day, 30 minutes max
• Often done over beers, should be fun
• Take notes for next sprint • Organize your backlog over the weekend based on what did/
didn’t get done
• Improve your organization (you will miss things at first; that’s OK)
Step 4: Assess Progress via Retrospectives
• “Retros” are meetings that give your team a chance to air out any issues happening with respect to the project • “PM is pissing me off”
• “My desk is uncomfortable”
• “I think we’ve taken on too much,” etc.
Step 4: Assess Progress via Retrospectives
• “Retros” are meetings that give your team a chance to air out any issues happening with respect to the project • “PM is pissing me off”
• “My desk is uncomfortable”
• “I think we’ve taken on too much,” etc.
• Do these once every two weeks at the end of the sprint
You’ll Know You Need a Retro If:
• Your project is behind
You’ll Know You Need a Retro If:
• Your project is behind
• Your team is aggressive / passive aggressive
You’ll Know You Need a Retro If:
• Your project is behind
• Your team is aggressive / passive aggressive
• You’re not sure what the project goals are anymore
You’ll Know You Need a Retro If:
• Your project is behind
• Your team is aggressive / passive aggressive
• You’re not sure what the project goals are anymore
!
IMPORTANT: DO NOT SKIP RETROS!
Format for Retros
• Take a “team temperature” on a scale of 1-10 (10 is best): “how are we doing as a team?” • Everyone on the team writes down their rating
• Review any outliers (if 2 folks are a 9 and 1 is a 6, ask the 6 why?)
• Try to come up with action items if needed
Format for Retros
• Take an individual temp • Each person writes down, on a scale of 1-10, how they think
they're doing individually
• Review any outliers here as well, make action items
Format for Retros
• Happy/sad/meh • Using a whiteboard or Excel sheet, make columns with headers of
:), :| and :(
• Have the team write bullet points beneath each: what is making you smile, frown or think “meh”?
• Can be anything, from “I had great coffee” to “office is too loud”
• Review each entry, make action items
Format for Retros
• Wrapup • Turn any action items into stories (if it's an engineering task) or to
PM to-do lists (if it's anything else)
• Review the action items periodically to make sure they’re being resolved
Retros Are Crucial!
• Retros can feel silly, but they’re important: • Shouldn’t take more than an hour
• Should leave the team feeling like they’re all on the same page
Building is Hard
• That’s why PMs are necessary
Building is Hard
• That’s why PMs are necessary
• As a non-engineer, your sole job at first is to organize & manage progress
Being a PM Makes Everyone’s Life Easier
• Smart people have figured out some basic but important procedures: agile/scrum
Being a PM Makes Everyone’s Life Easier
• Smart people have figured out some basic but important procedures: agile/scrum
• Following them is simple once you get used to it: • Stories & a tool to keep track of them (Pivotal Tracker)
• Sprints (planners, standups, reviews)
• Retrospectives
Be Organized & Communicate
• Amazingly simple things often undermine startups • Projects slow down when team members don't talk
• Breakdowns in communication lead to confusion, wasted time, frustration & ultimately business failure
Be Organized & Communicate
• Amazingly simple things often undermine startups • Projects slow down when team members don't talk
• Breakdowns in communication lead to confusion, wasted time, frustration & ultimately business failure
• Don’t let this happen to you
Be Organized & Communicate
• Amazingly simple things often undermine startups • Projects slow down when team members don't talk
• Breakdowns in communication lead to confusion, wasted time, frustration & ultimately business failure
• Don’t let this happen to you
Anyone who is detailed, thoughtful and has great taste for quality products can build awesome software
Thanks for reading! I’m happy to answer any questions:
@rustysf (russwallace.com)
Please share on Twitter, LinkedIn, etc!
image credit: http://jimbenton.com/