Heads up! To view this whole video, sign in with your Courses account or enroll in your free 7-day trial. Sign In Enroll
Well done!
You have completed Practice Java Objects - Word Guessing Game!
You have completed Practice Java Objects - Word Guessing Game!
Preview
In this video, we will set up the Minimal Viable Product, or MVP for the project we will build during this course.
Related Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign upRelated Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign up
Welcome everyone.
0:09
This course builds on what
we've taught in some other courses,
0:10
so I highly recommend checking
the prerequisites in the teacher's
0:13
notes below, just to make sure we're
all on the same page with our learning.
0:16
We should have a basic grasp
on the fundamentals of Java objects,
0:20
classes, methods, constructors,
encapsulation, and exception handling.
0:24
We should also be familiar
with arrays and loops.
0:28
If that all sounds familiar,
0:31
it's time to put all that knowledge
together and build something real and fun.
0:32
A complete word guessing game.
0:36
This is going to be exciting
because you'll see how all those concepts
0:38
we covered
come alive in an actual working program.
0:41
We'll be creating classes
with private fields, writing methods
0:45
that work together, handling
edge cases with exceptions, etc.
0:49
I'm also going to use this project
to show you some real-world software
0:53
development practices
that professional teams use every day.
0:56
And don't worry,
these aren't complex methodologies,
1:00
just practical ways to stay organized
and focused when building software.
1:03
Let's go over how this game will play.
1:08
So the game is usually played
by two people.
1:10
First, one person, we'll call them
the prompter, comes up with the word
1:13
that the other person, we'l call
the guesser, is going to try and guess
1:17
one letter at a time. The guesser is shown
blank spaces for each letter in the word.
1:21
The prompter keeps track of how many times
the player has had an incorrect guess.
1:26
There's a fixed number of incorrect
guesses that can be made.
1:31
If the guesser guesses all of the letters,
they win.
1:35
If they don't, they lose.
1:37
Now here's how we'll stay organized.
1:40
Professional developers break big projects
into small, manageable pieces.
1:42
We do this by defining what's called
a Minimum Viable Product, or MVP.
1:47
Basically, what's the simplest version
that actually works.
1:52
This helps us keep our scope
to only the required tasks, nothing more.
1:57
For our game, the MVP should allow users
2:01
to play a complete game
from start to finish.
2:04
We won't worry about fancy features like
player names or high scores initially.
2:07
Those are nice bonuses we could add later,
2:13
but they won't help us
get the product out the door any faster.
2:15
Remember, "YAGNI" - "you ain't gonna need it".
2:19
The idea here is to get your product out
as soon as possible,
2:22
and then change it based on how
users are actually using your software,
2:26
or even better,
what is actually being requested by them.
2:29
I show you how we organize this work using
2:34
what called a Kanban board.
A Kanban board is a simple way to track
2:36
what needs to be done, what we working on
and what's completed.
2:40
You'll see these used in most software
companies.
2:44
Now, you don't need to go create one
of these yourself to complete this course.
2:48
You can just visually follow
along with mine,
2:51
but there's nothing wrong
with creating one if you'd like.
2:53
It's extremely satisfying dropping
a task card into the complete column.
2:56
Let's go check it out.
3:00
So this is Trello.
3:03
It's an awesome web app that allows you
to easily create boards like this.
3:04
I've broken our game into small pieces,
or tasks, called user stories.
3:08
User stories are typically written
in a certain format.
3:13
The goal with these is to express
what feature is being requested,
3:16
who is requesting it, and for what reason
they are requesting it.
3:19
They don't contain the how.
3:23
That's our job as developers
to figure that out.
3:24
So each story describes one thing the game
should do from the player's perspective.
3:27
Here's what I created for our MVP.
3:31
As a guesser, I should be able to submit
a guess so that I can play the game.
3:33
That's definitely a valid request.
3:37
I'm going to move that over
to our To Do column here.
3:39
You'll see the structure is, as a persona,
3:44
I should, whatever the feature is,
so that, then whatever the reason of why.
3:46
This one sentence provides us
with the who, what, and why.
3:52
We just need to figure out the
when and how.
3:55
Okay next story here.
3:58
As a guesser I should be presented
with my current progress
4:00
so that I can make an educated
guess. That's fair.
4:03
This game is hard to do
without having that info.
4:06
As a guesser I should know how many
4:10
remaining tries I have left
so I am encouraged to be cautious.
4:12
Sounds good.
4:16
As a guesser,
I should be stopped from making a guess
4:18
that has already been made
so that I do not waste turns.
4:20
As a guesser, I should be able to know
when the game is won or lost
4:26
so I can acknowledge completion
with celebration or tears.
4:29
We should probably give them that.
4:33
And I'm going to stop right there.
4:35
I'll leave player
4:37
names and high scores in the backlog
column as these are nice extras
4:38
that we may be able to add later
but won't help us complete our MVP.
4:42
Notice
how each piece is small and focused.
4:47
That's the key to building software
successfully.
4:49
Break
big problems into small, solvable pieces.
4:52
As we work through each feature,
4:56
you'll be writing Java classes and methods
just like we did previously,
4:57
but now they'll all work together
to create something you can actually play.
5:01
You'll use constructors to set up
the game, private fields to track state,
5:05
methods to handle player actions,
and exceptions to deal with invalid input.
5:09
By the end of this course,
you'll have a complete working game
5:14
and real experience applying
5:17
object-oriented programming concepts
in a practical project.
5:19
Ready? Let's go!
5:22
You need to sign up for Treehouse in order to download course files.
Sign upYou need to sign up for Treehouse in order to set up Workspace
Sign up