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
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 bootcamp classes General Assembly in Atlanta Atlanta Tech Village
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 bootcamp classes General Assembly in Atlanta Atlanta 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 game Henry: Erasing social media past Tony: Random to-do Mike Zhai: NLP website and 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
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 Model Proof-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) 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 prot? Can you convince people now that you can do this? 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 prot? 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 prot rst First nd a need in the market Think of other companies who did this: Google, Facebook, LinkedIn CS370, Günay (Emory) Entrepren. Spring 2015 10 / 16
First step: Identify market need Don't think of prot 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 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 protable 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
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. These slides are designed to accompany Software Engineering: A Practitioner s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 2
Know Your Domain (c) earthonlinemedia.com Günay (Emory MathCS) Requirements Modeling Fall 2014 3 / 8
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. These slides are designed to accompany Software Engineering: A Practitioner s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 6
(c) dreamstime.com
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. 11
SafeHome Use-Case Diagram Access camera surveillance via the Internet cameras Configure SafeHome system parameters homeowner Set alarm These slides are designed to accompany Software Engineering: A Practitioner s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 13
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 developers Each User Story should imply an acceptance test Complexity 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 recorded Conversation: Discussion and clarification, modification of the story via communication with the user Confirmation: 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 usefulness E = 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 stories Task assigment Scheduling of task deadlines and releases Communication (posts and comments) 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 stories Task assigment Scheduling of task deadlines and releases Communication (posts and comments) Some examples: Trello, Pivotal Tracker, Rally, Google Keep Mandatory: 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 stories Task assigment Scheduling of task deadlines and releases Communication (posts and comments) Some examples: Trello, Pivotal Tracker, Rally, Google Keep Mandatory: 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 Specications Part 1: Why Bother? Part 2: What's a Spec? * Functional specications in Joel's words is equivalent to our functional requirements. CS370, Günay (Emory) User Stories Spring 2015 16 / 16