1 of 35

Project Platform Exploration (Jira)

by Ronni Kahalani, Copenhagen School of Design & Technology.

​

Your team builds a Space Traveling Portal Jira software project.

​

2 of 35

Who am I?

Thank you for stopping by.

​

I’m Ronni. I hope you’re well and wish you a safe and worthy journey.

​

This presentation is part of the Software Engineering Series, from my lectures at Copenhagen School of Design & Technology.

​

You can view the Introducing Myself, if you want to know a little more about who I am.

​

All my presentations and materials are free and available at my blog post: Software Engineering.

​

​

Don’t let me uphold you,

continue your journey, go to next slide.

2

3 of 35

Agenda

  • Introduction
  • Exercises
    • 1: Jira Setup.
    • 2: Configure GitHub access.
    • 3: Jira API Token for IntelliJ.
    • 4: Create epics, stories & tasks.
    • 5: Create board & sprints.

​

​

​

​

4 of 35

Introduction

  • Your team are to build a distributed Space Portal full stack solution.

​

  • You need two different GitHub projects (Git repositories)
    • SpacePortalBackend - A Java backend (REST/JPA).
    • SpacePortalFrontend - A JavaScript/web-based single page client.

​

  • You are to create one Jira project
    • Called SpacePortal using the GitHub repos SpacePortalFrontend and SpacePortalBackend.

​

5 of 35

Jira Exercises

Includes 6 exercises going through creating a Jira teamsite, integrating Jira with GitHub- organisations, repositories and developer tools and being ready to work with an agile Jira project platform.

​

​

​

​

6 of 35

6 Exercises (from zero to ready to produce)

​

  1. Jira Setup
  2. Configure GitHub access
  3. Generate Jira API token for IntelliJ
  4. Creating epics, stories, tasks…
  5. Create board & sprints…
  6. Create feature branch changes and merge via pull-requests

7 of 35

Exercise 1�Jira Setup

Create and configure an agile Jira teamsite integrating to GitHub organization and repositories.

8 of 35

Exercise 1: Jira Setup

Every team will

  • Create a GitHub organization having the repositories
    • SpacePortalBackend
    • SpacePortalFrontend
  • Create a Jira team-based site, with 1 project called
    • SpacePortal
  • Install GitHub app in Jira
    • Enables listening to GitHub commits from related repositories.
  • Install Jira Plugin into IntelliJ,
    • Enables interaction with relevant Jira stories and tasks, in the IDE.

9 of 35

Exercise 1: Jira Setup

Create Jira Team account

  • Create a free Jira Software account, for the team.
  • Start by clicking the Next button (ignore the other Product selections)
  • Select the Scrum-based option, and Team-based.

​

In Jira

  • Select Apps/Explore apps (in the top menu panel)
  • Find and install the app called: GitHub for Jira.
  • Click Get Started to connect your GitHub Account.

10 of 35

Exercise 2�Configure GitHub access

Enables listening to GitHub commits from related repositories.

11 of 35

Exercise 2: Configure GitHub access

In Jira

  • Add/invite all team members with appropriate roles.
  • Allow Jira access to the GitHub repositories FrontendApp and BackendApp.
  • Select Apps/Manage apps, in the top panel.
  • Click Configure integration, in the left panel, under the GITHUB category.
  • In the second column (repository access), click the pen icon to change it.

​

In GitHub

  • Add/invite all team members with appropriate roles.

​

12 of 35

Exercise 3�Jira API token for IntelliJ

Integrating IntelliJ and Jira, via en Jira generated API Token.

13 of 35

Exercise 3: Jira API Token for IntelliJ

In Jira

  • Generate a Jira API Token to integrate Jira into IntelliJ
  • Click your profile/account image, in the top bar.
  • Select Manage account.
  • Select Security, in the left panel.
  • Click Create and manage API tokens, on the Security page.

NOTE !!

After creating an API token, you cannot re-copy the token, so write down the name and token elsewhere, so you can remember/share it with team members.

14 of 35

Exercise 2: Install Jira Integration plugin in IntelliJ.

  • In IntelliJ.
  • Go to Settings/Plugins.
  • Find Jira Integration plugin.
  • Install it.

​

Now you need to login via the Jira API Token you acquired previously.

15 of 35

Exercise 2: Login via Jira plugin

  • In the Login dialog.
  • Select login via token.
  • Input Jira Server URL:
    • ex. https://<teamsite name>.atlassian.net/
  • Input email, you used for your Jira teamsite.
  • Paste in Jira API Token, you acquired earlier.
  • Click Test button, near the cancel button, to validate it.
  • If connection is successful, good work.
  • Click Ok button, to accept settings.

16 of 35

Exercise 2: Login via Jira plugin

Note:

View in-progress issues, assigned to you, in the Jira plugin.

If you’ve succeeded in listing your, in-progress, issues in the Jira plugin, Well done, let's go for Exercise 3.

17 of 35

Exercise 4�Creating epics, stories, tasks…

18 of 35

Backend Repository

You’re creating a backend for the new Space Portal app,�

As a Customer,

I want to book a Reservation, for a Spaceship to a selected Planet,

So that I can try something new, on a different planet.�

​

Featuring entities

  • Customer, Reservation, Spaceship, Planet.
  • Each entity needs, at least, a REST Controller, Service and JPA Repository.

​

With the above requirements

  • In Jira.
  • Create some epics, stories (issues), and subtasks, hierarchically, via Jira Timeline.
  • Plan some sprints/iterations for the backend part.

19 of 35

Timeline from The SpacePortal Backend

20 of 35

Timeline from The SpacePortal Backend

Now you’ll create: An Epic (Backend), containing A Story (Browse planets), containing 3 Subtask (Create Planet API).

Creating an Epic

In the Timeline view.

  • Click Create Epic.
  • Input title: Backend.
  • Edit the Epic.
  • Input description.

As a Customer,�I want to book a Reservation, for a Spaceship to a selected Planet,�So that I can try something new, on a different planet.

  • Save Epic Backend.

Creating a Subtask

In Story Browse planets

  • Click Add/Child issue
  • Use pre-selected Subtask
  • Input title: Create Planet API.
  • Click Create, to save the task.
  • Input description

Checklist:

  • Create entity: Planet.
  • Create repository: PlanetRepository
  • Create service: PlanetService
  • Create controller: PlanetController
  • Implement GET request method in PlanetController.
  • Create unit-tests for business-logic in PlanetService.

Acceptance criterias

Given a Postman PlanetController request,�When request is a GET, without an ID,�Then return all planets in Json.

  • Save Task Planet API.

Creating a Story

In Epic Backend

  • Click Add/Child issue
  • Select Story
  • Input title: Browse planets.
  • Set story points to 5
  • Click Create, to save story.
  • Input description

As a Customer,�I want to browse the available planets,�So that i can select a target destination.

  • Save Story Browse planets.

21 of 35

Create Epic, Store and Subtask

1

2

3

5

4

22 of 35

Creating Sprints

23 of 35

Creating Sprints

When creating Sprints, here are some guidelines:

  • Click Create Sprint in the Backlog view, top right corner.
  • Click Edit Sprint, in the top right … menu.

In the Sprint dialog

  • Make your sprints 1-week long.
  • Note: In real live sprints will be closer to 3-4 weeks long.
  • Drag the needed highest-priority backlog stories into a sprint.
  • Only when all planned stories are in the sprint. Click Start sprint.
  • When a sprint starts, the progress is reported to the burndown chart, when stories are marked as Done.

​

24 of 35

Frontend Repository

You’re creating a responsive single page web frontend with

    • master.css: Main CSS styling.
    • index.html: Main page (imports, header, footer, navigator, content area/view…)
    • planet.js: Planet UI for handling planets.
    • spaceship.js: Spaceship UI for handling spaceships.
    • reservation.js: Reservation UI for booking reservations.
    • customer.js: Customer UI for handling customers.
    • payment.js: Payment UI (integrates to external payment provider)

​

  • In Jira
    • Create the epics, stories & sub-tasks for the frontend app.

​

25 of 35

Timeline from The SpacePortal Frontend App

26 of 35

Example Sprints from The SpacePortal Frontend App

27 of 35

Exercise 5�Create board & sprints…

Creating the SCRUM/Kanban board, backlog and planning and managing the active and upcoming sprint(s).

​

28 of 35

Create board & sprints…

Create a Board

  • Create two new extra columns on each board (left of the Done column)
    • Blocked
    • Review

​

Create 2 Sprints

  • Decide a sprint title naming convention.
  • Create 2 continuous sprints, each lasting 3 weeks.

29 of 35

Enable Jira Burndown chart

Reports/charts are auto-updated, when issues are Done.

​

To enable the Reports feature:

In Jira

  • Go to Manage projects.
  • Go to Project Settings/Features.
  • Enable Reports.

​

Now let’s access the Burndown chart.

  • Click Project setting, in top left corner.
  • Click Reports, in the project top bar.
  • Click Sprint burndown chart top center image.

​

See the next slide, for screenshots.

30 of 35

Enable Jira Burndown chart

1

2

3

5

4

31 of 35

Exercise 6�Create feature branch, push changes, and merge via pull-requests

When this exercise is executed successfully, you’re ready to be productive.

32 of 35

Create feature branch, push changes, and merge via pull-requests

Continue with the backend

  • Create changes to the new feature branch (Ex. add a READ.ME file)
  • Create a pull-request, to merge your changes and let another team member review your pull-request.
  • Just for fun, reject the request with request for changes, a few times.
  • When the request is approved the requestor does the merge operation (clicking the merge button)
  • When merged, the requestor removes the feature branch, which have just been merged.
  • Try also to create a simple merge conflict and solve it.

33 of 35

You’re project is almost ready to deliver!

If you completed the exercises successfully, your team is ready to deliver.

​

You just went through the following exercises:

  • Creating Jira project site.
  • Connecting Jira to GitHub repositories.
  • Integrating Jira into IntelliJ.
  • Creating epic, stories and subtasks, via Jira Timeline.
  • Creating Jira Board and Sprints.
  • Enabled reporting Burndown charts.

​

Try to complete some stories (move them into Done on the board).

Check the Burndown chart.

34 of 35

Questions?

Anything? What’s on your mind? Come on ask me anything…

​

35 of 35

Feedback?

Thank you for your precious time.

I hope it was worth it and would love to get your feedback.

​

Please share your feedback here