The current implementation of jira and confluence I’m using is worse than having _no_ ticket tracking and documentation system.
Because if it didn’t exist there would be the impetus to implement something. But we just kinda barely limp by with what we have.
It’s so barely functional that people actively avoid using it.
I’m fully aware that the company is to blame and not necessarily atlassian though, as we have a number of plugins and random custom fields.
One of the most dangerous things about jira is that it tries to be everything to everyone and people get carried away in the customisation believing they need it. It slows everything to a crawl and leaves you inundated with mandatory fields and a nightmare of matching stories with sprints and estimations in order to bring a bloody task in.
Life was better with rt and mediawiki.
Also the mandatory fields are definitely a per-organization thing. At my org we have I think 3 mandatory fields, which are the project the ticket goes under, the title, and the description. In many cases, "migrating" from JIRA to JIRA but 90% of the features are disabled would probably be an improvement.
... I suppose that might be the main difference between people who hate JIRA and people who find it a little bit clunky but generally acceptable: people who mostly have the baseline stuff happen automatically are fine with it, and people who spend a lot of time interacting with the web frontend in repetitive ways hate it.
I ended up forcing my slack bot to issue POSTs to Jiras API out of frustration.
The two workhorses of my integration are two methods named jira_get and jira_post.
function jira_get {
ENDPOINT="$1"
PAYLOAD="$2"
URL="https://your-org.atlassian.net/rest/api/2/$ENDPOINT"
QUERY_STRING="$(jq --null-input --raw-output --argjson x "$PAYLOAD" '$x|[to_entries[]|((.key|@uri)+"="+(.value|@uri))]|join("&")')"
curl \
--silent \
--request "GET" \
--header "Content-Type: application/json" \
--user "$JIRA_USER:$JIRA_TOKEN" \
"$URL?$QUERY_STRING";
}
function jira_post {
ENDPOINT="$1"
PAYLOAD="$2"
URL="https://your-org.atlassian.net/rest/api/2/$ENDPOINT"
QUERY_STRING="$(jq --null-input --raw-output --argjson x "$PAYLOAD" '$x|[to_entries[]|((.key|@uri)+"="+(.value|@uri))]|join("&")')"
curl \
--silent \
--request "POST" \
--user "$JIRA_USER:$JIRA_TOKEN" \
--header "Content-Type: application/json" \
"$URL" \
--data "$PAYLOAD";
}
Then if you want to get the available transitions, and required fields for those transitions, you can do ISSUE=PRJ-1234
ISSUE_JSON="$(jira_get "issue/$ISSUE/transitions" '{"expand":"transitions.fields"}'
TRANSITION_NAMES="$(echo "$ISSUE_JSON" | jq '.transitions[].name')"
and then given the transition in question, you can look at the fields required for the transition, and figure out where you get the data that goes in those fields normally. Any time the data that goes in those fields is obtained through a rote process, you automate that process, and then prompt for any fields you can't get in an automated fashion (e.g. "signed off by" you can fetch the reviewer names from the github api for the associated pull request).But yeah, a slack bot that issues requests to the JIRA api is a perfectly workable solution, and I think you'd be surprised at how much of a quality of life improvement you'll get by continuing to add capabilities to it that reflect your specific workflow.
The problem is that this anecdote is not even remotely surprising. I've used JIRA and/or Confluence at three employers and all three had wildly different, and awful, configurations. I have never worked with any technical folks who loved either, although I think on the whole Confluence is slightly better than JIRA.
I thought the same thing for a long time - that Atlassian makes decent products that are often implemented poorly - but the problem is, at what point does it become Atlassian's fault for making products that seem so easy to implement so badly that developers will go out of their way to track work in Excel instead of JIRA?
A couple of mandatory fields (department, team, application), that were manageable and that's about it.
They even the JIRA during my tenure there. Made user sessions last for a while instead of being disconnected every 15 minutes.
Feel free to email me if you think your company may be open to using outside help to clean things up.
I'd rather learn a completely new system every 90 days than use JIRA.
On a typical day moving tickets around , reviewing everyone's items and confluence with its WYSIWHG editor only approach is 20% of my day gone.
Just making the UI non blocking for every single action would double my productivity. Their mobile apps are definitely better than web, so it is not like they cannot build decent interface and application, The web app just smells of legacy and debt to me.
Even if its because of customizability they provide, it is really on them, to approve all sorts of plugins and for all straitjacketing they and/or AGILE ( as typically implemented) does to your development in the name of structure, restricting some of this customizability would not have hurt product more.
Ultimately like any other SaaS business they serve the buyer and not the user. They are interested in what sells more, more often than not it does not intersect with what the users need. Customization sells, saying NO doesn't in enterprise.
I guess we should be thankful they are not IBM or Oracle and build your kitchen sink and neighbours too
I am tempted at least once every few months to just build a better interface and frontend which isnt' crap. Management is not going change from JIRA. Developers / users would happily pay out of pocket for a saner interface which helps simply manage their items without fuss, most people don't really care about the backend and the fancy reports, burndown charts for the most part, those who do can use the official app .
I'd rather use a tool that is flexible by default than use a rigid tool that you need to change every six months.
Incidentally that conversation started with the suggestion to bring Jira into our already bloated set of services.