Use Case #1
This use case, I believe, represents a specific instance of what will possibly be a common application type that could be made with Fluency. This type of application can be seen essentially as a front end to a database with a few additional nice features.
User: Patricia Smalls, a Librarian working for a small special collections library at a mid-sized liberal arts College.
Technical Skills: Patricia considers herself to be an above average computer user. Besides basic computer application usage she has experience working with XML as a metadata storage format, using a CMS (content management system) to manage websites, and is an active blogger.
Task: Create a simple application to replace library resource due slips.
Narrative: Patricia Smalls is the sole full time librarian of a small special collection focusing on GLBT issues. The collection is entirely made up of donated materials and staffed by student volunteers. The collection is roughly 5000 items including books, magazines, peer reviewed journals, comic books, self published zines, and informational pamphlets. Use of the library is available to all students, professors, and staff of the University. The collection is independent of the larger university library system and Patricia and other interested parties want to keep it that way. A downside of this independence is that the GLBT library does not have access to use the University's ILS (integrated library system). Currently the library works how libraries had in the times BC (before computers). When a patron wants to check out a book they fill out two cards located in a pocket in the back of the book with their name and university ID and give it the staff who take the cards and assign a due date for the book. One card is left in the book as a reminder and the other is kept by the library and placed in a queue based on due date (different patrons may have different check out times ie undergrad vs grad vs Ph. D. student). Everyday the person that opens the library looks at the front of this queue and sends reminders for people whose books are due in a week and sets aside the day's over due books for Patricia to handle. Patricia is looking to streamline this process by creating an application that will store the information currently stored on the cards and the tasks handled by students to send reminders and alert her of over due books. The hope is that using this application will remove tedious tasks from Patricia and the student worker's day so they can work harder on improving the library and working with patrons.
Tasks and Aspects of Fluency Needed:
- Visible UI widgets - text fields, labels, buttons, multiple panels
- A database back end - add, update, search, delete
- Ability to send emails based on simple logic
- Ability to view all overdue books
Use Case #2
This use case differs greatly from the first in that it does much more computation and requires more application logic.
User: Phillip Beck, a high school physics professor.
Task: Create an application that will walk students through experiments.
Narrative: Phillip has been teaching high school physics for over 25 years and is widely regarded as an exceptional teacher by both his colleagues and students. When he first started teaching all of the experiments he had his class perform were based solely on his instruction and experiment worksheets he made. After teaching for three years he acquired several computers for his classroom. He decided that it would be useful to write applications to walk students through experiments, so spent a Summer learning BASIC and writing simple applications for this purpose. The program was text console only but it allowed students to check their calculations and go back to redo work they may have made mistakes during in either they measurements or calculations. Phillip believed this to be important to help students learn since errors would be caught before they turned in their assignment. Use of these programs has continued to the current day and their age is showing. Phillip isn't interested in learning how program past what he currently knows (PRINT "hello", INPUT "a = ", var, IF, ELSE, GOTO, etc.) but would like to modernize these applications so they can run better on modern computers and be familiar to students.
Tasks and Aspects of Fluency Needed:
- Visible UI widgets - text fields, labels, buttons, multiple panels
- Printing from Fluency application
- Perform calculations to check student's work
- Navigate through an experiment's steps
- Save/load progress for long experiments
Notes from class:
- Goals: replicate functionality of an old system, track progress of students, allow self-direction of students, allow more efficient learning, reduce boredom/generate interest, reduce grading time...
Use Case #3
User: Jane Elsworth, secretary at Multimedia Production Firm
Task: Create an application that helps her schedule resources (multimedia workstations) & make bookings accordingly.
Technical Skills: She is very familiar usage of computers & considers herself as an above average computer user, being a professional video editor.
Narrative: Jane has been working as a secretary at a firm that rents out multimedia workstations for use. Currently they have a paper based system for scheduling their resources. It becomes very tedious to track all the bookings when we are considering number of resources to be more than 15. The tracking is necessary since many customers try to make their bookings much in advance & she would like to maximize the chances of renting out the equipments at the same time avoiding overbooking a particular resource. She is looking for an application that can also provide her visualization of schedule/booking of a particular resource which will help her in accelerating decision making & enhancing her customer's experience. One of the visualizations technique that she is comfortable with is Google Calendar. Being a cunning business women she would like to obtain statistics as to which are the highly popular resources with an added temporal dimension so she can jack up the prices for them. Also as a feature for her customers she would like to make the schedule available in read only mode on the firm's website as an extension of her visualization requirement.
Tasks and Aspects of Fluency Needed:
- Visible UI widgets - Text fields, Labels, Buttons, Multiple panels, Drop Down Box, List Box, Grid Maker
- Printing from Fluency application
- Navigate through various resources's schedule
- Add, Update, Delete of schedule information
- A database back end - add, update, search, delete
- Ability to calculate most popualr resources
Complexities and scope cut down:
- Ability to provide the web form of the schedule of a particular resource can be considered as a web service and may not be considered for the initial release Fluency.
- This use case can be considered as a generic resource allocation application.
Use Case #4
User: Robert Gill, a development manager for an IT start-up.
Task: Create a prototype for his company's upcoming software projects in order to raise capital.
Technical skills: Robert is very familiar with computers and even has some background in programming some scripting languages.
Narrative: Robert's company is beginning work on a new piece of software and, being a start-up, they need to raise capital to progress into actual development. It is Robert's job to locate interested investors and demonstrate to them that his company's new program will earn back their money and then some. In order to do so, Robert wants to have a prototype running to show potential investors. Obviously, the programming team is busy working on the actual software; so it falls to Robert to create this protoype himself. The prototype application doesn't need to function exactly as the real thing would. For example, a button meant to generate some dynamic result in the actual program merely needs to populate some field with pre-written text, but it would be nice if some elements could do more complicated work like having the user enter his or her name and making the program greet them by name. It is most important, however, that the final output looks polished, is stable, and adequately demonstrates what the actual program will do.
Tasks and aspects of Fluency needed:
- Customization of visual widgets to the level that the user can create a thematic motif.
- Facilitate rapid development changes in the final output: users should be able to quickly alter one aspect of the UI without disturbing what is already built.
- Many types of UI fields to display any type of data generated for the prototype, including multi-line, auto-formatting labels.
- The final output should be able to populate many types of UI fields with dynamic or pre-determined data from a keystroke or button press.
Use Case #5
User: Jade Seaworthy
Task: Use Fluency to show off to potential employers, thereby improving her value and starting income
Technical skills: Knows Java well, learning design patters and new tools like Confluence on the job. Bad at documentation.
Narrative: Jade is a B629 student. She has been in the grad cs department at IU for as long as she can remember. She is now ready to graduate and is in a race to find the best employer. She took the class to hang out with and learn from other programmers, to get a better job someday, and to be better prepared to excel in that job. She is thinking about joining a local start-up that is using C#, so her interest in Java is related to other object oriented dreams. She has a good GPA, but fears that she may never understand the Fluency Codebase, and may therefore fail B629. She is also trying to impress her professor and her fellow students so they will give her good reviews. She sleeps about 4.5 hours a night and drinks lots of coffee.
Tasks and aspects of Fluency needed:
- Sexiness (so it's worth showing off)
- Stability (so it doesn't break when she's showing off)
- Ease of access (so it's easy to show off)
- Clean code (so it doesn't take 2 hours to learn what's going on when she is developing)