没有合适的资源?快使用搜索试试~ 我知道了~
使用精益方法在 GitHub 中进行需求管理.pdf
0 下载量 108 浏览量
2024-05-08
13:38:23
上传
评论
收藏 754KB PDF 举报
温馨提示
试读
15页
使用精益方法在 GitHub 中进行需求管理.pdf
资源推荐
资源详情
资源评论
Requirements management in GitHub with a
lean approach
Risto Salo, Timo Poranen, and Zheying Zhang
University of Tampere, School of Information Sciences, Tampere, Finland
risto.salo@gmail.com,{timo.t.poranen,zheying.zhang}@uta.fi
Abstract. GitHub is an online platform for hosting projects that use
the Git revision control system to manage code. Its lightweight issue
tracker helps to maintain lists of issues identified during the development
process, including bugs, features, or other software artifacts. Although
issue tracking software has been practically used in software industry,
studies on using it to manage requirements remain insufficient. This pa-
per tackles the issue by presenting a semi-formal guideline for managing
requirements in agile software development projects using GitHub. The
guideline is evaluated on a theoretical level by analyzing how well it
guides to manage requirements and fits in an agile software development
setting. It is compared against lean principles. In addition, the guideline
is put into use in a case study. The studies indicate that the guideline
and GitHub are well-suited for requirements management in an agile
environment.
Keywords: Requirements management; GitHub; Lean software devel-
opment; guideline
1 Introduction
GitHub [6] is a rapidly growing Internet based service which describes itself as
a social coding platform. In the beginning of 2013 GitHub had almost 5 million
source code repositories, and in a year it doubled the figure to 10 million. An
average of 10000 new users subscribe every weekday. GitHub is not a place just
for individual users; its lightweight and easy to use features of managing source
code and supporting collaboration with developers have attracted much atten-
tion, and been widely recognized by notable organizations, including Amazon,
Twitter, Facebook, LinkedIn and even the White House. Although GitHub is
mostly used for code, its issue tracker and wiki has been used for requesting and
monitoring software features in ad hoc ways. How could these tools be used to
manage requirements without a need to utilize another tool forms an interesting
issue in software projects using GitHub. This paper tries to tackle it by intro-
ducing a guideline for requirements management (RM) using GitHubs native
features. The guideline was put to use in a software development project and
also evaluated based on the objectives of the requirements management and lean
principles. This article is based on Salo’s [13] thesis.
SPLST'15
164
Lean ideology derives from Japanese car manufacturing from the middle of
1950s. In the beginning of the 21st century “being lean” has received a lot of hype
in the software engineering field after Poppendiecks’ [12] converted its principles
to a suitable format for software development. The enthusiasm towards lean
started to cumulate a little after agile methodologies hit through. Agile method-
ologies are a response to the failure of coping with changes in the waterfall-like
methods, and their goals are aligned with lean principles. In this study lean
principles offer an insight how well the guideline for RM shapes into an agile
environment that does not necessarily rely on a defined agile methodology like
Scrum or Extreme Programming. Similar topics couldn’t be identified either
within the scientific researches or from practitioners making the study novel.
Although the problem domain and its solution are quite specific, the evaluation
succeeds in combining lean principles to the objective of RM. The case study
reveals that the whole project team values the guidelines defined approach. On
the other hand the evaluation points out that the guideline and GitHub achieve
also in a theoretical level. Overall the results prove that GitHub can be used
successfully for agile requirements management when a systematic guide is ap-
plied.
The rest of this paper is organized as follows. Next section gives an intro-
duction to GitHub. Section 3 addresses common RM practices in agile projects.
Section 4 describes the guideline and its usage. In Section 5 the guideline is
evaluated. The last section concludes the work.
2 GitHub
The central concept in GitHub is a repository. GitHub’s key aspect is its version
control mechanism, so it is natural that other components are built upon this
feature. The bulk of a repository’s main page consists of the files and folders
inside the version control system. There are navigation links to the subcom-
ponents of the repository, and free-text search function to search multitude of
things inside GitHub’s repositories.
In GitHub all issues are created and tracked in an integrated issue tracker.
An issue is a very vague concept; basically it is a task. However, issues can range
from memos to requirements. In this study, the term issue is used as a higher
level concept, and includes both requirements and tasks. A task is a concrete
item that must be done in order to fulfill defined requirements. Requirements
hold, in predefined format, the goals, business objectives and user requirements
for the software. They are more abstract than tasks. Both can be divided to main
and sublevel. Sublevels are to be used when a requirement or task is so large,
that it is semantically wise to divide it to subcomponents. For example a task
can have different subtasks for designing UI, creating it, designing architecture
and implementation.
As shown in Figure 1, the issue tracker is composed of three components
shown in three areas. The top of the screenshot is the issue tracker’s inner navi-
gation. Provided options are the default view, milestone view, labels, filters and
SPLST'15
165
a link to create a new issue. Below this area are exclusive general filters. In the
bottom are the issues. Name, assigned labels, identification number, creator and
elapsed time from the creation are displayed. Every issue has a checkbox, for
carrying out actions like assigning a label without a need to open the issue.
Fig. 1. The issue tracker view in GitHub.
The issue tracker provides a separate view for creating a new issue. User must
give a name and a description of the new issue, but he can also assign a developer,
desired milestone and labels. Labels are small tags that can be assigned to issues.
Every label acts as a filter to the issues. Milestones are iterations and as such
issues can be linked to them. An issue can always belong to a maximum of one
milestone. User can observe and manage the milestones. User can toggle open
and closed milestones and also milestones with or without any issues assigned
to him. Every milestone can be edited, closed or deleted. Milestone’s name,
description and due date are also presented.
Filters refer to different filtering options available in the issue tracker. These
filters can be divided to four categories: personal, milestone, label and state.
Personal filters (“Assignee” and “Author” selections) are used to filter issues that
are related with the current user. Milestone filter is for filtering issues associated
to a specific milestone. The label filter limits the issues to those that have all the
selected labels assigned to them. The state filter is for filtering open and closed
issues. There is also a search box that provides a way to make more elaborated
filter queries using a special syntax.
When an existing issue is opened, a detailed info view is displayed. All data
in the view is editable. The state is notified below the name of the issue. Other
relevant information includes subscription to the issue and participants of the
issues. Subscribing to the issue means getting notifications about changes to the
issue. The person creating the issue is automatically subscribed. Comments and
references to the issue are visible below the description in a chronological order.
SPLST'15
166
剩余14页未读,继续阅读
资源评论
百态老人
- 粉丝: 2129
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功