SDLC

SDLC Research Report

This research report was complete as part of a class project.

Contributors: Scott Shirley, Erica Ferguson, Shannon Evans, Robert Gutzeit

Heuristic Art Library Final Report


Executive Summary

The goal of HAL is to provide a web and mobile streaming service that customers can use to easily watch independent films. HAL combines the functionality of Rotten Tomatoes, IMDB, and Netflix onto one platform. The primary requirements for HAL include:

  • The system will allow users to send suggestions of future films to incorporate into the library database. The system will also keep track of how many times the movie is requested.
  • The system will store and sort films in HAL’s database, based on the film’s genre, name, and rating.
  • The system will provide closed captioning on every film, potentially in multiple languages. These closed captions will be verified by a native speaker. 
  • The system will provide small form downloads to the user’s mobile phone using a low bandwidth option.
  • The system should be able to handle upwards of 50,000 concurrent users accessing the service at any given time, without suffering lag or crashing.

HAL will be completed using SCRUM. We plan to release a beta version of HAL within six months, with a series of two to three month maintenance cycles for new content delivery. Each of our sprints will last three weeks, for a total of eight sprints. Each sprint will produce a minimum viable feature, such as a search function or a review system. For the HAL team, we require at least 20 team members, including a Scrum Master, a Product Owner, and Development Team Members. The team will split into four development teams, where each team will handle one aspect of a backlog product.


Section 1. Introduction

The Heuristic Art Library (HAL) is a video streaming service for independent filmmakers. Like Netflix and Amazon Prime Video, it is a web-based and mobile-based streaming service that provides a platform for a niche market. The content library will be curated and limited to indie films. Choice is limited by a highly curated selection, with some exclusive content and many gradually released specials on genre, directors, countries, movements and themes. Our team intends to have HAL ready for beta deployment within six months. This deployment should be able to host a minimum of 50000 concurrent beta users. The HAL platform aims to offer indie films to a wider range of audiences through online distribution. These films are traditionally either difficult to access or unfamiliar to the general public. HAL also integrates the functionality of Rotten Tomatoes, IMDB, and Netflix into one platform; the service provides access to a film query system, a film catalogue of 30 films, a film information database, and a review-and-rating system for each provided film.  

The streaming entertainment service market is extensive, as there are over 200+ services currently on the market. Most of these companies are large, such as Hulu, HBO, and Netflix. These companies tend to offer a wide range of movies, television shows, and news stations. However, there are smaller streaming companies, such as KlowdTV and Frndly TV. These companies have far fewer media options and often are focused around a specific niche, such as live sport broadcasts or being family friendly. The streaming market is predicted to grow substantially over the next few years. As such, HAL needs to be unique enough that it can compete with all current and future companies.

It’s not enough for our service to only stream indie films; there are companies out there that have already started doing that. Currently, our biggest competitors for indie film offerings are MUBI, The Criterion Channel, and Kanopy. All three listed services have their own set of benefits and drawbacks. MUBI has secured a small library of exclusive rights to well-known indie film companies by rotating a film per day (one out, one in). Criterion includes a large collection of classic movies with the added benefit of bonus content for most films, but with the downside that the service is not available in all countries.  The biggest benefit of Kanopy is that it is free for most users and has a relatively large content selection, but requires a library card or university log-in, restricting the user base. As such, the HAL product must provide unique functionality to distinguish itself from the market.

 As such, the HAL application enhances the market by meeting a need not yet met by other streaming services. Indie films have traditionally been difficult to access. Whether it’s due to a user’s region, the price of service, or difficulty getting exclusive rights, most people do not have consistent access to indie films. HAL intends to change this. By having a low price point and allowing access to users of all regions, more people will be exposed to indie films, and HAL will become their main resource for watching these films. In addition, by incorporating the features of IMDB and Rotten Tomatoes in tandem with film streaming, our service can offer more than our competitors. 

When considering the specifications for HAL, it is important to keep in mind the individuals who are invested in the product’s success. With this in mind, our stakeholders include the film publishers, website users, the client who commissioned the software, the engineers, and the website designers. The following describes the reasons they have been identified as stakeholders:

  • Film Publishers
    • As the group who will be responsible for providing licensing to films, they have a vested interest in the service being high-quality. Listening to their feedback will help make a stronger product and will help our company maintain good relations with publishers.
  • Subscribers
    • As the films being brought onto the website are dictated by the demand of the users, the service cannot succeed financially without a strong user base. As such, their feedback must be treated seriously.
  • Founder
    • As the client who commissioned the product, working to meet her desired results for the software is a vital aspect to making the product a success.
  • Engineers
    • As the group who will be working to build the final product to specification, they will have a strong implication in the success of the product and will provide feedback necessary to making a better final piece of software.
  • Application Designers
    • As the group responsible for creating a functional UI and UX, listening to their input is necessary for the financial success of the service.

When building the HAL software, it will be critical to involve these groups at all stages during development. This is vital in supporting the financial success of the service.


Section 2. Software Requirements

2.1 Business Requirements

  • Film publishers
    • For film publishers, our service will offer several features in user analytics. These features include the following:
      • Observing the type of audience who engage with films on the service. This allows for produced movies to be better targeted to the audience which most resonates with their stories, making marketing more successful, as it can be targeted to that audience.
      • Monitoring user retention on films, as well as points in the film where audience engagement drops off. Having this targeted information provides the ability to better decide how to produce and craft a movie to meet audience needs, which provides the tools necessary for creating financially viable films.
      • Recommending films based on analytics to increase audience growth for film, which allows for more eyes to be put on the film. This service ensures that producers are able to put their movies where they are most likely to be watched, increasing traffic per movie, and increasing the number of people who will search for movies made by the same production company.
  • Subscribers
    • You will be able to make requests for films to be placed on the service and receive access to otherwise difficult to access films. This unique offering allows for the users of the service to direct how the service curates experience, allowing for the HAL software to be supported by the feedback of the users. This support lets HAL better match the needs of its users, ensuring it is always able to provide unique films that may otherwise be inaccessible.
    • You will have access to functionality similar to both IMDB and Rotten Tomatoes, allowing for subscribers to gain and produce targeted information, specific to independent films. This allows for a fluid service, where a user can research about films they would be interested in watching, see what the ratings by other film lovers have been, and go directly to independent films that have piqued your interest.
  • Founder
    • You will be able to make requests for changes to the software and catalogue holders to better fit the product vision. The software’s unique proprietary system will not only help to retain current customers but will also have an increase in the user base, generating a growth in revenue.

2.2 User Scenarios and User Stories

Jeremy wants to find a film

Jeremy Louqwurm, a film major at USC, struggles with keeping track of independent films he has watched in his coursework. He is often so busy observing the composition of a frame or the significance of a scene that he forgets who made the movie or what the title was. Last week, an independent film was demonstrated in class – a winner of the Moongroove Film Festival. He’d really like to watch the movie again and study its use of sound design, but he would really rather not bother with emailing his professor about it. He remembers a word from the title, but not much else. Is there some way he could find the same movie to watch it again?

<Magic Happens>

Over the weekend, Jeremy was able to search for the film using the keyword he remembered. It did not pull up any immediate results, but it gave him a list of films with similar words in the title. In that list was the movie he had intended to find – he was off by just a few letters. Within minutes, Jeremy was able to stream the movie and study its contents. He was also able to find similar films and spent the entirety of his weekend observing and re-watching high-quality independent films. His understanding of artistic choices in films grows, and Jeremy comes into his class with a few suggestions for what could be shown in class next.

Carol enjoys learning in her downtime

Carol Haskin, a modern-day eccentric and lover of the obscure and non-mainstream. A mother of one, unfortunate widow but currently remarried. During a normal week (not quarantine), she spends time with her family, volunteers at and occasionally sells her home-made goods at local non-profits, and attends swap meets and co-ops. As a fortunate benefactor, she is able to provide for her family within comfortable means while no longer having to work a full-time job.  She and her husband also enjoy going to live local music events taking in all the various flavors Seattle has to offer. 

<Magic Intensifies> 

However, now in post COVID Seattle, most of their usual indulgences that took them out of the house have been canceled. Given that most of her family’s entertainment included social environments, they are now looking for something to do at home that provides unique offerings. She recently found the HAL streaming service, which enabled her family to find various indie films and docu series. The streamlined service with unfamiliar directors quickly filled the needs of her family to learn more about the obscure corners of the world from differing points of view. She is now waking up the next day excited to share with her friends via virtual meetings about her previous night’s findings.

User Story Cards

User Story Card 1 

TitleUser views film and artist information
DescriptionAs a user with a subscription, I want to see the film and artist information on any given movie.
Success CriteriaGiven I am a subscriber, I have access to a page which details the film’s history, as well as actors.Given I am a subscriber, I will be able to search this database of film information, separate from the movie catalogue.Given I am a subscriber, I will be able to ping inaccurate or outdated information, which will be updated by the developers.

User Story Card 2

TitleUser views and makes reviews
DescriptionAs a user with a subscription, I want to see professional reviews on a film, as well as leave my own.
Success CriteriaGiven I am a subscriber, I will be able to see the given rating for a film, by both professional reviewers and other subscribers to the service.Given I am a subscriber, I will be able to leave my own review and rating for a film.Given I am a subscriber, I will be able to mark user reviews as being either relevant or not relevant. Given I am a subscriber, I will be able to submit requests for films not currently in the database.

User Story Card 3

TitleUser watches a film
DescriptionAs a user with a subscription, I want to be able to watch a film on web and mobile platforms.
Success CriteriaGiven I am a subscriber, I will have unlimited secure access to films across my devices with HD options, up to 4K with HDR as available.Given I am a subscriber, I will be able to watch these films with closed captioning in English, French, Spanish and Mandarin.Given I am a subscriber, I will be able to seamlessly pick up where I left off on a film, on a supported mobile, computer, or smart device (i.e. Roku, Chromecast, Firestick).Given I am a subscriber, I will be able to download films onto a supported platform to be watchable when the platform is offline.

User Story Card 4

TitleUser can search for specific films
DescriptionAs a user with a subscription, I want to easily find movies I want to watch.
Success CriteriaGiven I am a subscriber, I will be able to search for a specific movie by title.Given I am a subscriber, I will be able to search for films in a specific category and add these to a “Watch Later” list.Given I am a subscriber, I will be able to search for films that have a specific actor, actress, or director.Given I am a subscriber, if a film is not available, I can suggest it to be added to the database. 

User Story Card 5

TitleUser can utilize Director recommendations
DescriptionAs a user with a subscription, I want to see recommendations based on directors I have previously watched.
Success CriteriaGiven I am a subscriber, I will be able to see personalized recommendations based on content consumed.Given I am a subscriber, I will be able to remove directors that I am not interested in.

User Story Card 6

TitleUser can utilize Actor recommendations
DescriptionAs a user with a subscription, I want to see recommendations based on what actors were in consumed content.
Success CriteriaGiven I am a subscriber, I will be able to see personalized recommendations based on actors in films that I have watched.Given I am a subscriber, I will be able to remove recommendations containing actors I am not interested in.

User Story Card 7

TitleUser can utilize Film recommendations
DescriptionAs a user with a subscription, I want to see recommendations based on what I previously watched.
Success CriteriaGiven I am a subscriber, I will be able to see personalized film recommendations based on category, actor, or director.Given I am a subscriber, I will be able to remove film recommendations that I am not interested in.Given I am a subscriber, I will be able to see why I am being given certain recommendations based on what the software believes my interests are, and remove said interests if I do not agree with them.

User Story Card 8

TitleUser can flag reviews
DescriptionAs a user with a subscription, I want to be able to flag reviews as hateful, spam, or incorrect.
Success CriteriaReviews of content will be available for peer review.Given I am a subscriber, hateful, spam, or factually incorrect reviews will be removed. Given I am a subscriber for a minimum of 30 days, I will be able to flag review content I believe to be hateful, spam, or incorrect.

User Story Card 9

TitleUser can standardize volume levels
DescriptionAs a user with a subscription, I want to set peak volume limits of my content.
Success CriteriaGiven I am a subscriber, I can set audio normalization on content.Given I am a subscriber, I can enable mono, stereo, or 5.1 surround sound modes.Given I am a subscriber, I can modify the above controls on a per film basis or content wide.

User Story Card 10

TitleUser can flag inappropriate user conduct
DescriptionAs a user with a subscription, I understand hateful, spam, or factually incorrect reviews can lead to removal of my account.
Success CriteriaGiven I am a subscriber, I will be able to report users of the system if they share content that is hateful, spam, or inaccurate.Given I am a subscriber, if I post hateful comments I will be removed from the platform after review.Given I am a subscriber, I will receive a warning after spamming reviews 3 times, and will be suspended from posting if warnings are ignored.Given I am a subscriber, I will be suspended from posting after posting factually incorrect information 3 times. 

User Story Card 11

TitleUser manages and moderates their account payment.
DescriptionAs a user with a subscription, I want to have secure authorized billing.
Success CriteriaGiven I am a subscriber, I will receive reminders one week before the monthly billing period, and additional warnings the day before the billing period.Given I am a subscriber, I can securely store my credit card information on the service to use for automatic subscription renewal.Given I am a subscriber, I can contest charges made to my account during any payment period, and if I make a request to cancel my account, the account will close at the end of the calendar month.

2.3 Systems Requirements (Functional and Non-Functional) 

Functional

  1. The system will provide closed captioning on every film, potentially in multiple languages. These closed captions will be verified by a native speaker of that language.
    • User Story Card: 3
  2. The system will automate audio normalizing for all content by reducing volume spikes between films.
    • User Story Card: 9
  3. The system will provide recommendations to the users based on what they previously watched. These recommendations may be about content, actors, or directors.
    • User Story Card: 7
  4. The system will provide 4K / HDR content when available. 
    • User Story Card: 4
  5. The system will provide a streamlined search function with keyword autofill.
    • User Story Card: 4
  6. The system will create a separate Watch Later Category. The user will be able to populate this category with content that they want to watch. 
    • User Story Card: 4
  7. The system will store and sort films in the service’s database, based on the film’s genre, name, and rating.
    • User Story Card: 1
  8. The system will provide small form downloads to the user’s mobile using a low bandwidth option.
    • User Story Card: 3
  9. The system will remember where a user left off in a film so the user can resume watching from that timestamp.
    • User Story Card: 3
  10. The system will allow users to send suggestions of future films to incorporate into the library database. The system will also keep track of how many times the movie is requested.
    • User Story Card: 4

Non-Functional

  1. Users will be able to search the film database by title, taking the user no longer than 5 minutes to find the exact title, or up to 10 similar film alternatives.
    • User Story Card: 4
  2.  Users will be able to receive recommendations from the film database by director, receiving upwards of 5 recommendations by the director, or up to 5 similar film alternatives.
    • User Story Card: 5
  3.  Users will be able to receive recommendations from the film database by actor and will provide upwards of 10 film recommendations in which the actor stars in, and 5 alternative films with similar actors.
    • User Story Card: 6
  4. The system shall function all days of the week (Mon-Sun), allowing for the user to search, rate, and read about films. Any downtime in the system will last no longer than 5 seconds.
    • User Story Card: 4, 3, 2, 1
  5. The system should be able to handle upwards of 50,000 thousand users accessing the service at any given time, without suffering lag, or crashing.
    • User Story Card: 3
  6. Security standards for storing user credit card information shall be PCI compliant, as well as abide by federal laws. 
    • User Story Card: 11
  7. The user shall be able to access and submit reviews for each film. All reviews will have a maximum of 300 characters. 
    • User Story Card: 2
  8. The user shall have access to each film’s HAL ranking. The ranking will vary from being a small red dot in the center of HAL, to a 5 being a full red HAL eye. 
    • User Story Card: 2
  9. Users will be able to mark reviews as spam, hateful, or inaccurate after being on the platform for a minimum of 30 days. 
    • User Story Card: 8
  10. After 3 confirmed and reviewed notifications of posting spam, hateful, or inaccurate information, the user will be removed from the platform.
    • User Story Card: 10

Section 3. Context Diagram, Activity Diagram and Architecture

3.1 Context Diagram

Figure 1. Context diagram of the Heuristic Art Library.

The HAL system is reliant on external services, users, and film producers.  The following details these external interactions with the HAL system: 

  • Film Producers
    • The HAL service must interact with film producers, receive film rights and information from the producers, as well as generate analytics on who is streaming their movie. 
  • Film and Artist Information Database System
    • The HAL service must interact with an external database of film and artist information, as referencing pre-existing film and artist information would be more cost-effective. 
  • Film Review Database System
    • The HAL service must also work with external film review databases to share previous reviews on the film, and to host the addition of new reviews by users of the service.
  • Film Recommendation System
    • The HAL service must interact with an external film recommendation system, which will provide a recommendation algorithm that the HAL developers can then further modify. 
  • Digital Film Database System
    • The HAL service must work with an external films database, which will host the movies that viewers can stream and download. Hosting this database separate from the service will be less taxing during moments of high user demand.
  • User of Service
    • The HAL service must interact with the user, who will provide their information and payment information in order to interact with the service and receive access to the previously listed services.

Using these services, as detailed within the context diagram, will allow for the HAL system to be both scalable, and maintainable, as the demand for the service grows.

3.2 Activity Diagram

HAL utilizes flow in the control system to ensure step-by-step execution of user cases. In Figure 2, you can see the basis flow for when a user first initializes a search queue. The request comes into HAL and the response is forked into one of two availabilities in the Search System. The input request is either available or unavailable. HAL will then generate Suggested Content to which the user can agree or disagree with. If the user does not agree with the Suggested Content, they will be prompted to search again. If they do agree with the suggested content, HAL will proceed to the next section.

Figure 2. Activity diagram of the Heuristic Art Library.

In the next simplified section, HAL will ensure the user is connected via a stable internet connection that will be able to provide the minimum required bandwidth (480p). From there the Playback system will queue the video that the user has selected. Then, in the final step, HAL will utilize the Playback system to launch the streaming portion of the service to play the video for the user. 

3.3 Architecture

Given the nature of the service, the architecture we have chosen to use for the HAL service will be the three-tiered, client-server system architecture. The architecture of HAL is represented in Figure 3.

Figure 3. Three-tiered client-server architecture for HAL streaming service.

The typical structure for a three-tier architecture deployment would have the client tier deployed to a desktop, laptop, tablet or mobile device or any web-based application. The underlying logic tier is hosted on one or more application servers, but can also be hosted in the cloud or on a dedicated workstation, depending on the complexity and processing power needed by the application. Finally, the data layer consists of one or more relational databases, big data sources, or other types of database systems hosted either on-premises or in the cloud.

In regards to HAL, our set of servers include a Film Catalogue Server, a Film Streaming Server, a Film Review Server, and a Film and Artist Information Server. The following describes the four servers:

  • The Film Catalogue Server will allow for the client to browse the current film selection on the service, and select a film to review, stream, or get more information on.
  • The Film Streaming Server will provide the streaming functionality for a specific film.
  • The Film Review Server will host the rating of a film, along with written reviews, to be accessed in relation to a film.
  • The Film and Artist Information Server will host the service which provides information related to a specific film, which the user can peruse at their leisure.

Using HAL should be intuitive.  Once they log on to their web or mobile platform and connect to our service, the internet will allow them to access any of the four services. Given the nature of this design, there should be no issue if multiple people try to access the same service at the same time. In addition, as our client-base grows, the system will be able to scale to support the increased traffic.

We chose a three-tiered client-server system architecture since it would fulfill the requirements we’d need to make HAL successful. The system is composed of a set of services, where each service can be delivered by a separate server. As a streaming service, there are many amenities we need to offer our clients. Therefore, breaking the services up is an easy way to keep everything organized and successfully delivered to our clients. In addition, client-servers work extremely well when data in a shared database needs to be accessed from multiple locations. Our services need to support a large client base, so this architecture suits our needs. In addition, client-server architectures provide independence and separation. We can change specific services and servers without affecting the rest of the system. Finally, we have chosen a three-tier client-server approach over a two-tier client-server approach in order to combat any problems with scalability and performance.


Section 4. SDLC Process

4.1 SDLC Selected

For this project, we have chosen to implement SCRUM. SCRUM is an agile process that works best for projects that have continuous deadlines, complex requirements, and a need for iterative development. In Scrum, progress is made through a series of iterations known as sprints. Each sprint tends to last anywhere between two to four weeks. A diagram of the SCRUM process can be seen in Figure 4. 

Figure 4. SCRUM Diagram. (source: https://jordanjob.me/blog/scrum-diagram/)

Given the constantly evolving state of streaming technology, being able to develop the HAL project swiftly and with flexibility in design is a necessity. The following details the justification of using SCRUM for the HAL service:

  • Highly iterative and allows for analysis of design in each stage.
  • Requirements are volatile and will require revisiting over time.
  • A more collaborative approach where customer involvement is high.
  • Is adaptive to changes. The cost for a change is lower as the scope is defined for smaller release timelines
  • Suited for the fast-paced development environment or continuous production industry

As the HAL service should be launched relatively quickly, to ensure that the service can begin to grow its user base, the duration for development should be less than a year. Given the requirements for the service, the following time-frame has been decided for development:

  • 6 months for initial deployment
    • 2-3 month maintenance cycles for new content delivery

4.2 SDLC Stages: Deliverables, Duration

This section covers the stages, durations, and deliverables in the Scrum lifecycle. The table in Figure 5 details each sprint, including the goals to be accomplished by the HAL development team.

Sprint 1Sprint 2Sprint 3Sprint 4Sprint 5Sprint 6Sprint 7Sprint 8
Project front endFilm catalogueFilm search functionsReview systemFilm information database & integrationsUser recommendationsAudience analyticsAudio normalization & captions
Team 1User loginFilm request systemSearch by titleAveraging user reviews for filmFlag inaccurate information systemUpdate user history on films watched & reviewedUser system to opt-in or out of analytics systemAuto-caption generation system
Team 2Account creationDatabase of digital moviesSearch by directorDatabase of user reviewsFilm info databaseGenerate predictive film recommendations based on other users Anonymous generation of where users stop watching films, and from what applicationUser system to flag poor or inaccurate captions
Team 3UI and UXUI integrationAuto-fill text generationGraphics and UIInfo page design and UIDesign of recommendations list & user settings menuInterface for film analytics to be viewed, as represented by graphs and raw dataUI of user settings menu where user can set audio preferences (Volume, caption size, font type)
Team 4Payment systemFilm genre tagging systemSearch by actorText review verification systemRedirect user to other films with director/actor in systemUser settings menu with option to modify & add interests Anonymous tracking of number of users using the service in their relative time zoneCaption verification & updating

Figure 5. Sprints within the HAL Scrum lifecycle.

As shown in Figure 4, each item to be completed during a sprint will be handled by a development team. Each team will develop some aspect related to the softwares user experience, the database system, or other back end elements. Per every two weeks, all teams must come together to check-in the code they have accomplished, and make changes based on whether a feature is on schedule.

By the end of the first month, all features must be brought together, and the team must make decisions on how progress is being made. If major adjustments are needed, then changes will be made to accommodate those needs. Thorough testing of the current product prototype must be done at this point. This will be similar to the testing done by the end of the total product development. After 6 months, all features should have been developed satisfactorily, and tested in its entirety a minimum of two times.

  • Duration for each Sprint
    • 3 weeks, 8 total sprints
  • Deliverable from each Sprint
    • Project front end
    • Film catalogue
    • Film search functions
    • Review system
    • Film information database & integrations
    • User recommendations
    • Audience analytics
    • Audio normalization & captions
  • Top priority items of product backlog
    • Search function
    • Film catalogue
    • Review system
    • Film audio normalizing
    • Film stops and starts in same spot

4.3 Code Management

As the HAL project employee headcount grows, cost of communication and management complexity will as well. Having a proper and unified code management scheme will be critical to alleviate organizational strain. The HAL teams utilizations of a centralized code management system will help in the streamline workloads and increase efficiency of developers working on various sprints. With  smaller releases done weekly within teams, which builds to a larger main release every three weeks to coincide with sprint completions. The following details the benefits of utilizing a centralized version control system during HAL development: 

  • Management will be organized via a single point of entry and exit for developers to utilize. 
    • Reducing code interference, and streamlining integration. 
    • Single point will allow for file checkout, enabling Dev to know what parts are being worked on at which point. 
  • Review of maintenance, releases, patches via automation and manual oversight.
    • Tracking of patches and release cycles, easier to reclaim good code in case of potential failure.
  • Encourage communication between Developers, Managers, Testers, and Oversight personnel.
    • Live commenting on code projects allowing different teams to leave feedback on specific items or outcomes.
  • Ensure stable output prior to release to the client facing program. 
    • With workflow automation code can be reviewed and verified automatically reducing time allocation of other teams.

Section 5. Testing Approach

5.1 Acceptance Testing Approach

Subscriber

A user is using the HAL service, which allows for users to search for films and stream them.

  • A user finds a film based on the title.
    • Step 1: The user clicks on the search bar.
      • Outcome: The search bar opens, and awaits input.
    • Step 2: The user begins typing the film name.
      • Outcome: The system begins to auto-suggest terms, and film titles.
    • Step 3: The user finishes typing.
      • Outcome: If the film is in the catalogue, it is made available to select.
    • Step 4: The user selects the film.
      • Outcome: The film begins at the beginning, or at the point the user last stopped watching.
  • Post Conditions
    • User continues to search for more films.
    • User recommendations updated based on content watched.

Subscriber

A user is using the HAL service, which can be used for reviewing films that have been watched by the user.

  • A user leaves a review of a film.
    • Step 1: The user clicks on a film they have watched.
      • Outcome: The preview menu for the film appears, which allows the user to watch, read information, or review the film.
    • Step 2: The user clicks on the ‘Review’ option.
      • Outcome: A small graphics appears where the user can choose from 1-5
    • Step 3: The user selects a ranking from 1-5.
      • Outcome: The HAL ranking graphic reflects the user input, and prompts a text review.
    • Step 4: The user selects the option to leave a text review.
      • Outcome: The review text box opens, and prompts the user to type a short review.
    • Step 5: The user begins to write their review of the film.
      • Outcome: The word count is kept track of, and the review length is capped to 300 characters.
    • Step 6: The user submits their review.
      • Outcome: The review is sent for verification that it does not violate the systems terms of service, then posted in 2-3 business days.
  • Post Conditions
    • The user views reviews left by other users.
    • The user reports inappropriate reviews left by other users.
    • The user modifies their review for grammar or opinion changes. Modifications will cycle through the verification process again, prior to posting.

5.2 Integration Testing Plan

The HAL project will be using a combination of regression testing, and bottom-up testing. These tests will be done on a sprint-by-sprint basis, and done every 2 weeks, and every 4 weeks.

For each sprint, each team will be responsible for using regression testing to ensure their sprint deliverable merges with their previous deliverable. This will ensure the features developed on their end are functional, without being dependent on the progress of other teams. Additionally, every two weeks all teams must check-in their current work and merge it together. This will also be done using regression testing to ensure that the new features have not negatively impacted the previous prototypes.

After four weeks, all teams must converge with their integrated and regression tested code. This check-in prototype will be tested using bottom-up integration to allow for the smaller parts of the system to be tested before examining the larger parts of the software. In order to achieve this testing agenda, the following steps will be be used:

  • Combine low-level components into clusters or builds
  • Write drivers to test the clusters
  • Run the test
  • Replace drivers & combine clusters
  • Repeat until whole system is integrated

This system will allow for testing which is both flexible, and thorough, ensuring that each sprints deliverables are well-integrated within the system.


Section 6. Team Description

6.1 Team Sizes

The four product development teams will be made up of 3-4 developers and a senior developer.   The exception will be team two.  A large portion of their workload will be developing and integrating database interaction.  They will have an additional engineer.   During each sprint, team progress will be evaluated.  If the Scrum Master feels like resources need to be diverted from team to team, it will be considered and done at the end of each sprint.  After the core application is complete and teams are moving forward into sprints four and five, if teams cannot be shifted to accommodate workloads, additional developers will be brought on. 

6.2 Responsibility Matrix

HAL will utilize a modified responsible, accountable, consulted, and informed (RACI) matrix to help developers identify their respective responsibilities.  By emphasizing who owns a given responsibility, it breaks the ambiguity of traditional RACI matrices, showing who owns versus who helps that owner.  Owns-Helps is much easier to articulate than the conventional RACI format.

The Product Backlog, and its related Refinement, are absolutely owned by the Product Owner. The Sprint Planning and its resulting Sprint Backlog are jointly owned by the Product Owner and the Development Team.  The Daily Scrum and the Product Increment are absolutely owned by the Development Team.  The Sprint Review is owned by the Product Owner.  The Sprint Review is owned by the Product Owner.

6.3 Project Team Communication

Internal

Development teams will communicate with each other, the Scrum Master, and Product Owner.  The project will utilize Slack as the official form of communication with the channel for each team.  Horizontal communication between the development teams, Product Owner and Scrum Master is pivotal.  When communicating with management and stakeholders, a more vertical approach will be taken.  Only the Scrum Master and Product Owner will communicate with management.

Stakeholders

Stakeholder communication will lie solely with the Product Owner.  In SCRUM, a stakeholder is anyone with a vested interest in the product who is not part of the Scrum Team.  Stakeholders are anyone with an interest in or an influence on the product. 

Figure 7. Project Team Communication Diagram

6.4 Skill and Experience Requirements

For this project, we would like our team members to have a variety of skills. These skills include: 

  • 5-10 years UX Writing
  • 5 years Front-End Design
  • 5 years in Database Management
  • 5-10 years Content Strategy
  • 5 years Consumer-Focused Copywriting
  • 8 years Motion Design

We plan to have approximately 20 team members. These team members will have roles such as Scrum Master, Product Owner, and Development Team Member. The team members will be split into four development teams, each with approximately five members. They will be needed for the entirety of the project. Each team will handle one aspect of a backlog product.


Section 7. Conclusion

By utilizing SCRUM with the proposed HAL project, we can streamline internal processes to enable our staff to work effectively and efficiently to produce a reliable and updatable streaming service. HAL will provide users with an independent film database, review system, and information in an IMDB style on indie films. The benefits of HAL include reliable streaming, low costs, and the functionality of Rotten Tomatoes, IMDB, and Netflix all on one platform. These benefits will help market our product and encourage users to use our service over other streaming services. Future developments of HAL may include supporting a larger user base, increasing the number of languages offered for subtitles, and expanding the categories of films offered.