reminders - emory universitycengiz/cs370-pract-softeng-sp15/...as mark said, you have real-life...
TRANSCRIPT
Reminders
Emory Horror Code:
Request permission and document any code you did not write
We won't hesitate to report you: will cause a dent in your life
Take full advantage of this course
As Mark said, you have real-life competitors who are skipping college and taking bootcampclassesGeneral Assembly in AtlantaAtlanta Tech Village
Any other feedback about Mark?
Reminders
Emory Horror Code:
Request permission and document any code you did not write
We won't hesitate to report you: will cause a dent in your life
Take full advantage of this course
As Mark said, you have real-life competitors who are skipping college and taking bootcampclassesGeneral Assembly in AtlantaAtlanta Tech Village
Any other feedback about Mark?
Reminders
Emory Horror Code:
Request permission and document any code you did not write
We won't hesitate to report you: will cause a dent in your life
Take full advantage of this course
As Mark said, you have real-life competitors who are skipping college and taking bootcampclassesGeneral Assembly in AtlantaAtlanta Tech Village
Any other feedback about Mark?
The Greatest Inventor
Let's Setup the Teams!
Still too many ideas: Yiwei & Jake Mor
Our other promising entrepreneurs:
Toby: Mobile gameHenry: Erasing social media pastTony: Random to-doMike Zhai: NLP websiteand more. . .
Main Project: 1st iteration due 2/26
1st steps: due by 2/19
Choose:
Language/framework/platform that you will use for this project!Process tool and assign tasks to each team member; invite me and James
Join team Github that we assign
Make README with chosen technologies & process tool address
1st pitch: present in class on 2/26
Market study & UI mockup
Either of:
Data ModelProof-of-concept code
Submit PDF on Piazza before class
Main Project: 1st iteration due 2/26
1st steps: due by 2/19
Choose:
Language/framework/platform that you will use for this project!Process tool and assign tasks to each team member; invite me and James
Join team Github that we assign
Make README with chosen technologies & process tool address
1st pitch: present in class on 2/26
Market study & UI mockup
Either of:
Data ModelProof-of-concept code
Submit PDF on Piazza before class
Entrepreneurship
CS370 SE Practice & Startup, Cengiz Günay
(Some slides courtesy of Eugene Agichstein and the Internets)
Greatest inventor: Prof. Brain Nerve
CS370, Günay (Emory) Entrepren. Spring 2015 5 / 16
Got Ideas?
You can become an entrepreneur
Advice from some real entrepreneurs
My sister, Eda, and her friend, Melodi:
Creators of startups in Turkey:
Uplifers.com � Personal well-being news site
Mihera.com � Sell your own creations (Like Etsy)
CS370, Günay (Emory) Entrepren. Spring 2015 7 / 16
Why entrepreneurship?
As computer scientist you have options:
1 Work for some company
2 Work as freelancer
3 Work for yourself (entrepreneur)
What is it mean to be an entrepreneur?
persistent, passionate
want to make a change
not just idea, lots of sweat, too
CS370, Günay (Emory) Entrepren. Spring 2015 8 / 16
Why entrepreneurship?
As computer scientist you have options:
1 Work for some company
2 Work as freelancer
3 Work for yourself (entrepreneur)
What is it mean to be an entrepreneur?
persistent, passionate
want to make a change
not just idea, lots of sweat, too
CS370, Günay (Emory) Entrepren. Spring 2015 8 / 16
Intellectual Property: Urban Legends?
Ideas are not that important, there are lots of them.
More importantly:
Can you implement them?
With real people?
With real results?
Can make pro�t?
Can you convince people now that you can do this?
Bottomline:
Don't be afraid to share your ideas.
Develop your ideas further by getting feedback
Network with the right people (business, law, marketing)
CS370, Günay (Emory) Entrepren. Spring 2015 9 / 16
Intellectual Property: Urban Legends?
Ideas are not that important, there are lots of them.
More importantly:
Can you implement them?
With real people?
With real results?
Can make pro�t?
Can you convince people now that you can do this?
Bottomline:
Don't be afraid to share your ideas.
Develop your ideas further by getting feedback
Network with the right people (business, law, marketing)
CS370, Günay (Emory) Entrepren. Spring 2015 9 / 16
First step: Identify market need
Don't think of pro�t �rst
First �nd a need in the market
Think of other companies who did this: Google, Facebook, LinkedIn
analyze market
how many people?
what's the potential?
who are competitors?
sometimes you need to create your own market
Do some research!
CS370, Günay (Emory) Entrepren. Spring 2015 10 / 16
First step: Identify market need
Don't think of pro�t �rst
First �nd a need in the market
Think of other companies who did this: Google, Facebook, LinkedIn
analyze market
how many people?
what's the potential?
who are competitors?
sometimes you need to create your own market
Do some research!
CS370, Günay (Emory) Entrepren. Spring 2015 10 / 16
Design your product
product ideas:
1 something new
2 integrate an existing product from another domain or country
3 make something existing better, cheaper
users:
create user base
know your users
keep statistics of user categories
CS370, Günay (Emory) Entrepren. Spring 2015 11 / 16
Design your product
product ideas:
1 something new
2 integrate an existing product from another domain or country
3 make something existing better, cheaper
users:
create user base
know your users
keep statistics of user categories
CS370, Günay (Emory) Entrepren. Spring 2015 11 / 16
Going forward
make a plan, convince others this is pro�table
�nd incubator, accelerator, or private venture
later ask for big money if you can promise big returns
CS370, Günay (Emory) Entrepren. Spring 2015 12 / 16
Requirements as User Stories
CS370 SE Practice & Startup, Cengiz Günay
(Some slides courtesy of Eugene Agichstein and the Internets)
CS370, Günay (Emory) User Stories Spring 2015 13 / 16
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 2
Requirements Analysis Requirements analysis
specifies software’s operational characteristics
indicates software's interface with other system elements
establishes constraints that software must meet
Requirements analysis allows the software engineer
(called an analyst or modeler in this role) to:
elaborate on basic requirements established during earlier
requirement engineering tasks
build models that depict user scenarios, functional
activities, problem classes and their relationships, system
and class behavior, and the flow of data as it is
transformed.
Know Your Domain
(c) earthonlinemedia.com
Günay (Emory MathCS) Requirements Modeling Fall 2014 3 / 8
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 6
Domain Analysis
Define the domain to be investigated.
Collect a representative sample of applications
in the domain.
Analyze each application in the sample.
Develop an analysis model for the objects.
(c) dreamstime.com
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 11
Use-Cases
a scenario that describes a “thread of usage” for
a system
actors represent roles people or devices play as
the system functions
users can play a number of different roles for a
given scenario
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 13
Use-Case
Diagram
homeowner
Access camera
surveillance via the
Internet
Conf igure SafeHome
system parameters
Set alarm
cameras
SafeHome
From a �use case� to �user stories�
Use case diagram shows all things an actor can do
Can be broken down to individual user stories
CS370, Günay (Emory) User Stories Spring 2015 14 / 16
User Stories
Templates & Examples
Estimation & Planning
User Stories are the central focus for developersEach User Story should imply an acceptance testComplexity is estimated in Story Points
Arbitrary measure of relative complexity We use modified Fibonacci Sequence (0, 1, 2, 3, 5, 8, 13, 21) Estimates are collaborative to uncover assumptions Based on Staffing we estimate how many Story Points we can
accomplish in a 2 week Iteration (Velocity)
User Story Template
Example from Template
Other Example User Stories*
These were excerpted from http://www.westborosystems.com/2010/02/user-story-examples/ Also see http://agile.csc.ncsu.edu/SEMaterials/tutorials/coffee_maker/ for a great set of examples and
tutorials
Key Points
Cards: physical (or virtual) medium where the story is recordedConversation:Discussion and clarification, modification of the story via communication with the userConfirmation:Tests to verify the user story
I.N.V.E.S.T.
I = independent. Not requiring other features.N = negotiable. Can be excluded, revised, etc.V = valuable. Clearly contributing to product usefulnessE = estimable. Reasonable development estimates can be made from the story.S = small. Stories that are too big tend to be vague and to miss the other points, too.T = testable. Stories need to have a means of verifying functionality.
So how to maintain user stories?
You must use an online tool that has:
Keep track of requirements/features/user storiesTask assigmentScheduling of task deadlines and releasesCommunication (posts and comments)
Some examples: Trello, Pivotal Tracker, Rally, Google KeepMandatory: We will track your progress through it. Your points for �rst steps (due 2/19)depend on it!I own an PT academic account, please request invites.
CS370, Günay (Emory) User Stories Spring 2015 15 / 16
So how to maintain user stories?
You must use an online tool that has:
Keep track of requirements/features/user storiesTask assigmentScheduling of task deadlines and releasesCommunication (posts and comments)
Some examples: Trello, Pivotal Tracker, Rally, Google KeepMandatory: We will track your progress through it. Your points for �rst steps (due 2/19)depend on it!I own an PT academic account, please request invites.
CS370, Günay (Emory) User Stories Spring 2015 15 / 16
So how to maintain user stories?
You must use an online tool that has:
Keep track of requirements/features/user storiesTask assigmentScheduling of task deadlines and releasesCommunication (posts and comments)
Some examples: Trello, Pivotal Tracker, Rally, Google KeepMandatory: We will track your progress through it. Your points for �rst steps (due 2/19)depend on it!I own an PT academic account, please request invites.
CS370, Günay (Emory) User Stories Spring 2015 15 / 16
Joel Spolsky on Software Requirements
Highly recommended reading from Joel Spolsky's blog:
Painless Functional Speci�cations
Part 1: Why Bother?
Part 2: What's a Spec?
* �Functional speci�cations� in Joel's words is equivalent to our �functional requirements.�
CS370, Günay (Emory) User Stories Spring 2015 16 / 16