Software development is fundamentally different from other similar engineering areas. The Information Technology industry has come a long way in understanding this by learning, adopting, and improving different development methodologies.
This chapter will include the following:
Why be Agile
The common Agile flavors
How Scrum works
Which tooling system to use
Prerequisites for GreenHopper
Common uses and examples of GreenHopper
GreenHopper interface features
An Agile project example
Engineering methodologies are plan-based and very much predictive in nature. The disciplined and procedural nature of engineering methodologies makes the whole software development process a bit slow and inefficient. The outcome of this has been the development of Agile methodologies. The benefit of Agile methodologies is that they are more predictive in nature, more people-oriented, and they focus on the end outcome, rather than being bureaucratic in nature.
Based on Agile survey for last few years, completed across different companies throughout the world, software development is shifting towards more successful project delivery using Agile methodologies. The wide spread adoption of Agile is a clear example of that. The percentage of successful projects using Agile processes is far greater.
The word Agile usually refers to the philosophy behind software development. There are multiple flavors of Agile. Agile values and principles are put together to form the Agile Software Development Manifesto and the different Agile principles.
Agile development is an umbrella term describing several Agile methodologies. Some of the well-known methodologies are Scrum, XP (Extreme Programming), Crystal , FDD (Feature Driven Development), DSDM (Dynamic Systems Development Method), and Kanban .
Each of these methodologies has a slightly different approach to implementing the core values and principles behind Agile Manifesto and principles. They all fundamentally incorporate communication, collaboration, continuous feedback, continuous testing, continuous interaction, continuous prioritization, and planning with continuous improvements to deliver solutions for a customer with changing requirements and businesses.
Based on industry survey, the majority of Agile practitioners practice either Scrum, a combination of Scrum and XP, or a hybrid nature of Scrum to match team requirements. Scrum is a time-boxed iterative and incremental framework for Agile development process. It consists of teams, roles, events, artifacts, and rules. Let us understand each role and common artifacts in brief first.
Product owner: A product owner manages the product backlog in a prioritized form to deliver the best business value, thus grooming backlog items and helping teams with requirements and clarifications.
Scrum master: A Scrum master runs the Scrum team to make sure that Scrum theory, practices, and rules are implemented, and it works closely with the product owner, the development team, and the organization too.
Based on hybrid Scrum process, different teams also have dedicated roles for Architect and Project Manager in the team to meet specific team requirements.
Depending on the nature of hybrid Scrum process and team dynamics, the variations of the Scrum events, like local daily Scrum and distributed daily Scrum, are also used by various teams. Similarly, the planning and estimations process events are executed that matches best to the Scrum team requirements.
Project management is about planning, reporting, scope, cost, risk, organizing, motivating, and managing people and resources to achieve specific goals. With Agile, the basic concept is self-organizing the team with different roles. On a Scrum project, we have roles like product owner, Scrum master, and team.
Product owner takes responsibility from the business side of the product and has the authority to make business decisions. The Scrum master acts as the team coach to remove impediments, facilitate meetings, monitor day-to-day tasks, and track project progress by performing typical project management duties. A self-organizing team is capable of working as a team to find continuous improvements.
Planning and prioritizing deliveries across single or multiple teams
Making sure backlog items are visible to everyone
Making sure clarifications or impediments are cleared up soon
Grooming backlog items over time
Communicating vision and goals around team
Planning Sprint effectively
Tracking Sprint progress
Long-term planning for products
Making development process facilitation and improvements
Working towards developing team productivity improvements
Planning roadmaps based on the work done, and the work left to do
Agile recommends interactions over any process or tooling. Indeed, no team needs any tooling system, but using a tooling can help teams tremendously. Any tooling system we opt for should help the team to adapt to the Agile process and help in team collaboration and continuous improvement to increase productivity.
Easy setting up of the Agile project
Quick backlog creation
Intelligent and easy backlog grooming and ranking
Team collaboration between single and multiple teams
Intuitive task creation and status updates
Clear top-priority task visualization and impediment flagging
Clear and deep reports or charting for data
Each team member's day-to-day individual task tracking
Easy customization and flexibility for hybrid Agile process teams
Easy integration with business and testing teams
Easy integration with different development and testing tools
Easy and smooth fit for the distributed teams
Ability to enable team to continuously improve in process and new technology integration
GreenHopper is an Agile project management tool as an add-on for the well-known ticketing system Jira from Atlassian. The power of Jira allows you to customize and adapt to any hybrid Agile process matching your team requirements best. Here is the list of some of the top features of the tool which we will be covering in detail in the later chapters:
Reporting and charting allows quick and detailed reporting on iteration, functionality, and backlog items for short-term and long-term planning.
Customization and flexibility is the power of Jira that provides high customization and flexibility to your team to add support for integration of different teams and workflows, criteria, and validation of work within your organization.
GreenHopper is an add-on built to work with Atlassian ticketing system, Jira (http://www.atlassian.com/software/jira/overview). It is installed as a plugin on the Jira tool.
There are multiple options for you to get started with GreenHopper. For this, you can refer to http://www.atlassian.com/software/greenhopper/overview.
Atlassian offers the hosted environment for you to start using the tool. If you are already using the hosted environment for Jira, onDemand (http://www.atlassian.com/software/greenhopper/try/), it is easy to get started with GreenHopper also. Just "add a new product" from My Atlassian list at https://my.atlassian.com.
You need to have Jira administrator permissions to install a new plugin. Browse to Administration in your Jira. As shown in following screenshot, check to see the Administration link and click on it:
Select Find New Add-ons under the Plugins section on the Administration page, as shown in the following screenshot:
GreenHopperin the search box under Atlassian Marketplace for JIRA and press Enter. The plugin details will be displayed as shown in the following screenshot:
Click on the Free Trial button to install the plugin. In this book, we will be covering GreenHopper Version 6.1.x. If you are using earlier versions of GreenHopper, please upgrade to the latest version using plugin manager.
Once GreenHopper plugin has been installed successfully and the license has been updated correctly, you will see the Agile tab in the top navigation of your Jira system, as shown in the following screenshot:
You need to exit the Administration session to see the normal logged in user view. Open the Agile tab to see the list of available operations to start with.
Recent Boards displays the list of recent boards you have created and you have been working with.
Manage Boards allows you to configure, copy, and delete the existing boards.
Getting Started allows you to get started with creating projects, boards, and with GreenHopper itself if you are starting a fresh.
Classic: It allows you to work with earlier GreenHopper format planning and task boards. It is recommended that you use the new board style (please check Atlassian support for updates).
Jira, as a product and tooling system, has come a long way from a regular ticketing system to a powerful tool, able to manage a variety of teams and their requirements within an organization. Each organization has different departments, businesses, domains, and teams working together to achieve goals. The variation in the way of working and their requirements for each team differs. Some of the common teams working together are:
Development team works with Scrum, planning backlog, updating and reporting status, and also integrates development tools. GreenHopper provides best suited toolset for your Agile development team.
Testing (QA) team reports and analyzes different features, like regression and production bugs in the application, and integrates testing tools. The combination of custom workflow in Jira for your testing team, the use of the Bonfire testing plugin, and integration with your development team using GreenHopper works perfectly for your testing team.
Design team designs the product, gets feedback from people, and forwards it to the development team to implement. The design team caters to the requirements of multiple business and development teams. Use the Kanban system for regular flow of work based on prioritization.
Project management team tracks status and plans for the long run based on reporting and charting data. The mix of Jira reporting capabilities and GreenHopper charting for your teams enable project managers to track and plan the product roadmap in a much easier and better way.
Site operations team works in a way similar to Kanban, to deliver maximum value and prioritize work better with high priority production issues first and future proof projects.
IT infrastructure team handles team infrastructure requirements and works with the entire organization for infrastructure stability perspective. The inbuilt support of Kanban in GreenHopper helps many IT teams to work effectively.
Marketing and sales team prioritizes projects, develops marketing strategy with development, design, operations team, and so on. A single platform to interact and prioritize with multiple teams enables you to plan and implement your business strategy much better.
Customer support team takes end user feedback and works with development and product team, and prioritize it better. Kanban system suits the services team best, and customer support teams use GreenHopper Kanban system for the same.
One of the major requirements from any tooling system is how easily it allows coordination between all the above teams.
Jira, with all its power of customization and flexibility, allows you to make it work for varied teams. Each team can have its own customized work flow and status change condition for their day-to-day tasks and operations.
We will cover in later sections and chapters how GreenHopper can help you with the backlog management from team collaboration perspective for all the above varied teams to deliver the real business value.
For development teams, Atlassian tools suite can easily be integrated with the Jira system. Think of continuous integration build tools (Bamboo), online wiki for documentation (Confluence), source code repository integration (Fisheye), code review (Crucible) tools, and so on. All can be integrated with your backlog management tool for better tracking, visibility, and productivity.
For the testing team, to work closely with the development team to be able to verify and validate each Story and create feature bugs or regression bugs along with the Sprint itself, Jira provides testing plugin (Bonfire) to record testing sessions and to work closely with the development team.
In combination with Scrum, Kanban, and other hybrid Agile methodologies, GreenHopper allows you to manage teams in a much better and easier way.
GreenHopper provides rich interface to end users to quickly work on the backlog items and other day-to-day tasks, and other planning and reporting jobs. Some of the main interface features which make your job very easy are described in the following headings.
GreenHopper provides single board view for a team where different team activities can be achieved easily without jumping between complex navigational and browsing views, as shown in the following screenshot:
Working on the planning items view allows you to do all operations related to your backlog item like creating an item, editing an item, updating information, and attaching resources to items.
As shown in the preceding editing screenshot, using inline editing, you would be able to edit the Story or task details on the same details screen.
If you are on a planning board, you can move stories around and assign it to a particular Epic. Use drag-and-drop functionality to move a Story to a particular Sprint.
If you are on a work board, you can use the drag-and-drop functionality to update the issue state.
As shown in preceding search screenshot, you can search all the backlog items to focus on your desired results.
Using Jira filters efficiently, quick filters sensibly, and on top of that, the search functionality allows your backlog grooming very easily.
As shown in the preceding screenshot, you can represent different issue types with different card colors for visual representation. You can select different queries or priority-based colors for your issues.
As shown in the preceding screenshot, you can hide a panel if you are not working on it.
GreenHopper has inbuilt support for Scrum process. The terminology used within the Scrum board is inclined with the process itself. For Agile practitioners or teams starting a fresh with Agile, it is very helpful to learn the process while using the tool itself.
As shown in the preceding screenshot, different Scrum terminologies, Epics, Story, technical task, Sprint, velocity, and so on, are used to make it more understandable for your Agile team.
As shown in the preceding screenshot, using the right colors is intuitive enough for users. For a Sprint, estimates are displayed using three colors (red, yellow, and green). Red signifies that the work still needs to start, yellow signifies work is in progress, and green signifies that the work has already been completed.
Planning boards have been configured for backlog creation and grooming very quickly. All drag-and-drop functionality and estimations of Story allows product owners and Scrum masters to quickly get used to it.
Work board allows developers to update day-to-day task status and update tasks or Story relevant information on the work board itself. Additional feature of highlighting, grouping, and filtering allows you to focus on the desired results.
The reporting tab allows you to take a quick look at high-level tracking of whole Sprint and whole backlog too. Deep analysis of chart's details allows you to look at detailed information for the backlog.
The interface meets the requirements for the specific target audiences for each feature and functionality that is in place very well.
In this book, we will be following an example of a small business requirement which needs to be achieved through an Agile team. We will be using different screenshot examples further in this book through an example project, and will explain GreenHopper functionality along with different Agile aspects.
Let's say we need to develop an online photo album. We want to deliver a web version of the photo album and also a mobile version of the application, and have a site operations team to operate on that.
An Agile team for mobile delivers a mobile version of the photo album with limited functionality and has its own backlog items.
A site operations team supports online application and maintains regular infrastructure tickets in Kanban way.
In this chapter, we have become familiar with the basic idea behind Agile. We learned about Scrum process in brief, along with the different roles, events, and artifacts for the Scrum process. We will be covering different Agile concepts along the way while using the tooling system to meet the Agile team requirements.
We have GreenHopper installed and ready to use. We covered the basic terminology of GreenHopper, which we will be using further in this book. In the upcoming chapters, we will use this terminology and will cover each one in detail.
We covered different uses and examples of the tool, and which teams can use GreenHopper based on the variations and the nature of the teams. In the upcoming chapters, we will also cover managing both Scrum and Kanban teams using GreenHopper. Backlog creation, running Sprints, and reporting will be covered in detail.
We also covered different rich features of the GreenHopper interface which will come in handy for our day-to-day work and will result in a team productivity increase. In later chapters, we will cover each of the GreenHopper rich interface features and different functionality in details while managing both the Scrum and Kanban teams.
As mentioned in the project example, in the subsequent chapters, we will create a Scrum board for a website development Scrum team. We will create a product backlog, Sprints, a task board, and different reporting charts for the Scrum team. For the site operations team, we will create a Kanban team to control work in progress and to use the task board efficiently.