Skip to main content

Class 8: User stories

Held: Wednesday, 8 February 2017



  • Agility, revisited


News / Etc.

Upcoming work

  • Hartl, Chapter 4 due Friday. (Do as much as you can within your time box.)
  • Reading Journal due Monday.

Good things to do

Nope, no extra credit.

  • Scholars Convocation, Thursday, 9 Feb 2017, 11:00 a.m., JRC 101. David Orr: Climate Change and the Crisis of American Democracy.
  • Thursday extras, Thursday, 9 Feb 2017, 4:15 p.m., Science 3821: Something on computer graphics (visitor from UMN).

User Stories

  • What are they?
  • How do we build them?
  • How do we use them?

Sample Stories

These are the stories you submitted. We’ll look over them and think about whether they meet our goals.

Set one

As an administrator, so I can raise money for the college, I want to be able to ask Alumni for donations

As a student, so I can get a job, I want to talk to alumni working in top companies

As an alumni, so I can find old friends, I want to be able to search for people on the website

Set two

As any user on News & Awards landing page, I would like to see some article stubs with links to recent Grinnell news In order to expedite finding of recent articles I want to read and make the landing page less sparse and somewhat pointless

As any user on Events landing page, I would like to replace (cont), meaning continuous, with All day on these types of events In order to remove user confusion with “continued”, a more (subjectively) more common use of the abbreviation

As any user on Events landing page, I would like to see just a calendar with “__ Events Available” for each day that has events, and be able to click on a day to see via pop up what those events are In order to make the calendar less ugly, as well as crowded, with varying row heights and 5-line event titles

Set three

When creating an account on as a student, it sends you to a link which tells you it’s necessary to create an account on This seems fairly useless unless you start on the page that the link directs you to.

Using the alumni calendar on to see events to attend will tell you the cost and the possibility of reduced prices, but doe not make it clear how to receive reduced prices if you meet the criteria.

Donating to Grinnell through the alumni page states that donators have the right to know that their donations are actually going toward the specific purpose that they state, but it is not clear how donators will be able to receive this information.

Set four

I am a Grinnell Alum and I am using Grinnell Connect to get in touch with other Grinnellians. I had two different names during my time at Grinnell. A is my official name and B is my preferred name. There are people who know my by A and some other people know me as B. However, when I try to register an account for, I don’t find a place for me to fill in my preferred name.

I am Grinnell Student and I want to find a summer internship. I know some Grinnell Alums work for big tech companies and I want to find who they are and how to contact them through

I am Grinnell Student and I already registered for and Now I am graduating from Grinnell and I hope both websites could auto-update my account to an alum account.

Set five

As a future Grinnell alum, I had decided to check out the web sites where I would, one day, visit frequently. Upon visiting the site, I noticed that there were lots of very interesting links. The site was very user friendly, and I enjoyed navigating it. I did have a few concerns, however. When clicking on most of the links, the site would go to the original, non-alumni Grinnell site. I think it would be really neat to see how the departments have changed over the years. All in all, I really liked this site.

As a web administrator for, I must admit that we had to cut a few corners on the web site. However, what’s most important in this web site is that it provides different information about Grinnell alumni reunions. We also showcase our new students and future alumns.

I enjoy web sites, especially well-developed ones, and therefore, I found this web site to be very informative. I appreciated the various ways someone could sign up for Although not as much fun as plans, I found this to be a decent web site and service.

Set six

As a student user of, I want to be able to view sample professional postings so that I know if I want to go through the extensive sign-up process.

As an administrator, I want to be able to track users who donate multiple times so that I can show content relative to their donation areas and recognize their continued interest in the college.

As a faculty user of, I want to be able to suggest content for the website so that users can see what my department is doing.

Set seven

I graduated from Grinnell about 3 months ago, and I’m a little nervous about where I’m going to go from here. I’m took a small job close to home but it’s not something I’d want to do in the long term. I was able to go onto and they have this page called “New Grad Resources” which was so helpful! There were lots of resources available for resume help and some older alums with more connections to help me get started. Overall, it was a very helpful resource since I was working with next to nothing before.

For me, computers and technology are not my forte. Most of my life I’ve been getting by doing most of my interactions face to face. But with the way the world has been changing over the years, I have found that online interactions are a very useful way to stay in touch with colleagues and friends. Using, I’ve been able to not only stay in touch with all of the people I went to college with, and even talk to some recent graduates who need some assistance!

So as a senior, I’m obviously concerned about my future. The resources on the alumni and Grinnell connect websites have been extremely helpful for me. I’ve been able to update my LinkedIn and build a real, respectable resume with help from the websites and the CLS.

Set eight

As a student, I would like to be able to distinguish between my concentrations and my major/majors, in order to be more specific about what my qualifications are.

As an alumni, I would like to be able to instant message another user, in order to contact old friends through a professional medium.

As a student, I would like to be able to access the sight [sic] without waiting for the training because I may have trouble finding time to complete formal training.

Set nine

As an alumni, I want to submit my financial information securely, so that I can make a small one-time donation to Financial Aid.

As an alumni, I want to view the date of the next reunion(s), so that I can make plans to attend.

As an administrator, I want to be able to make the banner picture smaller by at least half, so that the page looks less gimmicky.

Some Ruby-isms, Rails-isms, and More

Left over from last class.

Ruby != Rails

In answering questions, some of you seemed to conflate Ruby and Rails. Ruby is a general-purpose programming language. Rails is a Web application development infrastructure that happens to use Ruby for its programming aspects. (At least one of you also asked about HTML.)


The most difficult aspect of Ruby was digesting the syntax.


One of the aspects that I find the most confusing about Ruby is the aspect that I also find fascinating. The ability to refactor code and make it much more concise. I understand that most of the code in Ruby can be made more concise than in other languages, but I do not know how to do so as I am very new to the language and do not know many of the ways to refactor. I would like to learn more about how I can rewrite code so that it is still easily understandable, but much more concise.


What is it exactly? Why is it useful?

Hard to parse

The calling of functions using left shift bitwise operators confused me because I’m surprised why you just can’t call using function names and just append the strings together using the ‘+’ operator.


I don’t really understand how you can generate code at runtime yet you write the code before you run the program. Is there a way to go to a program that is already running and change the code and then the program changes the way it executes.

The concept of metaprogramming is sort of difficult to understand. What are some more examples of metaprogramming?

Duck Typing

What is it? How does it relate to key oop principles?


I am still working to understand what “yield” does. According to the reading, yield is commonly used with iterators. Once in the scope of the iterator, code is executed until it reaches yield. Then, any arguments given to yield are then used as arguments in the block of the iterator. I still do not understand why this is more or less useful to program with.


Scaffolding continues to confuse me, though I’m slightly less confused as to why it’s a good teaching tool.


I think I understand in a broad sense how mix-ins work, but I’m fuzzy on how they work syntactically in code. I’m not sure I would recognize them if I was looking at a program that used them. I understand that modules are included using the keyword include, but I’m not sure where mix-ins are included in Ruby code. I’m also not sure how yield works, even though it seems pretty intuitive, I’m just not sure if I would be sure when to use it.