MVC (Model-View-Controller) Overview

This video describes the MVC (Model – View – Controller) framework for the layperson (non-technical). If you’re looking to better describe, discuss, or generally understand an application, this is a great place to start.

MVC (Model-View-Controller) Video Tutorial

Example Notes on a User Story

The Situation

Let’s say you’re Andrew, one of the founders of a fictional startup, Enable Quiz, that’s working on the job of skills assessment for companies that employ a lot of engineers. This afternoon, you have a story writing workshop with your two developers and you want to make sure you’ve really thought through the stories you’ve drafted and also put forward some specifics to your engineers with notes in an MVC format.

The next two sections describe the user stories and the MVC notes Andrew might prepare to kick start the discussion with his team.

The User Stories

Right now Andrew is focused on the epic user story below, which he’s also storyboarded and factored into child stories for purposes of discussion with his team. (Note: I used a tool to make the storyboard below because my handwriting is not great, but sketching stick figures on pencil and paper is just fine for this purpose.)

Epic Story: “As Helen the HR manager, I want to create a screening quiz so that I make sure I’m prepared to use it when I interview job candidates.”

agile epic story- enable quiz

As a manager, I want to browse my existing quizzes so I can recall what I have in place and figure out if I can just reuse or update an existing quiz for the position I need now. Make sure it’s possible to search by quiz name

Make sure it’s possible to search by quiz topics included.

Make sure it’s possible to search by creation and last used date.

As an HR manager, I want to match an open position’s required skills with quiz topics so I can create a quiz relevant for candidate screening. Make sure the quiz topics are searchable by name.

Make sure the quiz topics have alternate names, terms for searching

As an HR manager, I want to send a draft quiz to the the functional manager so I make sure I’ve covered the right topics on the screening quiz. Make sure it’s possible to add another user by email in this flow

Make sure it’s possible to include notes and customize the email

Make sure it’s possibly to just copy a link (for case where HR manager wants to send their own email)

As a functional manager, I want to send feedback on the screening quiz to the HR manager so I make sure I’m getting the best possible screening on candidates. Make sure it’s possibly to supply comments in-app.

Make sure the above are quiz-specific by default but can also be general.

Make sure it’s also easy to copy the name or URL of the quiz for their own correspondence.

As an HR manager, I need to purchase an upgraded service tier so I can add additional topics to my quiz. Make sure that users with billing privileges can upgrade the service.

Make sure that If the users don’t have billing privileges, they see a list of those that do and can contact them.

Make sure the charges are correctly prorated against the billing anniversary of the account.

As an HR manager, I want to add custom questions to the quiz so we cover additional topics that are important to the functional manager. Make sure the customer is not charged for this bank.

Make sure the custom bank is owned by the client organization and not accessibly by any other accounts on the system.


’As the HR manager, I want to try out the screening quiz so that I can make sure it works as I expected and that I’m ready to both give it to candidates and share the results with the functional manager.’ Make sure there is a clear indication that the user can (and should) test the quiz

Make sure there’s a ‘view as test taker’ mode available to the admin.


The Sketch with MVC

Just to reiterate, these aren’t a ‘specification’ for your developers- you’ll obviously get much better outcomes leaving the details up to their judgement and focusing your input on what you’ve learned about the needs of the user. That said, these notes may be a helpful way to get a productive discussion started, one that will help everyone ask the hard questions early and drive to a strong shared understanding.

Also, I’ve arranged these in the order of View, then Controller, then Model because (generally) I think that for this particular purpose (working as the agile product owner or similar capacity) that’s (generally) the best sequence.

Notes on the View

Andrew has looked at comparables and patterns and sketched out a few parallel ideas for the interface in Balsamiq–


For more on this, see the Prototyping Tutorial.

Notes on the Controller

Since he saw a few items that might be kind of tricky or non-obvious, Andrew (the PM/PO) decided to draft some notes on how this story might function-
‘As an HR manager, I want to match an open position’s required skills with quiz topics so I can create a quiz relevant for candidate screening.’
When a user removes a quiz topic (by clicking a ‘-‘, etc.) —
– Prorate evenly (within arithmetic possibility) the portion of quiz questions allocated to the remaining in the quiz is evenly pro-rated  to the remaining quiz topics
– Update the question allocation in Part 1
– Update the layout as needed
– Consult the number of active topics on their pricing plan and if they are now eligible for a small plan, issue a notice at the top of the screen ‘You could now downgrade to [Plan] because you only have [x] active quiz topics’.

Notes on the Model

Andrew made the following notes on how the quiz topic and quiz models might look-