Nayanika: Design Process - Problem Statementnayanika
All too many projects fail because they start out without a clear idea of where they’re going.
I don’t have a clear idea when developing Nayanika. I know that I want to build an application to read my Comic Book collections. But, I’d failed to define what problem Nayanika need to solve. So, I always think that the feature is not enough. But, I fail to define what is enough for Nayanika.
I understood that I’m doing poorly in managing Nayanika. I’m not creating a better groundwork on design and architecture for Nayanika. It makes me not sure what Nayanika should be.
So, after learning from my mistake I also studied software management. And to design good software, there are steps that need to do:
Learn about the problem domain.
Interview the users and determine their needs and goals.
Develop the "Problem Statement".
Develop the "User Stories".
Implement the user story.
I could skip the first step. Because the problem domain is not that hard. I don’t need to buy a book or take classes for reading a book, right?
I also skip the second step. For now, I’m the end-user who will use the software. I’m currently doing the interview in my own head. And don’t force me to put it in writing since it would be silly banter.
So, for the first instalment of the Nayanika: Design Process series I will write about the third step, defining the problem statement.
This is my attempt to create a Problem Statement about Nayanika. My goal is to succinctly, but accurately, state the problem that Nayanika trying to solve. I keep reminding myself, that I need to focus on what and why. No tiny amount of how in this problem statement. I need to create, I hope, a well-crafted essay.
For cyber friends who don’t know what is problem statement is. Here is my understanding.
A problem statement should define the problem, not a computer-based solution to the problem. It’s about a real-world problem that end-users trying to solve. Words like computer, menu, dialog box, internet, "world-wide-web", and many more have no place here. A problem statement never have sentence like The system must… or We need to write a computer program that….
Writing a computer program is my problem, but it’s rarely involved in the problem that end-users struggling with. Most problems can be solved perfectly without computers—though the computer might make the solution easier or faster. So, the problem must be described perfectly well without mentioning computers.
If you can’t say it in clear well-structured English, then you don’t understand the problem well enough to design anything.
So, here’s what I came up with:
A Comic book is one of my favourite entertainment media. I have consumed this media since high school. Of course, I have a lot of collections on my bookshelves. But, my collection is a little bit unique.
I only have a small collection of comic books that I bought from the bookstore. It’s like 30% off my collection. The rest is from an indie comic book and comic strips.
There is not much difference between official comic books and indie comic books. The former is published by a well-known publisher and sold in bookstores. While the latter is printed and sold by the author. The only notable difference is in the format and quality of the book itself. But, it’s still acceptable to me. Both official and indie comic books are stored in my bookshelf spines out, pages in.
I know there is a debate about how to store books on the bookshelf. But, I prefer the spines out, pages in. Because it’s made it easier for me to recognize the comic book title on the spines.
Now, when coming into my comic strip collections, it’s become a little bit messy. I collect it page by page, put it in a folder, and then store it on my bookshelf. Remember, I’m not regularly buying the magazine nor I could get the comic strip pages easily. So, there are two problems with my comic strip collection.
First, since the comic strip is stored in a folder I couldn’t store it on the bookshelf as spines out, pages in. I couldn’t recognize what title it is. Second, the page sequences are a mess inside the folder. I need to sort the pages before I could read them properly.
I know how unique is my comic book collections. When I’m young, all the differences and quirks are not bothering me. But, it’s different now. I have less time and all those quirks are lessening my joy to read comic books. I just want to enjoy my comic book.
So, I hired Nayanika. To make my experience with my comic book enjoyable again.
At the very beginning, Nayanika will visit the bookshelves' room. Scan the books on each bookshelf and made a catalogue. The catalogue is a bit unique. It’s because it only listed the comic book title. And when I decided which comic book to read from the catalogue. I will pull an index card.
This index card is needed by Nayanika to find the comic book. Its information is only known by Nayanika itself. The index card is not only on the catalogue but int the bookshelf as well. I have two options. I browse from the catalogue or I visit directly the bookshelf. Only to retrieve an index card that later I will give to Nayanika.
This index card contains special information. Nayanika could know from the index card what type of comic book is. It’s necessary for her, especially when dealing with my comic strips. Because she will handle the re-ordering of pages of the comic strips. So, I could read it immediately.
Nayanika is also a tech-savvy assistant. Reading the comic book won’t be the same anymore. Instead of I read the comic book by myself, Nayanika does it for me. The comic book will be displayed on a big monitor with a control device.
The control device will help me to switch between pages. I could flip the page to the next or previous page. I could directly jump from the cover to the back cover. But, the best thing is I could go to the specific page.
Reading the comic book on a monitor gives other perks. I could zoom into the page and read the bubble text easily. The zoom and pan feature is also built-in on the control device.
The last feature is the slide show. A feature that I love. Because it’s helped me during my busy day. I just need to click the slide show button and voila. I could enjoy reading my comic book. The default time interval could be easily changed by the way.
Last but not least. If I want to change the comic book, I need to ask her for the index again. And she will replace my comic book with what I requested.
Goals (ranked by importance)
To read my comic book.
To enjoy my comic book.
- Comic Book
A combination of narration, dialogue, and stunning panelled comic art to tell an action-packed story via serialized issues.
- Official Comic Book
A comic book published by the publishing company and sold in the bookstores.
- Indie Comic Book
A comic book that is created, printed and sold directly by the author without help from the publishing company. The format and quality are totally different from comic books published by company.
- Comic Strip
A series of adjacent drawn images. The author often releases their comic book page by page to gauge the audience’s interest. When its popularity is big enough he/she will publish as a comic book either independently or with help of a publishing company.
Turn the comic book page to the next or previous one.
- Magnifying glass
Make objects appear larger. Very helpful when reading the text on comic books.
The back portion of a book’s binding is visible when a book is shelved in a bookcase; the portion is attached at the joints to the front and rear. source
I don’t think the problem statement is complete. But, it’s a start. And I’m surprised that I could make the problem statement without any computer jargon. Consider that my goal is actually to build a digital comic book reader application. So, I’m quite happy for now.
I think the problem statement is sufficient for now. Whenever something is up, I will update it.
Let’s meet on the next series of Nayanika: Design Process.
If you have any comments or corrections please feel free to email them to me. Also, if you found any of the content on this website useful consider buy me a coffee ;)