Wednesday, May 14, 2014

Dive Portal Mockup

This week, I have sketched out a basic mockup for the interaction between pages on the Dive Portal website. The green lines show the "clickable" items, as well as the paths those items should take.






Sunday, April 27, 2014

Activity Diagram

After meeting with Tom of Dive Oahu, he explained that the current system he uses for logging dives is through DiveBoard.com. Some of the perks of the system include the ability to download single or groups of dive records, both as a virtual log and in a printable manner. Tom expressed the desire, however, to be able to share these logs with buddies, as well as upload photos, which can also be tagged and shared. By having the logs stored virtually and accessible by online friends, the job of the dive coordinator/organizer is also made simpler by allowing them to quickly search for credentials online, in addition to compiling all the data necessary for submitting records to certification companies.

In looking at the flow of data through the proposed Dive Portal system, the following activity diagram shows the way users will be working in the system, as well as giving a timeline to demonstrate how this activity is different prior to a dive and following a dive.


Use Case Diagrams

In considering how one interacts with the proposed Dive Portal, several interactions have been proposed.

Feature: Plan a Dive
As a dive coordinator
So that I can invite members to dive
I want to add a future trip to Dive Portal

Feature: Log Dive
As a diver
So that I can keep track of my records
I want to upload my dive data to Dive Portal

Feature: Make Friends
As a diver
So that I can share dive data
I want to connect with friends on Dive Portal

These interactions can be seen more clearly in the following diagram:


Thursday, April 24, 2014

Math Investigation

The Problem

How many people are in on the lanai? 
Suppose everyone shook everyone else’s hand exactly once.  How many handshakes would that be?
Suppose there were 120 people on the lanai. How many handshakes would that be?

The Solution

In solving this problem, I began first by drawing a few pictures. I represented each individual by a dot, and each handshake by a line. These drawings for 1-5 individuals are as follows:




I then turned these into a chart, showing the number of individuals and the number of handshakes:

Number of Individuals Number of Handshakes
10
21
33
46
510


I then noticed a pattern I had seen before...if you take the difference between the number of handshakes from one row to the next, that difference is equal to the number of individuals in the first of these two rows. Allow me to clarify. Consider rows 3 and 4, with 3 and 4 individuals. When you take the difference between the number of handshakes associated with each row, that difference is 3, which is the number of individuals in the first of these rows. Similarly, if you add the number of individuals in the second of these rows, 4, to the number of handshakes in that row, 6, the sum is the number of handshakes in the subsequent row. This leads to a recursive formula, where H is the number of handshakes, and n is the number of individuals:

Hn = Hn-1 + n-1

This can also be written in summation notation as follows:


A recursive formula is great if you already know the number of handshakes for the previous row, but suppose you want to quickly determine the number of handshakes for 120 people. Maybe there is quicker way to determine this.

Consider if there are 4 individuals in the group: A, B, C, and D. Another chart could be made to show the handshakes as follows:

AB     AC     AD
BC     BD
CD

If you take this triangle of handshakes and duplicate it, placing the duplicate next to the original triangle, the resulting shape is a rectangle with n rows and n-1 columns:

AB     AC     AD
BC     BD      **
CD      **       **
 **       **       **

This demonstrates a way to turn the recursive equation into an explicit equation. Multiply the number of rows (n) by the number of columns (n-1) and divide in half:

H = n * (n-1) / 2

If you apply this equation to the original question of 120 people, the answer is:

H = 120 * 119 / 2 = 7,140

If 120 people each shook every other person's hand, there would be a total of 7,140 handshakes! 

Tuesday, February 25, 2014

Requirements Strategery and Interview Propositionating

In order to build a plan for execution of an online dive community, it is crucial to find out the needs of the stakeholders within the community. This means working with divers, dive companies, and boat captains to find out the best way to connect the members of each group to one another. There will, of course, be conflicting priorities, as well as desired functionality that is outside the scope of this class. However the goal will be to find a way to mutually benefit all involved parties.

The first category of stakeholders to engage is divers themselves. They are the majority population of the social network, thus their needs will be our top priority. Divers will be asked to complete an online survey with the following introductory information and questions:

Thank you for taking the time to complete this brief survey. We are working to build an online community for divers, and we would like to find out how we can best connect you to the community. By answering the following 10 questions, you can help guide our implementation process!
  1. Are you currently active in social media such as Facebook, Twitter, etc.? (Yes/No)
  2. Do you use any online diving resources? (Yes/No)
  3. If so, please list your top 3 (_________________)
  4. Do you regularly keep your dive log? (Yes/No)
  5. Do you prefer to buy or rent gear? (Buy/Rent)
  6. When traveling, how important is it to dive? (1: not at all important, 2: not very important, 3: somewhat important, 4: very important)
  7. Which of the following features of a dive community would interest you? (Select all that apply)
    • Logging dives
    • Connecting with local divers/clubs
    • Forums
    • Buying new gear
    • Buying used gear
    • Reading gear reviews
    • Booking charters
    • Booking classes
    • Checking dive conditions
    • Finding dive coordinates
    • Sharing photos
    • Logging certifications
    • Emergency contact information
    • On-call dive support (gear rentals, tank fills, instruction, charters, etc.)
    • Insurance
  8. Of the choices you selected, which 3 are the most important? (Select up to 3)
  9. If a new social network were built that smoothly integrated these items you've selected, do you see yourself taking part in the community? (Yes/No)
  10. If you would like to receive updates on implementation, please provide your email address (survey results will otherwise be kept anonymous): ________________
Thanks again for your participation!
For those divers who do submit their email address for updates, an initial thank you note will be emailed, followed by a monthly newsletter as implementation proceeds.

The next stakeholder to guide the development process is the dive company. For the purposes of this project, we will focus on an established dive club in the local area, as well as several instructors. Individuals will be asked to participate in a brief initial interview, and those interested in continuing will be invited to additional scrums throughout the development process. The initial interview will be conducted face-to-face at a mutually agreed-upon location. The following questions will comprise the bulk of the initial face-to-face interview:
  1. What is your current process for booking dive trips/classes locally?
  2. When you first dive with a new friend/student, how do you ensure they are ready for the level of diving/instruction you are pursuing?
  3. What sort of emergency information do you currently keep for those diving with you?
  4. Upon completion of the dive, what sort of records do you keep? What information goes into those records?
  5. Is there any information you share with divers after a dive? (photos, dive log, etc.)
  6. Do you have any sort of long-term follow-up with divers? What does that involve?
  7. What is the number-one way in which technology could enhance your participation in the dive community?
The goal of this information-gathering session is to find out any current breakdowns in the process, as well as the information needed to facilitate a simpler process. After the initial interview, a thank-you email will be sent to those opting to not continue working throughout the project. Upon project completion, a hand-written note will be sent to the individuals who stayed active with developers through the semester as well as a possible invitation to attend an underwater launch party and become founding members of the community.

Finally, integration of a dive network would not be complete without including boat captains in the community. The interview process would be similar to that of the dive companies and instructors, but the questions will focus more on the needs of captains:
  1. What is your current process for booking dive trips?
  2. Do you have a way to advertise last-minute space available on your boat?
  3. What is your current process for determining your dive location?
  4. When you book dives, are you responsible for ensuring the appropriate expertise/certification of your divers, or does that responsibility fall solely on the companies who book through you?
  5. Do you have a list of instructors you work with, or is that also the responsibility of the dive shop?
  6. What is your process for ensuring all divers are accounted for after a dive?
  7. If a diver turns up missing, what is your emergency action plan?
  8. What is the number-one way in which technology could enhance your participation in the dive community?
The follow-up for boat captains will also follow the the same plan as the dive clubs/instructors, employing post-interview thank-you e-mails for single engagement individuals and more engaging interaction with long-term collaborators.

Thursday, February 20, 2014

Do Not Hesitate to Contact

In conducting a search to find an appropriate project, it is necessary to initiate contact with potential clients. For many introverted or socially awkward programmers, this first attempt at making contact may prove quite daunting. Here is a recommend outline for that initial outreach:

Introduction
Always begin contact with a polite introduction. I usually try to keep it short and sweet, while simultaneously packing in a good amount of information about myself.
"Aloha! I'm Allison, a senior at Hawaii Pacific University, pursuing a double major in Math Education and Computer Science."
Reason
Although it is common in many cultures to spend a great deal of time socializing prior to getting down to the nitty-gritty of business, Americans tend to prefer direct, concise communication. When I give my reason for initiating contact, I try to keep it to one or two sentences. It is important to be both clear and complete in these phrases.
"In my software engineering course this semester, I have been asked to reach out to the community and work with a local non-profit. I was wondering if your organization has any technological needs that might be fulfilled by software development."
Connection
Once you have stated your reason for contacting your target organization, I recommend giving available times as well as contact information, allowing effortless scheduling of your first meeting.
"I would love to speak with you regarding any ideas you might have. I am available Tuesday and Thursday after 1 PM, and can be reached most quickly via cell: ###-###-####.
Closing
Again, the closing should be polite and succinct.
"Thank you for your consideration, and I look forward to meeting with you!
-Allison 
 

Saturday, February 15, 2014

Stakeholders: Military Processing

As stated in a previous post, the military could use a lot of help when it comes to management of paperwork. For those not familiar with some of the problems, posts by classmates Eric Gagnon and Thomas Wassum introduce some other issues aside from those I have experienced. Here are some of the potential stakeholders for a streamlined, virtual paperwork processing program:
  • The military member
While it seems rather vague, the military member referred to here is the one who is being in- or out-processed. Often, once a member arrives at a new duty location, they find out they missed some step of the intricate process, and they have to call back to their previous unit to request support from one of the offices. This would ensure that once a member departed, the paperwork needed was already complete.

  • The mission
Every military member is part of a mission, whether it is directly fighting an enemy, or otherwise supporting those who do. The amount of time spent managing all the paperwork takes an exorbitant amount of time away from the mission. This is the case both for the member being processed as well as the office doing the processing. Streamlining this will give time back to the areas where human decision-making and action is necessary for mission completion.

  • Support services
For those offices where members are supporting our front-line warriors, having the correct information is absolutely critical to getting the job done. If the right information doesn't get to the right office, sometimes it means people don't get where they need to be, and other times it means people don't get paid. Information is an incredibly valuable resource, and expediting correct information will prove to be priceless to our military!
Initially, this program would probably be best built as simply an SMTP-style sending of information. Further development would include integration with the numerous programs already in-use, such as the Defense Travel System, LeaveWeb, myPay, etc.