Thinking hard about a project launch

Here at Oasis Digital, we are always agile, and depending on the project needs, sometimes use Agile (in the “capital A” sense) processes extensively. Yet regardless of agility, iterations, steering, and so on, the planning and decisions made at the beginning (and in the early months) of a project often have profound and very difficult to change consequences later.

Therefore, while we would never argue for the straw-man Waterfall, we aim to think very hard about a project at the beginning.

Continue reading Thinking hard about a project launch

JIRA Customization

Technology platforms mature and improve over time. The Atlassian ecosystem is no exception. One area where Atlassian has matured dramatically is in supporting customizations. In the past customizations were a real “wild west” edit the database and file system approach. Today we have flexibility in configuration and a strong API. Often people have a hard time letting go of history, especially with technology we feel has failed us. There are many that assume that any customizations are unwise in JIRA. I wanted to cover JIRA customization and contrast the past with the reality of today. Later in the article I will lay out a few best practices as well so you can get what you want from JIRA without risking too much.

In the not-too-distant past, a typical JIRA installation might have played out something like this:

A group in a company obtains a copy of JIRA Server, installs it, and immediately jumps into configuring all the admin screens to get projects running. They start by using one of the built-in workflows with all the standard transitions. As usage expands, needs are found and are either accommodated by the administrator or met by a nifty add-on that did what was wanted out of the box.

Once in awhile something very specific will be desired to increase efficiency or user adoption, so the admin will go in and modify the database, add some scripts, or edit some of the configuration files directly. A few months later they realize they cannot upgrade JIRA because they would lose all their customizations that they depend on–or perhaps worse, they upgrade and most of their functionality is broken.  

Some companies invest the hours to fight through the upgrade pain and customize a much newer version, but many companies simply stay at a very old version until the application is abandoned. I recently spoke with a company that was still stuck using 4.x, while 7.x is the current version! This cycle is far more prevalent than people realize. Many smaller and mid-sized companies find themselves in this position, I have multiple students in every class facing this very specific dilemma.

Fortunately JIRA customization is far different today than it was a couple of years ago. Atlassian has done a great job moving to a clean API that allows for significant external input while increasing the flexibility of the system. There is a new danger I will talk about in a moment but customization can live across version upgrades today, unlike in the past.

JIRA Customization Best Practices

I typically describe JIRA as a big box of legos. Used properly there are few scenarios that cannot be accommodated with the base system. When approached in an educated way it is incredibly flexible. Here are some guidelines around customizations I share when consulting on JIRA implementations.

  1. (Click to Enlarge Image)
    (Click to Enlarge Image)

    Understand completely how projects come together. Utilize “Custom Issue Types” to break up your workflows, allow for clearly defined field configurations, and ultimately better reporting. Here is the diagram we use in our classes to teach students how to correctly put together a project.

  2. Search for a way to accomplish your goal within the base system. I commonly encounter cases where people moved to Add-ons to do something they could have accomplished by customizing filters, issue types, workflows, or other elements. Only use Add-ons that are truly necessary.
  3. Do not view applications in the marketplace as similar to Android or IOS apps. They are more deeply embedded than that and can be a major roadblock in the upgrade process. Approach them cautiously.
  4. Use Add-ons that are heavily used and updated often. This seems really obvious but I have run across organizations that are one of 50 people using an add-on that has not been updated for years. Stay on the main road and you will not be left behind.
  5. If you have a specific need do not be afraid to integrate using the API. It is powerful, well documented, and can really open up “safe” customizations using BI tools, web integrations, etc.
  6. If you use JIRA Server simply DO NOT MODIFY the database or the file structure. Lie down until the feeling goes away. Ignore all the old Confluence pages that tell you how. (I wish Atlassian would take these down)
  7. Within JIRA there are issue types specifically created by JIRA Agile. Unless you are comfortable working 100% in the way Atlassians implements Agile, create your own issue types. The behavior, features, rules etc around the Epic and Story issue types WILL change as they continue to develop their products. If you create your own issue type it will behave however you have configured it and will be far less likely to change.

If you follow these best practices (which may need to be modified over time), you are not guaranteed to completely avoid problems. But In our experience you are far less likely to be caught in a situation where an upgrade breaks your customizations. Unlike a couple of years ago we encourage customization as long as you stay on the safe path.

JIRA is easy to get, inexpensive, and generally accepted as a great tool. It is very easy to get off the safe path and into the weeds with such a configurable and powerful tool. Good training and best practices are a sensible choice.

Iterative Thinking is a Lifestyle

A student in a recent JIRA Boot Camp commented on how I described agile processes differently than a consultant her company had brought in. She noted that what I described seemed to make more sense. This got me thinking about those differences, why our approaches were different, and why it should matter.

Abstract Vector white life cycle diagram / schemaI read a lot and I see lots of commentary on agile software development. In many of the discussions the dialog is often very detailed, laced with procedure and process. This style of explanation leads to reactionary implementations that may not be well thought through. These implementations are like a thin coat of paint on a hard surface. It looks pretty but it does not go very deep. Companies that go down this path usually have a history of other such implementations of new ideas. Employees are used to it and respond with a surface change that only lasts until the next idea comes along or until nobody is looking.

When I think about agile, continuous improvement, iterative project management, etc., I view these as tools to accomplish my goals. They are not the end all solution but a screwdriver to improve the productivity of my team. I do not blindly follow a methodology, I strategically apply these tools to accomplish my goals.

I decided when I was very young, watching various members of my grandparents generation, that I wanted to be a lifelong learner. I did not know what that meant at the time, but I knew I wanted to be like the intellectually engaged, vibrant seniors that I knew. I did not want to be stuck in a small personal world inhabited by a few people and the television set.

As a young engineer, many of the lean, downsizing focused approaches to business did not seem healthy to me. These were epitomized in the story of “Chainsaw” Al Dunlap and his approach to turning around companies. I was far more interested in what companies like Toyota and other leaders in “Lean Manufacturing” were learning. They seemed to be pushing for elimination of waste and just in time approaches that did not squeeze more production out of less but optimized the production of the staff you have. That was a mouthful so let me explain.

The Chainsaw approach cuts as much as possible, “cut to the bone” is the mantra. Toyota on the other hand pushed to improve their staff, processes, quality and production through a cycle of implementation, feedback, and adjustment. This was my first attraction to iterative change and I have adopted it as a way of life. I approach my business, my behavior, my hobbies, and my relationships with an idea that I can improve and get better.

Back to my student and her question. The reason I sound different is that an iterative approach is my way of life, not a process I promote. Agile is a process that has elements that really do improve the performance of teams. But like any tool it is not one size fits all. There are a number of agile principles we do not follow in my company, because they do not apply to our business. There are many that we do follow. We pick and choose when and how we use agile principles because we see it as a tool, not a religion, or something to sell.

Many consultants make a living selling agile processes. Most of them are quite good but a few will try to force ideas that do not make sense on an organization. These few are very much like some of our political leaders today. They want you to follow without understanding based on a promised result. This is not a way to run a business!

Creative composition with the message "Never Stop Learning"As much as I like the agile way, I love the Baldrige Continuous Improvement Model(CIP). I believe it is the missing tool that helps the agile processes sink into the organization. Much more like paint permeating a porous surface. Paint on such a surface is very difficult to remove, this is the way you want good processes to be absorbed by your organization. Following the CIP model helps you focus on building up your staff, helping them grow and become lifelong learners. Help them achieve a new level of professionalism and/or productivity. By doing this the organization improves.

If you have been implementing agile or other ideas because it is currently the “hot” thing and promises incredible results, then I encourage you to step back and evaluate. Look at the principles, look at the processes, consider which ones will improve your organization the most, and implement them. These are tools, not black and white affairs. They are a tool to be used to achieve the goals you have for your business and if used properly they can help your employees grow. Then everyone wins.