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