Capstone Report
Capstone Report
____________________________
Summer B, 2022
1
Executive Summary
Our goal is to create a solution that enables SiFive (our client) to integrate Google Sheets
into their Jira workflow. Our solution will integrate Google Sheets and Jira such that SiFive can
read and load Jira data onto a Google Sheets spreadsheet, and our solution will also enable
SiFive to push and write any changes made to the data on said spreadsheet. The purpose behind
creating such an application is to increase efficiency, as SiFive can use our application to view
and edit multiple Jira issues all through one spreadsheet. To explain it more clearly, our
application improves workflow, because SiFive will not have to locate, open, and then edit each
issue independently; SiFive can simply just edit values on a spreadsheet and push those changed
values to Jira. Though we are developing our application for and with the help of SiFive, the
truth is any project management team can and should utilize our application when editing a large
amount of Jira issues, because simply put our application aims to save them time.
2
Table of Contents
Introduction……………………………………………………………………………….3
Feasibility…………………………………………………………………………………. 4
Platform……………...…...…...…...…………………………………………………7
Major Functions……...…...…...…...…………………………………………………7
Final implementation…...…...………………………………………………………….11
Discussion………………...…...……………………………………………………….18
References……………………………………………………………………………………..19
Appendix……………………………………………………………………………………..20
3
Introduction
Our goal is to create an application that project managers go to when they want to sync
Google Sheets into their Jira workflow. Our application will be tested and used by SiFive, but
we aim to release this application as a re-usable library on GitHub so that any project
management team can benefit from this, and even modify it if need be. Therefore, our
application can be used by anybody looking to integrate Google Sheets and Jira.
We believe that the application would be sought out because the Jira dashboard is
time-consuming and inefficient when updating a significant amount of Jira issues. Without our
application, a Jira user would have to open up their dashboard, locate the appropriate issue, open
it, then locate the field they’d like to change before finally changing it. The preceding steps are
repeated for each field that the user wants to update, and so when updating a large number of
fields these steps become cumbersome. As opposed to doing it the traditional way, our
application aims to fetch and load all issues into a spreadsheet, with each issue occupying a row.
We will also load all the fields of these issues as columns, and so that way users can quickly
scroll up and down to locate the fields of issues they’d like to update, and modify them. Once
the user has modified all the fields they’d like to change, they would click a button to issue a
PUT request, and if the modifications are valid then the update is pushed onto Jira. To conclude,
it is the ease of which our application enables many updates that makes us believe this
Feasibility
To date, project management teams and companies primarily use Atlassian’s Jira Cloud
for Google Sheets as a vital tool in agile project management (see picture below). Although
there are many advantages to using Jira Cloud for Google Sheets, including importing important
tracking data into Google Sheets, it does not allow users to update their Jira issues from Google
Sheets. In essence, Jira Cloud for Google Sheets is ideal for one-way communication (Jira to
Google Sheets) but not for two-way communication (Jira to Google Sheets, and Google Sheets
to Jira). Our Jira-Google Sheets Add-on Integration Solution will build upon Atlassian’s Jira
Cloud for Google Sheets because it will allow Google Sheets to communicate with Jira. Our
added functionality increases efficiency as it allows SiFive to update their data from Google
Sheets. To date, we are not aware of another application that allows two-way communication
between Google Sheets and Jira. In addition, though we are developing this application with the
help of SiFive, any project management team that uses Google Sheets and Jira should benefit
It’s safe to say that our project should not have any ethical or legal considerations, and
that is true during production and after our project is implemented. We arrive at this conclusion
because our project is a developer-friendly utility that is not tied to race, gender, or disability. In
addition, our project will use both Jira and Google's Apps Script REST APIs to accomplish our
goal of creating two-way communication between them. Not only do both platforms come with
6
their own terms and conditions that protect their respective products, but both monitor the use of
their APIs to enhance quality and verify compliance with their product terms. SiFive have
indicated that keeping their proprietary data confidential is a top priority for them and that all
communications between both platforms must conform to standard Google user security and
authentication methods. Jira REST APIs utilize the OAuth 1.0a authorization protocol for
authentication and will allow us to associate our project to an organization, handle client
credentials and user tokens securely, and prevent any data compromises while using our plugin.
Because we are following authentication best practices and creating the add-on using Google’s
secure and versatile Apps Script, the chances of a data breach are very low and permissions will
We hope and anticipate that our project will be used by project development many years
after its completion, and that its use will not be limited to SiFive alone. In order to fulfill this
ambition, our application will be released as a reusable library on GitHub so that teams other
than SiFive’s can access it. In addition, though our application will be the first to enable
two-way communication between Jira and Google Sheets, additional functionality can be added
to enhance said communication. Said more specifically, our application will be the first to
update Jira issues from Google Sheets, though it will not be able to create Jira issues from
Google Sheets. We have not added this functionality because it is not required by SiFive.
Therefore, teams that have an interest in creating Jira issues from Google Sheets should use our
Platform
With their need to integrate Google Sheets and Jira, our client required us to implement
our platform using Google Apps Script within Google Sheet. Though other platforms might
have also accomplished this need, the use of Google Apps Script simplifies our development
process because Google Apps Script enables access to built-in libraries available specifically for
Google Sheets. In addition to having these libraries readily accessible, other benefits from using
Google Apps Script are that it provides us with an in-browser code editor and, and it also allows
Major Functions
Connecting Google Sheets and Jira ● Users will be able to access their Jira / Atlassian using their
Google Account.
methods (OAuth2).
Read / Fetch functionality ● Users will be able to fetch Jira data and load that data into
Write / Update functionality ● After loading Jira data into Google Sheets, users can then
Our usability test plan involves testing the major functions listed above. More
specifically, we want our users to be able to authorize access to their Atlassian account using
their Google account through clicking the button “Connect to Jira”, then we want our users to
fetch and load Jira data from their Atlassian account into their Google Sheet of choice through
clicking the button “Get data”, and finally after loading the data we want users to edit data in
Google Sheets and issue an update back to Jira by clicking the button “Send data”. After issuing
the update, if the changes made in Google Sheets are reflected in their Jira account, then we can
Our test plan mentioned above is the evaluation method that we requested our client,
SiFive, to perform. We have shared our application with them and we have instructed them to
provide feedback after following each part of the test plan. In addition to providing feedback on
the aforementioned steps, we asked SiFive to provide feedback on the user-friendliness of our
application, to provide additional feedback on whether the application meets their business
needs, and finally we asked them for any suggestions that would improve our application. We
requested this feedback in the form of a word document that we emailed to them. The questions
written in that word document are stated in the appendix of this paper. Since this application was
developed for SiFive, we will assume that SiFive speaks for all users interested in using our
application.
Their feedback to the results of the test prove that the application meets their safety and
security standards as OAuth2 authentication protocols are implemented correctly. Moreover, the
9
feedback they provided on getting data from Jira and loading it into Google Sheets was positive
as it met their immediate requirements, however suggestions for improvement include building a
more user friendly UI that facilitates the applications ability to issue specific get requests.
Finally, in regards to updating Jira data from Google Sheets, our client concluded that this
requirement was fully satisfied and they are pleased with this feature since they viewed this as
Besides providing feedback related to the major functions above, our client was kind
enough to provide additional feedback regarding the state of our application and the steps we
could potentially take to improve it. In regards to the user friendliness of our application, our
client indicated that the application is user friendly for the basic functionality that they required,
but that it should be even friendlier if we’d like to incorporate JQL queries into the application.
JQL queries allows the user to issue specific get requests, and this allows them to load specific
data onto Google Sheets. The suggestion for better a UI regarding the JQL queries is meant as a
suggestion for future improvements, rather than an immediate need. In addition, our client
indicated that our application has the potential to go beyond the academic scope, but in order for
friendlier UI, and so future updates regarding this application must factor in this need.
10
Budget
Our budget was non-existent and so we only relied on resources that were free or
readily available. For example, we used our own PC’s, we met virtually through Zoom’s
free plan, and we used Jira’s free Cloud for Google Sheets solution as inspiration.
Timeline
ensure we completed all requirements within the deadline. Milestones along with our
Google Sheets into Jira proved cumbersome and this difficulty is also
11
paper.
UI elements
Final Implementation
The final product is an application that allows secure and bi-directional flow of
data between Jira and Google Sheets, thus improving workflows for companies that rely
on the need for integrating both. Below you will find captioned images that explain the
steps that a user needs to take in order to accomplish the major functions and milestones
mentioned above.
12
The steps to load all Jira data onto a Sheet in Google Sheets can be found below.
14
Below we’ve edited the summary of a specific issue (CP-21) and are just about to issue
Below you can see the result after we issue the update. Our application indicates that the
update was successful, and you can see that the update is reflected in Jira as well.
16
However, our application will also validate the data that the user is attempting to push
back to Jira. For example, as can be seen below, if a user attempts to update status to an
incorrect value, then our application will not issue the update and the user will be notified
In addition, our application indicates what the error is. The error message is created and
written into a new sheet called “ERROR LOGS”, and so in order to view the error
message the user simply has to open that sheet. See example below.
Discussion
Our team met early and designed a roadmap to ensure that our requirements were
met within the deadline. Our roadmap is mentioned above under the timeline section.
started researching and developing solutions earlier than asked. In addition, we met up
OAuth2 framework in our application. Though the timeline above suggests that it took
one week to complete, the reality is that we started weeks ahead of time and so in fact, we
spent a total of 3-4 weeks working on this task in order to complete the requirements
within the deadline. The difficulties we faced when incorporating OAuth2 in our
application are two fold: one, it took us quite some time to find a reliable solution for
implementing OAuth2 using App Script; two, Jira-provided API documentation had
solutions which incorporated OAuth1 the framework, and so we had to build upon those
solutions in order to incorporate the OAuth2 framework. Besides our difficulties with the
OAuth2 framework, another significant challenge was validating the data being pushed
from Google Sheets into Jira, and this was difficult because some of Jira’s APIs do not
provide error messages for invalid updates. This issue is still a thorne in our application
and one of our goals is to come up with a solution for this problem. With those
difficulties being mentioned, we are proud that our application still met all of our client’s
requirements as that was our target, and now our next goal is to improve the application
References
Atlassian (2019). Jira Clouds for Sheet (Version 03/27/2019) [Web app]. Jira
Marketplace.
https://marketplace.atlassian.com/apps/1220382/jira-cloud-for-google-she
ets-official?tab=overview&hosting=cloud
20
Appendix
2. Do you think the application is user friendly? Yes, but it can be improved. Incorporating a
3. Does this application meet your business needs? For the most part, yes. Easier implementation
5. Did the team follow best practices and industry standards for this project? Yes, but there is
7. Does the application meet security and safety standards? Yes. OAuth2 protocols are correctly
implemented.
8. Does the application fetch and update data per your specifications? Yes.
10. What are your suggestions for improving this application beyond the capstone? (A) increase
the understanding of JIRA (B) ensure that fields can be selected dynamically (C) need to
incorporate JQL
Javier Gonzalez: Project lead, developing the application, and writing reports.