Feasibility Evidence Description (FED)

BlackProfessional.net Website

Team No.6

Tian Xiang Tan Project Manager Jhih-Sheng Cai System/Software Architect Aril Alok Jain Requirements Engineer Pablo Ochoa Prototyper Jeng-Tsung Tsai Operational Concept Engineer Sadeem Alsudais IIV & V Po-Hsuan Yang Life Cycle Planner Feasibility Evidence Description (FED) for Architected Agile Template Version 2.1 <10/11/2014> Version History

Date Author Versio Changes made Rationale n  Create the first version of FED.  Add risk assessment. 09/20/20 Tian Xiang 1.0 14 Tan  Add Cost analysis  To fit CS577a course content  Add NDI/NCS Interoperability Analysis 09/25/20 Tian Xiang  More risks are found in the team 1.1  Refine the risk assessment. 14 Tan meeting.  More risks are found.  Modify the risk assessment, 10/07/20 TianXiang  After communicating with 2.0 business analysis 14 Tan clients, more details are known.  Refine the Process Feasibility  More information are collected, we can make more decision.  More information are gotten 10/11/20 TianXiang  Modify the benefit analysis from the client. 2.1 14 Tan  Refine the architecture feasibility.  Some factors are not considered previously.

ii 032dbac5654d45d066400cbc693e4d99.doc Version Date: 10/11/2014 Feasibility Evidence Description (FED) for Architected Agile Template Version 2.1

Table of Contents

Feasibility Evidence Description (FED)...... 1 Version History...... ii Table of Contents...... ii Table of Tables...... iv Table of Figures...... v 1. Introduction...... 1 1.1 Purpose of the FED Document...... 1 1.2 Status of the FED Document...... 1 2. Business Case Analysis...... 1 2.1 Cost Analysis...... 1 2.2 Benefit Analysis...... 2 2.3 ROI Analysis...... 2 3. Architecture Feasibility...... 3 3.1 Level of Service Feasibility...... 3 3.2 Capability Feasibility...... 4 3.3 Evolutionary Feasibility...... 5 4. Process Feasibility...... 5 5. Risk Assessment...... 7 6. NDI Interoperability Analysis...... 8 6.1 Introduction...... 8 6.2 System Structure...... 8 6.3 Evaluation Summary...... 8

iii 032dbac5654d45d066400cbc693e4d99.doc Version Date: 10/11/2014 Feasibility Evidence Description (FED) for Architected Agile Template Version 2.1

Table of Tables

Table 1: Personnel Costs...... 1 Table 2: Hardware and Software Costs...... 2 Table 3: Benefits of BlackProfessional.net...... 2 Table 4: ROI Analysis...... 3 Table 5: Level of Service Feasibility...... 3 Table 6: Capability Requirements and Their Feasibility Evidence...... 4 Table 7: Evolutionary Requirements and Their Feasibility Evidence...... 5 Table 8: Rationales for Selecting Architected Agile Model...... 5 Table 9: Requirement Prioritization...... 6 Table 10: Risk Assessment...... 7 Table 11: NDI Products Listing...... 8 Table 12: NDI Evaluation...... 8

iv 032dbac5654d45d066400cbc693e4d99.doc Version Date: 10/11/2014 Feasibility Evidence Description (FED) Version 2.1

Table of Figures

Figure 1: ROI Analysis Graph...... 3 Feasibility Evidence Description (FED) Version 2.1

1 Introduction 1.1 Purpose of the FED Document

The Feasibility Evidence Description of the website BlackProfessional.net is written to prove that the requirements of the project can be met. It provides the stakeholders in the project with the business case analysis of the website, the assessment of the risks that the team faces while developing and the NDI/NCS Interoperability analysis. The document also helps the stakeholders to determine whether the project should enter the next phase of development or not.

1.2 Status of the FED Document - In this version, more risks are found and the corresponding mitigation plan has been made. - Provide a more detailed NDI/NCS list and analysis. - Provide process feasibility analysis. - Provide Business case analysis - Provide some architecture feasibility evidence.

1 032dbac5654d45d066400cbc693e4d99.doc Version Date: 10/11/2014 Feasibility Evidence Description (FED) Version 2.1

2 Business Case Analysis 2.1 Cost Analysis - Since our team decide to use Ruby on Rails, PostgreSQL and HAML to develop the website and may deploy it on the AWS when finished. Therefore, the client doesn’t need to spend money during the development. - The client needs to spend at least 2 hours for regular client meeting. 2.2 Personnel Costs

Table 1: Personnel Costs

Activities Time Spent (Hours) Development Period (24 weeks) Exploration Phase: Time Invested (CSCI577a, 2 weeks) Client: Meeting via email, phone, and other channels[(Client 7.5 Interaction * 1 * 3hours + WinWin Negotiation * 1 * 2.5 hours + 1 regular client meeting * 2hours) * 1 people] Client Representatives: Meeting via email, phone, and other 0.5 channels Valuation and Foundations Phases: Time Invested (CSCI577a, 7 weeks) Client: Meeting via email, phone, and other channels[(0.5 3.5 hour/week * 7) * 1 people] Client Representatives: Meeting via email, phone, and other 16 channels[(7 regular client meetings * 2hours + WinWin Negotiation * 1 * 2hours) * 1 people] Architecture Review Board[(2 times * 2 hours) * 1 people] 4 Development and Operation Phases: Time Invested (CS577b, 12 weeks) Client: Meeting via email, phone, and other channels 6 [0.5hr/week * 12week * 1 people] Maintainer: Meeting via email, phone, and other channels 0 Architecture Review Boards and Core Capability Drive-through 4.5 session [1.5 hr * 3 * 1 people] Deployment of system in operation phase and training 0 - Installation & Deployment - Training & Support Total 42 Maintenance Period (1 year) Maintenance[1hr/week * 52] 52 Total 94

2.3 Hardware and Software Costs

1 032dbac5654d45d066400cbc693e4d99.doc Version Date: 10/11/2014 Feasibility Evidence Description (FED) Version 2.1

Table 2: Hardware and Software Costs

Type Product Name Cost Rationale Development $0 (Linkedin API Allow our website can assess the Software Linked in API License) users’ profile on Linked in. Software Rails $0 (MIT License) The framework for the system. Software Ruby $0 (Ruby License) $0 (PostgreSQL The DBMS for the system. Software PostgreSQL License) $0 (Apache HTTP Server. Software Phusion Passenger License) $0 (2-Clause BSD- HTTP Server. Software Apache like license) The cloud application platform to Hardware Heroku $0 deploy and test the system. Production Allow our website can assess the Software Linked in API $0 users’ profile on Linked in. Software Rails $0 The framework for the system. Software PostgreSQL $0 The DBMS for the system. Software Phusion Passenger $0 HTTP Server. Software Apache $0 HTTP Server. Amazon Web The cloud application platform to Hardware Service(m1.medium $134 per year. deploy the system. )

2.4 Benefit Analysis

Table 3: Benefits of BlackProfessional.net

Current activities & resources used % Reduce Time Saved (Hours/Year) The time to find the people with the same background Black people[10,000 * 0.5 * 0.3] 30 1,500 The time to search the jobs for the black people Students and recent grade students [9,000 30 5,400 * 2 * 0.3] The time to recruit the black people Head hunters, companies, organizations 30 600 [1,000 * 2 * 0.3] Total 7,500

2.5 ROI Analysis

2 032dbac5654d45d066400cbc693e4d99.doc Version Date: 10/11/2014 Feasibility Evidence Description (FED) Version 2.1

Table 4: ROI Analysis

Benefit Cumulative Cumulative Year Cost ROI (Effort Saved) Cost Benefit 2014 $706.02 0 $706.02 0 -1 2015 $16,008.12 $15,607.5 $16,714.14 $15,607.5 0.93 2016 $31,008.12 $146,075 $47,722.26 $161,682.5 3.39

Figure 1: ROI Analysis Graph

3 Architecture Feasibility 3.1 Level of Service Feasibility

Table 5: Level of Service Feasibility

Level of Service Requirement Product Satisfaction LOS-1:The system shall return Product Strategies: We will use Apache+Phusion Passenger to search results at most 5 seconds handle the concurrency requests from the users. Moreover, we use some techniques in PostgreSQL, such as EXPLAIN, Batch Insertion to improve the performance of the DBMS.

3 032dbac5654d45d066400cbc693e4d99.doc Version Date: 10/11/2014 Feasibility Evidence Description (FED) Version 2.1

Process Strategies: Use Load Tester LITE to simulate a group of users use the search engine at the same time to see whether the result can be returned in 5 seconds. Analysis:The following links is about the performance analysis in Apache, Phusion Passenger and PostgreSQL:

http://www.revsys.com/writings/postgresql-performance.html

https://wiki.postgresql.org/wiki/Performance_Optimization

3.2 Capability Feasibility

Table 6: Capability Requirements and Their Feasibility Evidence

Capability Requirement Product Satisfaction CR-1: Profile Software/Technology used: Linkedin API, PostgreSQL management: The system Feasibility Evidence: The prototype shows that we can import the is capable of creating a data from Linkedin and manage the data in database. profile for users, allowing Referred use case diagram: UC_1, UC_2, UC_3, UC_4 them to maintain the profile by adding/ updating/ deleting information. CR-2 Messaging: The Software/Technology used: PostgreSQL system is capable of Feasibility Evidence: It can be done by searching the data from the allowing users to send/ database, and then passing the data to the controller to display in receive messages to/from the webpage. other users in Referred use case diagram: Blackprofessionals.net. CR-3 Recommendation Software/Technology used: MyMediaLite, PostgreSQL Engine: The system is Feasibility Evidence: We can get the data from the PostgreSQL at capable of providing some first, then use the algorithm in the MyMediaLite to analyze the recommendations for data, then return the most possible result to the user. connection, showing on the Referred use case diagram: UC_5 side of a page so that users can easily connect to those who share the same background. CR-4 Search and Connect: Software/Technology used: PostgreSQL The system is capable of Feasibility Evidence: Searching and updating the relationship of allowing users to search user data in the DBMS can do it. people in Referred use case diagram: UC_6, UC_7 Blackprofessionals.net. CR-5 Social Feed: The Software/Technology used: PostgreSQL system is capable of Feasibility Evidence: Searching and managing the data in the allowing users to post DBMS can do it.

4 032dbac5654d45d066400cbc693e4d99.doc Version Date: 10/11/2014 Feasibility Evidence Description (FED) Version 2.1 articles or videos and to Referred use case diagram: share existing articles onto their personal page. Users can comment on a post. CR-6 Invitation: The Software/Technology used: PostgreSQL, Linkedin API system is capable of Feasibility Evidence: We can use the Linkedin API to see the allowing users to invite the users’ friends in Linkedin, and then the system can send an contact in their social invitation through email if the user wants. networks. Referred use case diagram: CR-7 Advertising: The Software/Technology used: PostgreSQL system is capable of Feasibility Evidence: The advertisement is the data recorded in the showing advertisement from DBMS. When we want to display them, we can search in the schools and companies. DBMS and then show the advertisement to the user. Referred use case diagram:

3.3 Evolutionary Feasibility

Table 7: Evolutionary Requirements and Their Feasibility Evidence

Evolutionary Product Satisfaction Requirement ER-1: << ER name >> Software/Technology used: <> Feasibility Evidence: << briefly provide rationale of how this capability could be developed to satisfy the requirements. >> Referred use case diagram: << identify related use case diagram >> Software/Technology used: Feasibility Evidence: Referred use case diagram: Software/Technology used: Feasibility Evidence: Referred use case diagram:

4 Process Feasibility

Table 8: Rationales for Selecting Architected Agile Model

Importance Architecture Agile Use NDI NDI-Intensive NCS More than 30% of features available in NDI/NCS 0 0 3 3 3 Has a single NDI/NCS that satisfies a complete solution 0 0 3 0 3 Very unique/inflexible business process 2 3 0 0 0

5 032dbac5654d45d066400cbc693e4d99.doc Version Date: 10/11/2014 Feasibility Evidence Description (FED) Version 2.1

Need control over upgrade/maintenance 2 3 0 0 0 Rapid Deployment; Faster time to market 1 0 3 2 2 Critical on compatibility 1 3 0 0 3 Internet Connection Independece 0 3 2 2 0 Need high level of services/performance 2 3 1 1 1 Need high security 2 3 2 2 1 Access Data anywhere 2 2 1 2 3 Schedule constraint 2 0 3 3 3 Lack of Personnel Capability 1 0 3 2 2 Little to no upfront costs(hardware and software) 2 0 1 1 3 Not-so-powerful local machines 1 1 1 1 3

Table 9: Requirement Prioritization

Priority Requirements References Increment #

6 032dbac5654d45d066400cbc693e4d99.doc Version Date: 10/11/2014 Feasibility Evidence Description (FED)

5 Risk Assessment

Table 10: Risk Assessment

Risk Exposure Risks Potential Probability Risk Risk Mitigations Magnitude Loss Exposure System Maintenance And upgrade: For now, the client is If the client insist maintaining the going to maintain the website by website by himself, then he need to himself, but the project may not spend some time in learning the web be developed completely when 8 9 72 technologies. delivered and maintenance for a person who lack of knowledge in website development is hard, and It is hard to upgrade the system, the the work of upgrade is even more client needs to hire someone to do it. difficult. Performance Quality: The website Design the architecture carefully, may be used by thousands of and use some practical techniques to people at the same time, to make 7 4 28 make sure the performance can meet the system response to the request the requirement. from the users quickly is not easy. Time Constrain: The system is Make a detailed schedule estimation, large and complex, even though it determine how much work we can is a two-semester project, we still do within the schedule, implement can implement all the 8 5 40 the core functionality first. And try functionality. to make the code readable and easy to maintain when we deliver the system. Similar Products on the market already: The BlackJob.com and the BlackCareerNetwork.com are Upgrade the system frequently after similar to what we are going to 9 9 81 deploying based on the feedback of develop, although these websites the users. are not operating now, the competence may be inevitable.

032dbac5654d45d066400cbc693e4d99.doc 7 Version Date: 10/14/2014 Feasibility Evidence Description (FED) Version 2.1

6 NDI/NCS Interoperability Analysis 6.1 Introduction 6.2 COTS / GOTS / ROTS / Open Source / NCS

Table 11: NDI Products Listing

NDI/NCS Products Purposes Rails The framework of back-end of the website. PostgreSQL The DBMS for the website. Phusion Passenger The application server for the project. Apache The http server for the project. LinkedIn(ruby) To get user’s profile from LinkedIn

6.3 Connectors - In this project, we use Ruby/PostgreSQL connector to enable the Ruby web application to retrieve and query data from the database. 6.4 Legacy System

Client does not have an existing system.

6.5 System Structure

<< Using iStudio to analyze your component interoperability and post the resulting system structure diagram here. >>

6.6 Evaluation Summary

Table 12: NDI Evaluation

NDI Usages Comments Rails The framework of back- Positive Point: Easy to use end of the website. Negative Point: Need to design very carefully to obtain scalability. PostgreSQL The DBMS for the Positive Point: Easy to use and website. improve its performance.

Negative Point: No negative point Phusion Passenger The application server Positive Point: Easy to

8 032dbac5654d45d066400cbc693e4d99.doc Version Date: 10/11/2014 Feasibility Evidence Description (FED) Version 2.1

for the project. configure, and it is supported and updated.

Negative Point: No negative Point. Apache The http server for the Positive Point: Fast, reliable project. Negative Point: No negative point. LinkedIn(ruby) To get user’s profile Positive Point: Easy to use. from LinkedIn Negative Point: None.

9 032dbac5654d45d066400cbc693e4d99.doc Version Date: 10/11/2014