Monday, October 23, 2017

Artistic Collaboration, The Vision

The Original Idea

I am an artist. Specifically, I create photographs. Sometimes I play in front of the camera, and sometimes I play behind. Portrait photography almost always requires at least one other person, and in my community, I spend a lot of time organizing and attending events through Meetup.com. While I love the idea of their platform, I feel it's missing something for the types of events I want to plan. One of the problems we face when we plan events is that there are almost always a larger number of photographers than models. Meetup only allows us to specify how many individuals are attending an event, not break it down into types of attendees. My idea is to build an event platform where I can specify attendance numbers by category of attendee. For example, I want to host a photo shoot and invite 20 photographers and 10 models.

MVP

Based upon this, idea we are developing our MVP to support the following use cases:

  • As an artist, I can create a profile in the system
  • As an organizer, I can create an event with specified participant maximums
  • As a collaborator, I can (view and) respond to events with open slots
The above use cases have generated user stories such as:

  • As an artist, I want to register in the system with my email address so that I can log in again at a later time
  • As an artist, I want to have an initial profile created with default information so that I can get started without detailed information
  • As an artist, I want to update profile details so that I may connect with my target audience
  • As an artist, I want my password verified so that I may maintain control of my personality
  • As an artist, I want to select a unique username so that I may share my specific profile with other artists while protecting my email address
  • As an artist, I want to select one or more roles so that I may respond to events
  • As an organizer, I want to create an event so that I may invite collaborators
  • As an organizer, I want to limit participants by type so that I may provide a positive experience through balanced representation
  • As an organizer, I want to have a wait list managed for my events so that I may have backup attendees if RSVPs change
  • As a collaborator, I want to respond to an event invitation so that I may maintain details
  • As a collaborator, I want to be added to a wait list so that if someone drops out I may join an event
  • As a collaborator, I want to remove my RSVP so that someone else may attend 

Roles

I envision this becoming an expansive tool covering collaboration among the following individuals (and more):
  • Photography collaboration
    • Photographers
    • Models
    • Hair stylists
    • Makeup artists
    • Body painters
  • Musical collaboration
    • Singers
    • DJs
    • Instrumentalists
    • Sound engineers
    • Songwriters
  • Stage production
    • Actors
    • Directors
    • Script writers
    • Costume designers
    • Set designers

Additional Features

Looking ahead at the bigger picture, some additional features include:
  • As an artist, I can establish collaborative connections with individual users
    • I envision this similar to Tinder's swipe functionality, where you are presented with a user (within some filter criteria), and if you want to collaborate you can swipe right to connect or swipe left to discard
  • As a collaborator, I can communicate with my connections
    • This would be a simple in-app chat functionality between anyone who has already established a connection
  • As a venue coordinator, I can list recurring events for my venue
    • This would allow groups to see venues where they might be able to perform
  • As an artist, I can form "groups" with other collaborators (bands, stage productions, etc.)
    • This would allow these groups to apply to perform at venue events
  • As a promoter, I can list upcoming performances
    • This can also link to external ticket vendors such as eventbrite and ticketmaster
  • As an artist, I can solicit support for one-time projects; as a patron, I can support one-time projects
    • This could add kickstarter-like functionality into the app
  • As an artist, I can solicit recurring support for projects; as a patron, I can submit recurring support for projects
    • This could add patreon-like functionality into the app
The long-term vision for this project becomes larger and larger every time I think about it, which I find really exciting! I would love to hear your thoughts!

Tuesday, October 10, 2017

Artistic Collaboration, Week 4

After several weeks of pitching and discussing possible projects, we finally were divided into teams this week and began forming the initial framework for our project.

Team Decisions

  • The team decided we would work in the context of weekly sprints, since there is an expectation of a potentially deliverable application every week. 
  • I checked with the team to see if there were any desired deviations from the original project pitch. The team decided to stick with my original vision, and I will be acting as the product owner for this course.
  • We have committed to updating Slack Wednesdays and Fridays. We will also be using Google Hangouts for our Monday night meetings.
  • We will be working with the Microsoft stack, developing with Azure, ASP.net, SQL server.
  • We will be using BitBucket as our version control system.

Looking Back

Over the past week, I accomplished the following items:
  • Initiated Slack channel for team collaboration
  • Initiated project on pivotaltracker.com to maintain team backlog
  • Identified MVP with three primary use-cases (to be developed in this order):
    • As an artist, I can create a profile in the system.
    • As an organizer, I can create an event with specified participant maximums.
    • As a collaborator, I can (view and) respond to events with open slots.
  • Populated backlog with epics for setup and use cases (profile, event, rsvp)
  • Began populating backlog with user stories for setup and profile epics - this will be an ongoing task
  • Began working on a mock UI - did not complete

Challenges

I did not face many challenges in week 4 other than a lack of time spent on the project. I took this into consideration, and have begun clearing items off my calendar and replacing them with dedicated project time.

Looking Ahead

Over the upcoming week, I plan to accomplish the following items:
  • Flesh out the big vision of the application
  • Complete a mock UI that covers the first 3 use-cases
  • Draft ERD for the project
  • Set up a Google Drive folder to share documents
  • Review Slack channel discussion and summarize findings - upload to shared drive
  • Continue adding stories to backlog

Metrics

With this week involving mostly set-up and vision, there isn't much to measure that would have a lot of continuity in future sprints. I think the following would be appropriate ways to measure the sprint:
  • Accomplished: 1 story valued at 0 points
  • Stories added to the backlog: 7

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.