News for hackers. Stuff that matters.
Re:Inside the longest Atlassian outage by h2odragon on Wednesday April 13, 2022 @11:59AM (#31016269)
> However, if they [restore backups], while the impacted ~400 companies would get back all their data, everyone else would lose all data committed since that point

OK, so you restore backups to a separate system, and selectively copy the stomped accounts data back to production. Simple concepts aren't that simple at their scale, sure, but I suspect this is skimping details on some truly horrendous monolithic architecture choices that they're trying to hide.

Not that I ever thought using their products was a good idea; to be clear about my position... But at this point anyone continuing to rely on them for anything is asking for the suffering they'll get. Signing up for their crap for a vital business function is like offering your tonker to a snapping turtle.

Re:Inside the longest Atlassian outage by throwaway894345 on Wednesday April 13, 2022 @12:30PM (#31016706)
I would really like to understand who makes the decision to purchase JIRA. It's like the C++ of ticketing software--it does everything because no one wanted to sit down and think critically about the use cases and instead decided it would be easier to say "yes" to every single feature request. It definitely feels like whoever is buying JIRA is not on the team who is using it (maybe IT or finance) because it ticks their boxes and it has such a huge list of features that nominally it appears to tick the product development boxes (ignoring more subjective concerns like "quality", "performance", and "usability").

I would really like to try working in an organization that uses something simpler, like Trello (although now that this is also an Atlassian property, maybe not exactly Trello?).

Re:Inside the longest Atlassian outage by closeparen on Wednesday April 13, 2022 @01:24PM (#31017433)
JIRA is a framework for making assembly lines out of knowledge workers. When you're a middle manager at a decent sized company, a major problem you face is that the mass of knowledge workers beneath you are opaque: you have no way of knowing whether they're working or not. Another problem you face is that they're uppity: people who went to college and got used to managing their own time now have all kinds of idiosyncratic ideas about how to manage their own time and arrange their own working lives. Since you are a middle manager you despise local differences. Since you are a manager you're pretty sure that only you and your lieutenants can be trusted with this kind of decision making power. Adopting JIRA is a powerful level to put people back in their place as work item churning machines. Constraints such as only certain people can create or assign tickets, only certain people can mark them completed, only certain states are valid transitions from other states, etc. implement a level of domination over white-collar workforces that managers would be otherwise uncomfortable asserting face to face.

Other ticketing systems do not work nearly as well for this purpose because they are designed mainly as external brains or communication platforms for workers, and they assume a level of worker autonomy in moving tasks through their lifecycle. In Trello you cannot make it so that a PM has to sign off before a card is moved to the in-progress column, or that only in-progress cards can have code reviews associated with them. JIRA eats these kinds of requirements for breakfast.

EDIT: This is not to say you can't use JIRA in a workflow-neutral way, or that everyone uses it for this reason, but I would submit that it's JIRA's differentiated advantage.

Re:Inside the longest Atlassian outage by codycraven on Wednesday April 13, 2022 @01:49PM (#31017813)
It sounds like you've been hurt by the some terrible management practices, I'm truly sorry that some managers think their job is to control their subordinates.

However, regarding ticketing systems, in team environments, it is very effective and helpful to have a system that manages the data about the work that has been completed, is being worked, and is planned to be worked on .

Part of that system might be defining restrictive workflows for some teams, not for control, but to ensure the agreed upon process is followed for quality or consistency.

One of the many problems Jira has is that if you don't have a Jira admin on your team, it's impossible to build an effective and efficient workflow for your team. Coupled with Jira making many things global by default (it takes a lot of care to make a change that only affects specific Jira projects) most configurations end up being a pile of garbage automatically inherited from changes an admin(that is not part of the team) made when intending to change something for another specific team.

Re:Inside the longest Atlassian outage by agalunar on Wednesday April 13, 2022 @03:23PM (#31019038)
Caveat: this is going to be a meta comment rather than a comment about the topic proper, and so maybe not appropriate for HN, but I think it's worth discussing.

> It sounds like you've been hurt by the some terrible management practices, I'm truly sorry that some managers think their job is to control their subordinates.

When we assume someone was hurt, and imply they hold an opinion only because they were hurt, we risk delegitimizing their position. The interpolated message we might be sending is "your experience is personal and not representative of the subject at hand, and so your thoughts are only applicable to your situation; so, after we express our sympathy, your thoughts can be dismissed." Or the message we might be sending can be patronizing: "you hold your opinion for emotional, rather than rational, reasons; I'm sorry that you are so unfortunate."

To be clear, though, I'm sure this wasn't your intent, and it makes me glad to see someone being compassionate (i.e. that you bothered to consider the experiences and feelings of the parent commenter).

A personal story: I was raised devoutly religious but left the church in my twenties. My family and friends assumed I left because I wanted to be free from guilt, had been hurt by a culture that belied the doctrine, and so on (and they said as much). My change of belief occurred after recovering from a few years of mental illness, and while it is true that I may not have left when I did were it not for the opportunity to reexamine my beliefs (while trying to piece back the fragments of my life into a sense of self), the reasons why I left were the result of a lot of research and thinking. It was mildly frustrating when people assumed my decision was made for emotional convenience, when in reality, the research was uncomfortable and contemplating an unfamiliar universe was scary.

I recognize the irony here – the issue I'm highlighting in this comment may be something that only I feel is an issue, born from a personal experience. But I think it's more common than that.

Re:Inside the longest Atlassian outage by liamwire on Wednesday April 13, 2022 @04:43PM (#31020008)
I sincerely appreciate your articulation of this, thank you for taking the time.
Re:Inside the longest Atlassian outage by closeparen on Wednesday April 13, 2022 @02:07PM (#31018069)
>ensure the agreed upon process is followed for quality or consistency

That is what I mean here by "assembly line" and "control." Making sure that processes lead and individuals follow.

Citing consistency as a terminal value in the same breath as quality is also exactly what I mean by the middle-manager aversion to local differences.

Re:Inside the longest Atlassian outage by chousuke on Wednesday April 13, 2022 @02:42PM (#31018517)
Beyond trivial scale, you need good processes so that individuals can do their jobs. If you have no processes, change and development becomes extremely difficult because people will be hunting for documentation all the time, stepping on each other's toes, and making mistakes that they should not be making because they forgot a trivial procedure that was a prerequisite to solving their actual problem.

I work with a variety of different environments, and depending on the environment I can either solve my problem in minutes and get it deployed in another few minutes or solve the problem in minutes and spend hours figuring out how to safely deploy it without breaking everything. JIRA is terrible if you do anything that it offers by default, but when used properly it can absolutely help with this.

Re:Inside the longest Atlassian outage by baq on Wednesday April 13, 2022 @03:11PM (#31018890)
To add to that, and perhaps educate your downvoters a bit, it can be very hard to imagine why or when such strict processes are helpful without having direct experience with organizations of sufficient scale. It literally boggles the mind but the process truly is king when there are hundreds (or thousands) of individuals working on a single product.
Re:Inside the longest Atlassian outage by hn_go_brrrrr on Wednesday April 13, 2022 @03:25PM (#31019077)
Agreed. An essential part of blameless engineering culture is "the outage isn't any one person's fault, it's the fault of the tooling and processes for allowing them to do that". Good processes prevent everyone from making the same mistakes.
Re:Inside the longest Atlassian outage by closeparen on Thursday April 14, 2022 @06:19PM (#31034059)
IMHO the "correct" or at least humane organizational design is that most things happen in local teams, which are of trivial scale and can get along just fine with informal, ad-hoc, or locally varied processes.

Obviously not all work is this way. Sometimes you need to drive a migration that touches every team, and then the technologies of bureaucracy and process become important. But most work should be done in human-scale groups that can be more towards the self-organizing and trust-based end of the spectrum.

However some middle managers take offense to the idea that their different sub-teams have different operating models internally, and lean on technologies like JIRA to try to make them all the same. Middle managers at my company have tried this, not very effectively , so it hasn't hurt me too bad. But I've seen their vision and recoiled in horror.

Re:Inside the longest Atlassian outage by tyingq on Wednesday April 13, 2022 @03:29PM (#31019134)
>However, regarding ticketing systems, in team environments, it is very effective and helpful to have a system

I think the point is that Jira is particularly granular in the way that it lets you do things with permissions, workflow rules, roles, metrics, etc. There's a fair number of places that use that granularity to create a weird digital sweatshop.

Meaning the complaint is more about really deep "micromanagement as a service" than what you might get with lighter tools.

Re:Inside the longest Atlassian outage by brazzledazzle on Wednesday April 13, 2022 @03:33PM (#31019180)
Micro managers are everywhere, even in places that may seem culturally incompatible. I’ve yet to work for a business that prioritizes regularly evaluating managers for their management skills. It’s only addressed when shit really hits the fan. Managers are primarily evaluated by their own managers on deliverables. As long as they’re getting results and entire teams aren’t quitting simultaneously there’s no need to question anything. As long as a manager is toxic in ways that don’t break the law or violate major company policies any attempt to address this by a direct report carries the risk of termination or retribution. Does it contradict your company’s cultural values? Rules for thee.

And I wouldn’t assume you’re not one of them. The worst cases I’ve run into aren’t even the psychos that embrace micro management as part of their “management style”. It’s the ones that genuinely believe they aren’t engaging in the behavior. They’re not micro-ing, they’re “helping” their team because they are an awesome manager and their team is almost awesome, they just need to be monitored very carefully and given “suggestions” until they nail it. But they’ll never nail it. Because no one is as smart, experienced or does a task “just so”. They view themselves as a mentor to all. All decisions must be theirs to make. Jira becomes the perfect tool since the team effectively becomes little boxes that accept tickets or stories and return work both performed and delivered as specified.

For any managers reading this that don’t see a problem with this or see some of those behaviors in yourself please understand that you are sacrificing your team’s happiness and motivation at the altar of your own insecurities. No one can grow where they’re not trusted and no one can improve their skills when they’re never given latitude to make meaningful decisions. Your people will make mistakes. They will accomplish things in ways that are different from how you would do them. It might even be objectively worse. That’s ok. That’s how you grow into a strong team with confident members.

Re:Inside the longest Atlassian outage by 52-6F-62 on Wednesday April 13, 2022 @03:56PM (#31019482)
Kanban, by design, was a tool used in production control. It's one of the ways Toyota made their JIT production function.

I worked on the line (Toyoda Iron Works) and used a real-life Kanban implemented by the plant engineers. It was used for quality control, to broadcast quality control and station output, and was checked regularly against their internal estimates and baselines and used also as a gauge for employee output.

Control is what it's designed to do. The very fact that Kanban is the tool of choice should support at least some of OP's points, objectively.

Re:Inside the longest Atlassian outage by sjtindell on Wednesday April 13, 2022 @02:01PM (#31017976)
Agreed. This is a problem of scale in my opinion. When we have 10 engineers, it is easy to check in with everyone and know what they are working on and get a status update. When we have 500 engineers, making sure all their tasks are aligning (organizations are one big race condition) is not just hard but impossible without some sort of tracking system. We all want to grow big. To do so, your processes need to change as you add more people. The exceptions (Valve, Netflix, etc.) that can handle being flat or semi-flat are very unique.
Re:Inside the longest Atlassian outage by biomcgary on Wednesday April 13, 2022 @03:03PM (#31018806)
Are they unique because their problem domain allows it or because the leadership is uniquely ideologically driven (and competent) to implement efficient, flat systems?
Re:Inside the longest Atlassian outage by sjtindell on Thursday April 14, 2022 @08:36PM (#31035337)
I think it’s mostly the people. They are die hard about their culture. At most of my workplaces, culture is generic and the company would be willing to set whatever culture rules seemed to work.
Re:Inside the longest Atlassian outage by mistrial9 on Wednesday April 13, 2022 @02:15PM (#31018187)
I was told by a lifetime manager turned successful consultant, that roughly fifty percent of engineering firms govern their engineers basically using fear.
Re:Inside the longest Atlassian outage by ornornor on Wednesday April 13, 2022 @02:31PM (#31018401)
> using fear

Could you elaborate? What kind of fear? “You’re fired”? I wonder how effective it actually is because of the current job market and also because I (and others) react very poorly to this kind of tactics: “you want me to fear getting fired? Joke’s on you, please DO fire me, I dare you”

Re:Inside the longest Atlassian outage by KronisLV on Wednesday April 13, 2022 @03:31PM (#31019149)
> I wonder how effective it actually is because of the current job market

Counterpoint: software developers aren't necessarily well paid or highly regarded everywhere, since remote working for companies abroad hasn't quite gotten mainstream enough.

So it might just be effective against some people, or in cases where the hiring process itself has become increasingly unreasonable - the job being working on boring CRUD apps but the hiring process being multiple stages of Leetcode and complex interviews.

That's probably not applicable to everyone since plenty of folk can grokk Leetcode and find jobs without too much trouble, but i still recall "The Unseen 99%" article: https://www.hanselman.com/blog/dark-matter-developers-the-un...

It probably applies to the industries and companies where devs are treated as a cost center and since those companies aren't all out of business, plenty of people must be working in such environments, with sometimes sub-optimal conditions.

Re:Inside the longest Atlassian outage by numpad0 on Wednesday April 13, 2022 @02:54PM (#31018678)
I'm guessing it's a sort of a nerd shorthand for "various means that are accompanied with self confusion of users but not with strong rational or scientific or technical basis"
Re:Inside the longest Atlassian outage by zrail on Wednesday April 13, 2022 @02:56PM (#31018700)
The perf process is basically one big exercise in fear-based control.
Re:Inside the longest Atlassian outage by malermeister on Wednesday April 13, 2022 @02:18PM (#31018233)
> ensure the agreed upon process is followed for quality or consistency.

Isn't that just a more corporate way of phrasing "control"?

Re:Inside the longest Atlassian outage by robertlagrant on Wednesday April 13, 2022 @03:13PM (#31018926)
Not in a negative way. You want to trust engineers to always have changes built and tested before they go to production, but when something egregious happens you need to go back and see what went wrong. You can choose to interpret that as control, but really the only alternative (often cited) is "Well that shouldn't ever happen, so you don't need tooling to support that situation".

And that is not a useful way of thinking when you have real engineers writing software that people depend on.

Re:Inside the longest Atlassian outage by malermeister on Wednesday April 13, 2022 @03:58PM (#31019509)
I think the problem is that the processes are often not mutually agreed, but instead dictated by middle managers.

JIRA then becomes a tool for enforcing arbitrary rules, e.g. control

Re:Inside the longest Atlassian outage by robertlagrant on Wednesday April 13, 2022 @04:29PM (#31019846)
This is very likely even if engineers come up with the processes, unless all process is scrapped and done from scratch every time an engineer is hired.
Re:Inside the longest Atlassian outage by theptip on Wednesday April 13, 2022 @03:14PM (#31018937)
I think you've got part of the answer here, but are selling it short. Jira is the most complex task-processing rule engine that is also easy enough for a small team to operate, and also has the broadest set of integrated tools of any offering.

You can use Jira as a simple Scrum board, a Kanban board, or you can build enforced-process monstrosities. You can build customer-support / internal-helpdesk workflows, or even model internal work-item-oriented business processes, etc. Now, as you point out, just because you can doesn't mean you should, and many orgs fall into the trap of making issue workflows overly-restrictive. But most companies (I believe) choose Jira before they choose those hairy task workflows. Startups with zero process use Jira.

Also, you can integrate it all together to give good-enough dashboards/roadmaps, good-enough (for some, not me) docs integrations with Confluence, Git integration with Bitbucket etc. -- while there are big issues with these systems, I think it would be myopic to ignore the real benefits of working in one integrated stack where every design doc you write has dynamically-updated labels and auto-complete for each issue you type in.

For context, I use Jira for tasks and don't love it, found Confluence to be really annoying and so I don't use it, and prefer Gitlab to Bitbucket, but I think you have to recognize these unique selling points. If all Jira had to offer was the rule engine it would not be as widely used.

Re:Inside the longest Atlassian outage by pid-1 on Wednesday April 13, 2022 @03:30PM (#31019138)
Yeah my team uses Jira to keep track of what we are doing and what we need to do.

Each member can actually organize their sprint and create tasks.

Point assignment is not a big deal, it's just there so we avoid promising more than we can chew.

I've found Jira really pleasant to use for lightweight processes.

Re:Inside the longest Atlassian outage by _dark_matter_ on Wednesday April 13, 2022 @01:38PM (#31017645)
I feel you here, but I've been at multiple companies that used JIRA and never once had any of those requirements. I've also never seen it come up when deciding which ticketing system to use. Teams have always been free to move tickets at-will.
Re:Inside the longest Atlassian outage by KptMarchewa on Wednesday April 13, 2022 @01:52PM (#31017851)
One very large video game studio has tons of automation for Jira. Imagine someone deciding to add new weapon. The automation creates 100s of tasks for concept artists, 3d artists, animators, sound artists, software developers with complex dependencies better those. Most importantly, automation creates multiple QA steps for each element of completed work.

The same exists for levels, enemies, quests and tons of other elements.

I would not be surprised if a lot of studios had similar workflows.

Re:Inside the longest Atlassian outage by BlargMcLarg on Wednesday April 13, 2022 @02:07PM (#31018066)
See, that is great. Automate what can logically be deduced from the information available and set up templates to provide that information. For developers, it should be automated enough you shouldn't have to write the same info twice, once in commit messages/merges/branch names, once in the ticket itself. If the workflow is so streamlined, all that information can be deduced and the ticket can be advanced automatically. Most information is available and documented for other parties.

However, that's just not what most people go through in companies using JIRA. Worse, they have to toggle between pages multiple times, each taking at least a few decent seconds to reload. I'd like to give JIRA the benefit of the doubt here, but it sounds like the tool is just very easy to misconfigure and abuse.

Re:Inside the longest Atlassian outage by robertlagrant on Wednesday April 13, 2022 @03:28PM (#31019120)
This is pretty easy with Jira. There's a GitHub plugin which links PRs and commits to a ticket, and a GitHub plugin that links ticket numbers back to Jira tickets.

And you generally do them both at a lower level than tickets, certainly commits, so you don't want to have too much automation between them as that starts adding constraints.

Re:Inside the longest Atlassian outage by TheRealDunkirk on Wednesday April 13, 2022 @04:02PM (#31019561)
Even worse, companies with the resources to buy JIRA will probably hire consultants to set it up, and you wind up with a system 1) bought by people who don't understand how programmers work, 2) configured by people who don't know how your company works. So end users usually wind up with a terrible system that continually generates complaints (along MANY axes), and the people responsible for foisting it on them think they're just being difficult.
Re:Inside the longest Atlassian outage by mikepurvis on Wednesday April 13, 2022 @04:29PM (#31019849)
So I would say that this assessment is on the whole, kind of cynical, however I suppose I have the interesting position of being in an organization where I feel like I actually see both JIRAs.

One JIRA is the project that's used for development of the core product, where there are no constraints— anyone can add a comment, create links, change assignee, add new tags, push the tickets through whatever state transitions they want, and so on. It works, though it is a little chaotic sometimes as subgroups of people have different preferences for how things should go (eg, for tickets requiring test team validation, should the ticket assignee remain as the person who did the original work so it's clear who has more to do if it fails validation, or should the assignee change to the test team person, so that it's clear that that's the next person who has it as an action item?)

The second JIRA is the IT team's internal support project, which is completely locked down— no one except them can close tickets or move them around, or even edit the contents, closed tickets can't be commented on any more, and so on. This is the one that gives me the vibes you are talking about. Every time I have to interact with it, I loathe it because every inch of it is transparently a funnel, railroading me along a path toward one of either DONE or WONTFIX. This is absolutely efficient, in the sense of meeting the goal of closing all the tickets, but I feel it introduces friction for the larger business goal of actually helping people resolve their problems. To the point where eventually most of the IT support activity moved away from the JIRA project to an informal Slack channel, which is way more accessible, but worse in basically every other way: it's harder to effectively search, impossible to properly link, bad for async, bad for dealing with more than one thing at once, etc.

Re:Inside the longest Atlassian outage by Rimbo on Wednesday April 13, 2022 @01:36PM (#31017596)
Oh, nonsense. People buy Atlassisn because the licensing is cheap, not because it's particularly good at what it does or designed with any particular workflow in mind.
Re:Inside the longest Atlassian outage by ofrzeta on Wednesday April 13, 2022 @01:43PM (#31017716)
I don't see how it is cheap. Standard may be cheap but then you are missing a lot of features that are announced on the product pages with a small footnote saying "only in premium".
Re:Inside the longest Atlassian outage by Viliam1234 on Wednesday April 13, 2022 @01:45PM (#31017751)
Cheaper than whatever is the open-source alternative?
Re:Inside the longest Atlassian outage by ivan_gammel on Wednesday April 13, 2022 @02:39PM (#31018488)
Free software has zero acquisition cost, but non-zero TCO, which can measure in millions USD (recurring salary of dedicated IT team), depending on the size of organization and complexity of the setup. You will need to maintain on-premise infrastructure, automate backups and recovery, automate security, automate updates (including testing and rollbacks) etc etc, basically doing all the jobs of the people responsible for the infrastructure at the SaaS provider, but at much smaller scale and not achieving the same efficiency. You will have to do those jobs considerably better to justify the costs.
Re:Inside the longest Atlassian outage by mistrial9 on Wednesday April 13, 2022 @03:48PM (#31019372)
in thirty years of experience, I see this talking point straight from Microsoft anti-Open Source days..

> Free software has zero acquisition cost, but non-zero TCO, which can measure in millions USD

Often a primary driver is exactly the opposite -- for-profit companies are accustomed to paying money for a good or service, with a billing pattern and legal obligations. The company financial deciders do not want a setup that does not have a billing pattern and clear legal obligations. Meanwhile, Open Source Software went from niche to mission-critical in the 2000s via the Internet. For-profit companies (and their publicists) scrambled to explain it, and came up with that exact line repeated again today. I do not blame any person for saying it, it was in print in some reliable place. It does not capture the reality in 2022 IMO.

Re:Inside the longest Atlassian outage by ivan_gammel on Wednesday April 13, 2022 @05:29PM (#31020536)
To be honest, I do not understand your comment.

> The company financial deciders do not want a setup that does not have a billing pattern and clear legal obligations.

I haven’t ever met a CTO or CIO, who would make budget decisions like that, neither I do it this way myself. The reality in 2022 is the same as it was in 2012 or in 2002: when you choose a solution, you consider all long term costs. In 2022 TCO for the server software includes everything that I mentioned in my comment and more. There’s a lot of use cases for OSS in corporate environment, for sure, but not every OSS solution is cheap or even affordable. Running on-premise open source collaboration tool is certainly not cheap if you do it right.

Re:Inside the longest Atlassian outage by chaosite on Wednesday April 13, 2022 @01:51PM (#31017828)
Sure, if you host it yourself you have to pay someone to admin it (usually significantly more expensive than a license), and if you use a hosted solution you have to pay the host.
Re:Inside the longest Atlassian outage by RandallBrown on Wednesday April 13, 2022 @12:35PM (#31016789)
I think people buy JIRA because you can set it up however you want. I've seen it almost as simple as Trello and much more complicated. It doesn't have to be terrible, it just usually is.

If JIRA didn't allow you to make it terrible, it wouldn't allow for some of the absurd things that people want it for and those companies might not buy it.

Re:Inside the longest Atlassian outage by a4isms on Wednesday April 13, 2022 @12:50PM (#31016989)
They used to say of Microsoft Word, "Nobody uses more than 5% of its features, but every company uses a different 5%."

The saying is apocryphal and unlikely to be accurate, but the shape of the thing its describing applies to almost every piece of enterprise software whether installed on-prem or SaaS.

And as another comment points out, at Enterprise scale you can substitute "team" or "group" for customer. Every team might use a different 5%, and unless you standardize their processes, you have to buy the product that can accomodate all of their needs.

Re:Inside the longest Atlassian outage by grog454 on Wednesday April 13, 2022 @03:23PM (#31019034)
>"Nobody uses more than 5% of its features, but every company uses a different 5%."

>The saying is apocryphal and unlikely to be accurate

Well its mathematically impossible to be accurate as soon as you have > 20 users.

Re:Inside the longest Atlassian outage by moonbooth on Wednesday April 13, 2022 @03:52PM (#31019420)
Only if you assume the 5% of features to be a contiguous block each time.

However, if we assume there are, say, 100 features in Word (the real number is likely much higher), the number of combinations is orders of magnitude higher than 20.

Re:Inside the longest Atlassian outage by KronisLV on Wednesday April 13, 2022 @03:39PM (#31019248)
> Well its mathematically impossible to be accurate as soon as you have > 20 users.

It's probably in the semantics.

Text input and editing is clearly a part of functionality that's probably used by everyone (or at least most users), so it's not possible for "different 5%" to mean what you're alluding to, maybe the phrasing needs work.

In any given 5% there might be 1-4% of overlap with what others are using and the remainder of that is specific to the company.

Re:Inside the longest Atlassian outage by grog454 on Wednesday April 13, 2022 @05:40PM (#31020645)
And the greater the degree of overlap the weaker the implicit argument.

If it's a uniform distribution of discrete features then each feature is equally "important" and worth equal resources and dev time. If 81/100 companies use the exact same 5% of features and the remaining 19 cover the remaining 95%, then all else equal you can probably drop 95% of your features and still do well.

Re:Inside the longest Atlassian outage by a4isms on Wednesday April 13, 2022 @06:31PM (#31021120)
The dynamics of the Enterprise market are such that there are features where having just one customer that will make a buy/no-buy decision based on just one feature will deliver enough incremental ARR to justify the opportunity cost of doing that feature instead of a bunch of others.

Typically you do the most popular features first, but most Enterprise vendors end up working on a long tail of niche features that nevertheless are profitable.

There's a long conversation to be had about how this ends up being a trap where Enterprise software gets bloated and shitty and eventually gets disrupted by a small vendor that does "less," but in a powerful, transformative way that obsoletes the Enterprise "standard," which leads us back to discussing Atlassian :-)

They're a good example of this dynamic, because they have a "constellation" of products to sell. So if they build a niche feature that gets a new customer to buy Jira seats, having "landed" in the account, their salespeople can "expand" by selling OpsGenie and other related products very profitably.

Re:Inside the longest Atlassian outage by shukantpal on Wednesday April 13, 2022 @04:03PM (#31019564)
False. If you have 100 features, there are nCr(100, 5) combinations of 5% features = 75287520.
Re:Inside the longest Atlassian outage by a4isms on Wednesday April 13, 2022 @05:11PM (#31020338)
If it's no more than 5% of the features, it's actually n-choose-k(100,5) + n-choose-k(100,4) + n-choose-k(100,3) + n-choose-k(100,2) + 100!

    75,287,520
  +  3,921,225 
  +    161,700
  +      4,950
  +        100
  ------------
    79,375,495
Re:Inside the longest Atlassian outage by robertlagrant on Wednesday April 13, 2022 @03:36PM (#31019209)
A better counterexample is that one user could use all features.

But your statement doesn't make sense; there might be millions of features, and trillions of ways to combine them to make 5%.

Re:Inside the longest Atlassian outage by tenacious_tuna on Wednesday April 13, 2022 @12:48PM (#31016969)
My relatively small team at a massive enterprise built all our report generation tools around JIRA for an entire class of offerings. It's been easier for them to justify continuing to pay for JIRA and keep it propped up than to develop (or migrate to) a new solution.

As the lone dev on the team I've been continually astounded by my leadership's willingness to commit more and more to tech debt laden paths. The notion that all software requires maintenance is anathema to them, and it's led us to be 'cornered' into decisions re: what software we can use / where we can invest our discretionary funding.

Moreover, we're constrained by the parent mega-enterprise's software purchase policies; JIRA's already approved (and run elsewhere in the enterprise), whereas off-the-shelf or SaaSy alternatives are significantly harder to get buy-in for. (No using corporate cards for SaaS, all purchases need to go through the quote/purchase-order process, etc).

Re:Inside the longest Atlassian outage by peletiah on Thursday April 14, 2022 @02:30AM (#31023962)
I once worked for a company that did the same - but with Lotus Notes, in 2013. Modified it into a full-fledged ticketing- and time-tracking tool. Using it took a half hour out of each workday.
Re:Inside the longest Atlassian outage by BolexNOLA on Wednesday April 13, 2022 @12:50PM (#31016992)
I really, really like Trello and am dreading the day when atlassian starts tinkering with it in any real capacity. As a content creator, it is the first workflow system I’ve ever seen that I can effectively share with my client. It’s so simple and streamlined and the fact that I’ve stuck with it despite my ADHD says a lot.

Clients add their notes to the card, I check the boxes as I hit the notes, and I move the card further right as we enter different stages of the post production process. We then have a column of every completed project, which is incredibly easy to sift through if we need to revisit something. It’s literally left to right in the workflow, it visually is telling me where we are at all times.

It’s incredibly simple and elegant. For fast turnaround, relatively stripped down content (like podcasts) there is nothing like it.

Re:Inside the longest Atlassian outage by richardw on Wednesday April 13, 2022 @01:07PM (#31017214)
I’m just a user but totally happy with all our Atlassian apps. Confluence is a huge win across our multi-thousand person company and the best teams use it very well. I like the integration between Jira and Bitbucket. We don’t over complicate things and it works fine.

It’s like my taste in wine. I don’t want an overdeveloped sense of taste where only a $400 bottle will do. I’m fine with what we have because the work is what excites me and if people are documenting projects and managing workloads and committing code, we’re 90% of the way there.

Re:Inside the longest Atlassian outage by danielovichdk on Wednesday April 13, 2022 @04:03PM (#31019571)
Good point.

Wine that costs 400$ is for fun.

You don't drink that professionally.

Re:Inside the longest Atlassian outage by JoBrad on Wednesday April 13, 2022 @02:54PM (#31018672)
I was part of the decision to purchase Atlassian tools at my company. We had been using a variety of self-hosted and SaaS tools which had varying abilities to integrate with each other. We’ve had very positive feedback from users since switching to them. We were also able to move some of our help desks to JIRA Service Management, and away from another self-hosted product which is still used by a good portion of our business. The self-hosted product is honestly a nightmare to maintain and keep secure. According to the vendor, the “fix” is to have 1-2 people dedicated to that product, which simply isn’t something that my team has the bandwidth or will to do.

JIRA does try to be all things to all people…and mostly succeeds. For instance, we use the same workflow and mostly the same nomenclature across our development and helpdesk teams. Some of our software projects use Kanban-style workflows, while others use sprints, but we can keep track of a project across multiple teams using the same tools. I’m sure other products also offer this, but we liked the integration and overall capability for the price.

There are definitely issues: some feature requests and bugs have languished in their backlog for years. But you can get started very quickly and we’ve had great feedback from users.

Re:Inside the longest Atlassian outage by dangus on Wednesday April 13, 2022 @12:40PM (#31016853)
The answer is medium to large companies. Jira is a tool that can satisfy hundreds of different teams’ work management needs without having to buy dozens of different products.

The fact that it’s so feature packed and customizable is the point.

I think the complainers are not really investing the time in to change project settings to fit their needs.

My only complaint about the Atlassian suite is the performance of Jira and Confluence. The overall page load speed is too slow.

Re:Inside the longest Atlassian outage by macintux on Wednesday April 13, 2022 @12:44PM (#31016905)
How do you change the markup language to be consistent between Jira and Confluence?

How do you eliminate all non-task ticket types in a Jira board and allow any ticket to be a child of any other ticket?

It’s hard to configure away complexity from a product if it’s designed to be complicated.

Re:Inside the longest Atlassian outage by chrisseaton on Wednesday April 13, 2022 @01:36PM (#31017604)
> How do you change the markup language to be consistent between Jira and Confluence?

This here is the single most insane thing about Atlassian.

Re:Inside the longest Atlassian outage by DocTomoe on Wednesday April 13, 2022 @01:51PM (#31017840)
> allow any ticket to be a child of any other ticket?

I have no idea why you would want this from a work management point of view, but you can just use issue linking to describe a parent <-> child relationship.

Re:Inside the longest Atlassian outage by Karunamon on Wednesday April 13, 2022 @01:30PM (#31017504)
Re 1: I'm not sure why that's a necessity beyond a notion of consistency. I find that major wiki editors are not often major ticket creators, and these are different products with different audiences at the end of the day. Also, Confluence uses a WYSIWYG editor, so it's rare to need to think about the markup.

Re 2: Set the project's issue type scheme to one that only allows tasks and subtasks. That gets you one level of nesting. (And even though task and subtasks are different issue types, changing from one to the other is trivial since they have identical fields.) Allowing epics gets you another at the top level. That's a bit limited, but wouldn't arbitrary nesting be even more complex?

Re:Inside the longest Atlassian outage by matwood on Wednesday April 13, 2022 @02:27PM (#31018349)
I agree. I look at every JIRA killer and think we could maybe move and nope...they're missing something we use. In many ways JIRA is like Excel. On the surface it can appear easy to replicate for a single user, then you realize every user uses 10 different features.
Re:Inside the longest Atlassian outage by x0x0 on Wednesday April 13, 2022 @01:10PM (#31017246)
I made the decision, unfortunately. The rationale was literally that I hated pivotal tracker -- what a garbage app that is -- and I'd heard of jira, needed something to track bugs / work items, and signed up. It crucially had a zendesk -> jira sync, so all our zendesk requests could end up in jira.

In the beginning, with me plus 2 engineers, I noticed it was slow but since I used it for 20 minutes a week, that didn't really matter. By the time I started using it for an hour a day, we had 10 engineers on 2 teams using it. I got to see a friend using linear, and I had some spare time that I was going to use to switch, but I couldn't get in the beta. By the time they let me in, the opportunity was over and I was too busy.

Re:Inside the longest Atlassian outage by notreallyserio on Wednesday April 13, 2022 @02:34PM (#31018435)
JIRA is generally fine software that is good enough for most folks, especially if you're willing to adapt your workflow to it. Where it goes wrong is where tools like Jenkins go wrong: folks add too much customization.

That means the tool is often the wrong one for the job, but instead of picking something that's a better match out of the box folks stick with the easy choice (extend what they have).

Re:Inside the longest Atlassian outage by BlargMcLarg on Wednesday April 13, 2022 @12:36PM (#31016801)
Trickle down and first mover. JIRA was there first being "decently ok", enough people adapted it and now others do the same. Then couple with that what you write, the people in charge of deciding the software are generally the ones who can justify wasting half their day on it.

To this day I still don't know what JIRA does so much better that other products don't which big corps are willing to waste months worth of manhours over. It's biggest selling point is integration with the remainder of the Atlassian stack, not exactly known for being great either.

Re:Inside the longest Atlassian outage by vikingerik on Wednesday April 13, 2022 @01:59PM (#31017937)
Jira's big feature is being widely known. It's the modern version of "nobody ever got fired for buying IBM."
Re:Inside the longest Atlassian outage by Cd00d on Wednesday April 13, 2022 @03:42PM (#31019290)
Interesting take.

Personally, I like JIRA. I think it adds a ton of transparency in our org, and while I've used Trello for personal and home projects, I don't see how it's good enough for business. Trello doesn't even allow for time estimates (last I tried), which for us is part of planning. Search in JIRA is also really good, so no ticket is ever just lost to the ether.

Sure, it's not perfect, and waiting for a board to load is annoying, but for distributed work and visibility, I haven't seen something as professionally useful.

Open to exploring though.

Re:Inside the longest Atlassian outage by stuff4ben on Wednesday April 13, 2022 @03:55PM (#31019473)
GitHub Enterprise and ZenHub Enterprise work well for us here @IBM, not that I speak on behalf of them, just a drone doing work.
Re:Inside the longest Atlassian outage by Cd00d on Wednesday April 13, 2022 @04:14PM (#31019701)
ZenHub looks really interesting - thank you for pointing it out.

How good is ticket search? I have to be honest, JQL is the superpower that makes or breaks for me.

Re:Inside the longest Atlassian outage by systemvoltage on Wednesday April 13, 2022 @12:51PM (#31017001)
What's wrong with C++? Seems unfair to compare it with JIRA.
Re:Inside the longest Atlassian outage by throwaway894345 on Wednesday April 13, 2022 @12:57PM (#31017079)
I was a C++ programmer in a past life and I sorta like it. C++ and JIRA seem to have the same philosophy with respect to choosing which features to admit: "yes". The idea is that by supporting the largest number of features possible, they'll surely build something that everyone likes because it will tick everyone's boxes. What people frequently fail to realize is that the absence of misfeatures or redundant features is an important feature in and of itself. Moreover, the more features you support, the harder it is to control for quality.
Re:Inside the longest Atlassian outage by hhmc on Wednesday April 13, 2022 @02:49PM (#31018616)
> The idea is that by supporting the largest number of features possible, they'll surely build something that everyone likes because it will tick everyone's boxes.

The idea that the C++ committee are unthinking people pleasers it patently false.

C++ does have a lot of cruft, but mostly because it aims to: i) support new features ii) maintain pretty strong backward compatibility guarantees

In general the new features are actually pretty well liked, but in conjunction with (ii) it creates a big language. There's a reasonably decent subset that can be carved out, but it's also clear why newcomers without legacy baggage (e.g. rust) are making inroads.

Re:Inside the longest Atlassian outage by throwaway894345 on Wednesday April 13, 2022 @03:51PM (#31019412)
"unthinking people pleasers" isn't how I would characterize it; rather, I think of it more as a "kitchen sink" or "more is more" philosophy rather than a "less is more" philosophy. I'm sure the committee deliberated extensively, but deliberation within their particular philosophical context still produced an unpleasant result. I think the same is true of JIRA.

EDIT: clarified wording a bit.

Re:Inside the longest Atlassian outage by uuyi on Wednesday April 13, 2022 @01:37PM (#31017624)
Ex C++ dev and ex JIRA admin. They are the same class of complete bananas.
Re:Inside the longest Atlassian outage by aaaaaaaaaaab on Wednesday April 13, 2022 @03:50PM (#31019391)
It's a HackerNews meme from people who never bothered to properly learn C++ and are angry that it's not JavaScript/Ruby/Rust/whatever.
Re:Inside the longest Atlassian outage by throwaway894345 on Wednesday April 13, 2022 @05:17PM (#31020402)
I refer you to my sibling comment: https://news.ycombinator.com/item?id=31017079
Re:Inside the longest Atlassian outage by anecd0te on Wednesday April 13, 2022 @12:40PM (#31016854)
ime people pick Jira because they've used Jira and have been promoted via the peter principle to the level at which they make purchasing decisions.
Re:Inside the longest Atlassian outage by brimble on Wednesday April 13, 2022 @12:56PM (#31017063)
IBM effect. If you don't care a whole lot about your ticketing system, you just pick Jira because everyone'll nod along with the choice and you won't personally be blamed if/when it sucks, you won't make enemies or have to argue over the choice because it can't do something that someone else in the org "needs" it to do, et c.
Re:Inside the longest Atlassian outage by karaterobot on Wednesday April 13, 2022 @03:47PM (#31019354)
The way it works is, someone always says "Sure, JIRA is bad out of the box, but you can customize it to work the way you want" and there is nobody around to say "so now you have two problems: a bad system that depends on having an expert to make it work the way it should".

Then, you pay for JIRA, and that expert customizes it the way they like. It still doesn't work very well for most people. Nobody likes it except one stakeholder, and the engineering lead who acts as a admin on it. A while later, those people have left the company, and everyone else is out of luck.

Seen this exact scenario play out at two different companies now. Am witnessing it play out in real time at a third.

Re:Inside the longest Atlassian outage by sam0x17 on Wednesday April 13, 2022 @02:07PM (#31018076)
And yet, it actually is set up in an extremely opinionated annoying way. For example there is no way to actually assign multiple users to the same ticket, which is a big problem if your org legitimately does pair programming (mine does for juniors)
Re:Inside the longest Atlassian outage by robertlagrant on Wednesday April 13, 2022 @03:44PM (#31019309)
Having a single owner for each ticket is not a bad idea. You can see contributors in git.
Re:Inside the longest Atlassian outage by Cd00d on Wednesday April 13, 2022 @03:36PM (#31019214)
Why not just clone the ticket?
Re:Inside the longest Atlassian outage by antiterra on Wednesday April 13, 2022 @02:04PM (#31018025)
In a lot of ways, JIRA disrupted Remedy Action Request System, which had a painful transition from X to Windows client. Remedy was even more admin dependent and unwieldy.
Re:Inside the longest Atlassian outage by spookthesunset on Wednesday April 13, 2022 @05:13PM (#31020360)
I find it helpful to stop thinking of JIRA as a bug tracker or anything like that. In my opinion JIRA is more of a way to create and track workflows. It can be used as a blank slate for quite a lot of things (which I cannot come up with any examples for at the moment!)

That being said, because it can do anything, it doesn't take much effort to make a workflow as painful as possible. Somebody with the "right" mind might make all kinds of checkpoints in a workflow, which makes a lot of operations a pain in the ass because you wind up hopping through a bunch of steps. Pretty sure in our org we just make our workflow "you can hop from any state to any other state"--basically a free-for-all.

Dunno my point, but there you go!

Re:Inside the longest Atlassian outage by robertlagrant on Wednesday April 13, 2022 @03:40PM (#31019269)
The reason to buy Jira is that loads of stuff integrates with it, and lots of people know it. Maybe not perfect, but that's why. And unless you're in it all the time, which some people may be, its ergonomics are not as important as, say, an IDE's.
Re:Inside the longest Atlassian outage by csours on Wednesday April 13, 2022 @02:27PM (#31018354)
"I am not a fish" - the people who buy it are not the people who use it. - https://www.ted.com/talks/seth_godin_this_is_broken
Re:Inside the longest Atlassian outage by throwawayboise on Wednesday April 13, 2022 @04:15PM (#31019705)
The one place I worked that used Jira was a small-but-not-tiny company (about 15 devs at the time). The only people who actually used Jira were the managers. Developers got printed stories. These were used for planning, and were printed on cards and taped to a white board when ready. Developer would pull a card to work on, and return it to the manager when it was complete. The manager did all the status updates and reporting to upper management.

IDK if this was to cheap out on the licensing with a minimal number of users, or if it was to insulate the developers from the experience of using Jira. Perhaps some of both.

Clearly that usage pattern would only scale so far.

Re:Inside the longest Atlassian outage by prescriptivist on Wednesday April 13, 2022 @02:50PM (#31018626)
This reminds me of one of my favorite HN comments of all time: https://news.ycombinator.com/item?id=16424423
Re:Inside the longest Atlassian outage by SatvikBeri on Wednesday April 13, 2022 @02:31PM (#31018399)
At big companies I've worked at, the justification was that JIRA was the only one that met all the regulatory/compliance requirements. I don't know if this is actually true, but smaller companies certainly don't market compliance as well.
Re:Inside the longest Atlassian outage by fnord123 on Wednesday April 13, 2022 @03:04PM (#31018818)
> like Trello

Maybe Asana or Monday would work for you.

Re:Inside the longest Atlassian outage by VWWHFSfQ on Wednesday April 13, 2022 @12:21PM (#31016583)
Most likely the database tables themselves are just a mixture of everyone's data. There's no true multitenancy. So they have to load the backups into a separate database. Then just go through and individually select/insert into the old database. And then you have to worry about things like foreign key constraints complicating the bulk data loading. Are you going to disable constraint enforcement while you bulk load the data? How does that affect existing and new data from customers using the database? Just a guess. But this sounds like a nightmare honestly.
Re:Inside the longest Atlassian outage by tetha on Wednesday April 13, 2022 @01:48PM (#31017788)
Yup. The database schema of one of our products uses a tenant_id in most tables to separate customers logically.

I've eventually gotten a tenant exporter to work. Practically, this requires some deep and nasty digging through the information_schema to build a graph of tables and foreign key constraints. Once it had that, it generates selects with a simple where clause for tables with the tenant_id, and selects with weird joins all over the place for other tables to dump the tenant data.

All of that sounds complex, but that part took a day or two to hammer together to 90% completion, since it's just some graph handling. The other 10% were getting some weird date formatting questions right to produce a properly importable sql dump. And interestingly enough, it's working for more than just that one product.

But that's just where the journey started. After that, it took a weeks and months to sort out legacy tables, old tables, tables without indexes, tables no one knew about, tables that were important (but not), tables with inconsistent data, .... And it's just handling a single relational database. And compared to \copy in psql, it's slow. And at times, weird things happen if you import huge chunks of sql into a postgres with deferred foreign keys (because our schema has cyclical references).

Point is, I know how painful it can be to handle that kind of database schema, at a ridiculously smaller scale. I'm kind of happy to not work there.

Re:Inside the longest Atlassian outage by radicaldreamer on Wednesday April 13, 2022 @12:25PM (#31016645)
I can't believe that they would intermix the data in that way... but if they did, godspeed to them, they're likely still overpromising what can be done in this time frame.
Re:Inside the longest Atlassian outage by dabeeeenster on Wednesday April 13, 2022 @12:28PM (#31016679)
How else do you run a multitenancy platform?
Re:Inside the longest Atlassian outage by ZetaZero on Wednesday April 13, 2022 @12:54PM (#31017037)
This. It would be an impossible nightmare for every account to have their own DB. Hundreds of thousands of accounts and databases....
Re:Inside the longest Atlassian outage by taeric on Wednesday April 13, 2022 @12:57PM (#31017072)
Wait. Why? This sounds like something that feels hard, if you are used to the giant DBs of old. But you can probably get many many instances of the smaller databases without much trouble.

Would still be some maintenance, don't get me wrong. But far from impossible.

Re:Inside the longest Atlassian outage by ezekg on Wednesday April 13, 2022 @01:45PM (#31017749)
Imagine the database schema migrations...
Re:Inside the longest Atlassian outage by Spivak on Wednesday April 13, 2022 @02:12PM (#31018135)
Having worked at shops that used this architecture it's really not that bad. Can you write the code to do one schema migration? Great, now you can do 1000. App server boots and runs the schema migrations, drops privs and launches the app. Now you've staved off your scaling issues from "how to have a db large enough to hold all our customer data" to "how to have a db large enough to hold our biggest customer's data." Much easier.
Re:Inside the longest Atlassian outage by robertlagrant on Wednesday April 13, 2022 @04:19PM (#31019749)
You can write the code to do 1000 schema migrations, but the problem is if you've migrated 40% of them and hit an issue. What do?
Re:Inside the longest Atlassian outage by spookthesunset on Wednesday April 13, 2022 @05:24PM (#31020486)
One of the many reasons to put good constrains on fields and use referential integrity! If you don't let the database enforce data validity you are gonna get fucked at some point!

source: every single place I've worked at that poo-poos referential integrity has a database that is full of bullshit that "the application code" never cleaned up

Always use referential integrity. The people who are against it almost always are against it for superstitious reasons (eg: "it makes things slow" or "only one codebase calls it so the code can enforce the integrity"). All it takes is exactly one bug in the application code to corrupt the whole damn thing. And that bug will happen over the lifetime of the product regardless of how "good" or "awesome" the programmers think they are....

... I'll get off my soapbox now!

Re:Inside the longest Atlassian outage by robertlagrant on Thursday April 14, 2022 @03:56AM (#31024382)
That's one thing yes. What if there's a transient network error, or the DB runs out of memory, and now you have some data in an old state and some in a new.

You're lecturing about table design. I'm talking about more general transactionality over any errors.

Re:Inside the longest Atlassian outage by jagged-chisel on Wednesday April 13, 2022 @02:09PM (#31018087)
the good news is by the time you get to the 100th client, you'll likely have run into all possible bugs and the remaining 6900 will be pretty smooth.
Re:Inside the longest Atlassian outage by oauea on Wednesday April 13, 2022 @02:51PM (#31018637)
You'll quickly run into limitations of how many tcp connections you can hold open. Unless you also want to run separate app servers for each customer, which will cost a lot of $$$

Oh, and just forget about allowing your customers to share their data with each other, which most enterprises want in one way or another.

Re:Inside the longest Atlassian outage by kubami on Wednesday April 13, 2022 @03:27PM (#31019100)
Wait. What? None of the enterprise customers want to share data with each other. And definitely not on a DB level. That should happen in the business logic.
Re:Inside the longest Atlassian outage by lalaithion on Wednesday April 13, 2022 @03:58PM (#31019501)
Lots of companies have consultants, and want to be able to share their consulting-related tickets with their consultants. And the consultants want one system they can log into and see the tickets from all of the companies that are hiring them.
Re:Inside the longest Atlassian outage by outworlder on Wednesday April 13, 2022 @01:55PM (#31017887)
It would be a nightmarish scenario if you have thousands of customers. And completely unnecessary. You can create multiple databases and or schemas in a single instance.

Don't do any of the above unless you understand the implications.

Re:Inside the longest Atlassian outage by lelandbatey on Wednesday April 13, 2022 @02:03PM (#31018004)
I worked at company that architected their multi-tenancy in almost exactly this style. In their particular case, only a few of the very largest customers had their database set aside on their own dedicated instance, but every customer did have their own DB with their own set of tables. Having worked in that world (every customer had their own DB) and on a product where all customers had their data intermingled in one gigantic set of tables in one giant DB on one logical instance, I'd definitely encourage the "every customer gets their own DB".

Giving every customer their own table means you're going to need database administrators. For these folks their dedicated job was maintaining, operating, and changing their fleet of databases, but they where very technical and were amazing to work with.

Re:Inside the longest Atlassian outage by david422 on Wednesday April 13, 2022 @03:39PM (#31019242)
> I'd definitely encourage the "every customer gets their own DB".

Does this extend to services as well? We have a suite of (micro) services. Are they all segregated?

Re:Inside the longest Atlassian outage by mdoms on Wednesday April 13, 2022 @02:23PM (#31018306)
This is the case. I won't comment on your "hundreds of thousands" figure because the number of Cloud customers was a closely guarded secret at least when I worked there, but yes one DB per tenant, dozens to hundreds of DBs per server, and some complicated shuffling of tenant DBs when you run into noisy neighbours.
Re:Inside the longest Atlassian outage by mh- on Wednesday April 13, 2022 @02:47PM (#31018591)
That makes this prolonged restore process all the more confusing, then.

I (and many others) assumed they had to graft in data from backups since a full restore would clobber newer changes from unaffected customers.

If they're all isolated in their own logical per-tenant DBs, I'm really at a loss for what is making restoration take 3 weeks for 400 tenants.

I understand if you'd rather not venture into it, but care to offer any speculation?

Re:Inside the longest Atlassian outage by mdoms on Wednesday April 13, 2022 @08:54PM (#31022195)
To be honest I'm at a bit of a loss too. My speculation is that since they went all-in on microservices and utilizing various AWS services (something that was underway when I worked there) their data stores have become very much more disparate.

For example, they have the main PostgreSQL data store. Surely that's easy to restore. But the users in that DB have a "foreign key" (in a logical sense, not physical) to the Identity service. This is a real life example that occurred while I was there. So now we have a mixture of multi and single tenancy. So perhaps the identity records are also tied to this app ID and deletes were propagated to that service. And perhaps there is an SQS queue and a serverless function to handle, say, outgoing mail from Jira. Where does this data go? I dunno maybe some Go-powered microservice with its own DocumentDB store. Do deletes propagate here too? Who knows. You can see how this gets complicated and how issues multiply with more services.

Again, this is only speculation. But "decomposing the monolith" was a big deal and it was coming from the top.

Re:Inside the longest Atlassian outage by mh- on Thursday April 14, 2022 @12:12AM (#31023335)
Thanks for the insights. It does seem to have, ahem, decomposed.
Re:Inside the longest Atlassian outage by spookthesunset on Wednesday April 13, 2022 @05:28PM (#31020520)
If they had multi-tenant databases for SaaS it would mean either the self-hosted jira instances also had the same multi-tenant database schema or they'd have to maintain two almost entirely different data access layers for cloud vs. on-prem. Since their cloud offering came from a historically on-prem codebase, I would expect the easiest way to offer cloud stuff is to do a DB per tenant. Otherwise there would a shit-ton of new code that only applies for cloud stuff....
Re:Inside the longest Atlassian outage by kikki on Wednesday April 13, 2022 @03:00PM (#31018753)
Not quite the same but at Fandom (Wikia), every wiki has its own DB (over 300,000 wikis), and they are clustered across a bunch of servers (usually balanced by traffic). It works well - but we don't ever really need to query across databases. There's a bunch of logic around instance/db selection but that's about as complex as it gets.
Re:Inside the longest Atlassian outage by jjice on Wednesday April 13, 2022 @03:44PM (#31019308)
Interesting architecture. From a design point of view, I like the idea of full isolation. From an infrastructure point of view I'm a little scared. I'd assume it's actually not that bad and there's a good way to manage the individual DBs and scale them individually.

Really interested if you can share any details.

Edit: I know each wiki is on a subdomain. Does each wiki also have it's own server?

Re:Inside the longest Atlassian outage by kikki on Wednesday April 13, 2022 @04:10PM (#31019654)
There are _many_ databases on each server, last I checked there was around 8 servers (or: "clusters") - and we have it so the traffic is somewhat evenly distributed across each server. There are reasonable capacity limits, and when servers get full we spin up a new one and start accepting new wikis there. I am not in OPS, and they do a lot of work behind the scenes to make this all run smoothly - but from an eng perspective we rarely have issues with this at scale.

Some of this was open source before we unified all of our wiki products, which has a lot of the selection / db logic, at https://github.com/Wikia/app.

Re:Inside the longest Atlassian outage by spookthesunset on Wednesday April 13, 2022 @05:20PM (#31020433)
How do you update the schema on 300,000 databases?
Re:Inside the longest Atlassian outage by kikki on Wednesday April 13, 2022 @07:33PM (#31021627)
It doesn't change often, if we do we just have large automated rollout plans - but we've done mass changes enough times there are good procedures around large DB migrations.
Re:Inside the longest Atlassian outage by radicaldreamer on Wednesday April 13, 2022 @12:32PM (#31016744)
Sorry, I'm not actually sure... maybe someone who's experienced in backend db can elucidate here.

Is it not a good idea to spin up separate db instances for each client/company?

Re:Inside the longest Atlassian outage by brightball on Wednesday April 13, 2022 @01:02PM (#31017147)
There are basically two options for multi-tenancy with their own tradeoffs.

1. An account/tenant_id field for each table

2. A schema for each tenant wrapping all of the tables

Option 2 gives you cleaner separation but complicates your deployment process because now you have to run every database change across every schema every time you deploy. This gets more complicated as your code is deploying in case the code itself gets out of sync, there's a rollback or an error mid deploy due to an issue with some specific data.

The benefit of the approach is the option to do different backup policies for different customers, makes moving specific customers to specific instances easier and you avoid the extra index on tenant_id in every table.

Option 1 is significantly easier to shard out horizontally and simplifies the database change process, but you lose space on the extra indexes. Plus in many databases you can partition on the tenant_id.

Most people typically end up with option 1 after dealing with or reading horror stories about the operational complexity of option 2.

Re:Inside the longest Atlassian outage by eropple on Wednesday April 13, 2022 @01:24PM (#31017432)
The secret bomb in option 1 is that you generally have to have smarter primary keys that fully embrace multitenancy and while Atlassian hires smart folks and I'm sure they at some level know this--that's a relatively hard retrofit to work into a system.
Re:Inside the longest Atlassian outage by outworlder on Wednesday April 13, 2022 @01:58PM (#31017925)
Option 2 has many unforeseen consequences.

Business wants to run a query across customers? In most DBs you need either custom code or to create a stored procedure to iterate across schemas.

Every table that you create is multiplied by the number of customers. This has implications for some database systems (like PG's vacuum).

Your migrations will take _forever_ to run.

Etc.

Re:Inside the longest Atlassian outage by Spivak on Wednesday April 13, 2022 @02:14PM (#31018177)
The second problem is mitigated by the fact that schemas are trivially migratable between database servers. Once you grow too big for one cluster just make another.
Re:Inside the longest Atlassian outage by andyjohnson0 on Wednesday April 13, 2022 @12:41PM (#31016864)
> Is it not a good idea to spin up separate db instances for each client/company?

It depends, really. There is a trade-off in terms of software and operational complexity vs scalability/perf and isolation. And probably a bunch of other factors.

If you have separate databases for each customer, schema migrations can be staged over time. But that means your software backend needs to be able to work with different schemas concurrently. You can also benefit from resilience and isolation guarantees provided by the dbms. On the other hand, having a dbms manage lots of databases can affect perf. Linking between databases can be a minefield, especially w/r/t foreign keys and distributed transactions.

https://docs.microsoft.com/en-us/azure/azure-sql/database/sa...

Re:Inside the longest Atlassian outage by Spivak on Wednesday April 13, 2022 @02:16PM (#31018204)
> But that means your software backend needs to be able to work with different schemas concurrently.

Not if you're truly multi-tenant and each customer has their own app servers. Then your code and schema version are always in lock-step.

Re:Inside the longest Atlassian outage by andyjohnson0 on Wednesday April 13, 2022 @02:53PM (#31018663)
True. But then you have an additional problem ...
Re:Inside the longest Atlassian outage by stickfigure on Wednesday April 13, 2022 @01:07PM (#31017201)
I have built multiple multi-tenancy platforms and I never create separate databases for each customer. If you have separate databases, it's almost impossible to run meaningful queries across all of them. That architectural choice creates far more headaches than it solves. Usually people end up with the split-database architecture when they want a quick retrofit for a system that wasn't designed with multiple tenants.

I've also had to restore partial data from backups on a few occasions when customers fat-fingered some data and asked pretty-please to undo. If someone on staff understands the system well, it's not hard. I suspect Atlassian suffers from a complicated schema and a post-IPO brain drain.

Re:Inside the longest Atlassian outage by sharken on Wednesday April 13, 2022 @01:20PM (#31017381)
It's likely a mixture of all these factors, the brain drain could absolutely be responsible.

At least it would not be the first time in history that a company has lost the engineering spirit. And instead the business people have taken over, so that details like disaster plans become less of a priority.

A business person and an engineer will always view risk differently, better disaster plans is a kind of insurance that is a lot harder to sell when too many business people run the company.

Re:Inside the longest Atlassian outage by x0x0 on Wednesday April 13, 2022 @01:13PM (#31017274)
I can't believe anyone would do separate databases.

Just wait until a migration doesn't run on 2 of your 400+ customer databases. Or multi-hour migrations.

Re:Inside the longest Atlassian outage by rectang on Wednesday April 13, 2022 @01:43PM (#31017718)
When all customer data lives in the unified database: Just wait until a bug in a query exposes the data of customers to each other, creating instant regulatory and privacy nightmares for everyone.
Re:Inside the longest Atlassian outage by x0x0 on Wednesday April 13, 2022 @03:05PM (#31018831)
With an orm and customer objects to create scoped queries, I haven't found this to be a problem. It's also very easy to check in code reviews. And not a painful issue from, well, the lack of this happening given it's an extremely common app design.
Re:Inside the longest Atlassian outage by tedunangst on Wednesday April 13, 2022 @04:16PM (#31019716)
Sounds good to me. Now you've got 398 happy customers on the new version, and a small scale issue to resolve with two customers.
Re:Inside the longest Atlassian outage by codingdave on Wednesday April 13, 2022 @12:45PM (#31016920)
It is like any other architectural choice - there are pros and cons both directions. If you have separate db instances, you have to scale up the operations to manage each one - migrations, scripts, etc need to be either run against them all, or you need good tooling in place to automate it. A single instance avoids all that, but is more complex in the actual software and definitely more complex for security. A single DB also would let you share data amongst organizations fairly easily, but whether that is good or bad depends on your product. I've created and run products both ways, and I like separate DBs at small scales, single DBs at medium scale, but separate DBs again at huge scale if you also put management tooling in place.
Re:Inside the longest Atlassian outage by nemothekid on Wednesday April 13, 2022 @12:37PM (#31016805)
I believe you can sign up an account for free or incredibly cheap ($5/user). You would potentially have tens of thousands of databases. Imagine trying to do something like a database migration to add a column. I believe the day to day operations would be a nightmare as no RDBMS has probably had that kind of feature stress tested.
Re:Inside the longest Atlassian outage by some-guy on Wednesday April 13, 2022 @12:39PM (#31016843)
The company I work at (Workday) does this, but it's for business / liability reasons.
Re:Inside the longest Atlassian outage by robertlagrant on Wednesday April 13, 2022 @04:23PM (#31019788)
Bearing in mind the licence fees of Workday, the costs of separate databases pale in comparison!
Re:Inside the longest Atlassian outage by indymike on Wednesday April 13, 2022 @01:08PM (#31017222)
Answer: it depends on the application. For example big social app is not going to provision a new db for every user, or for every customer that runs an ad. Likewise, a lot of enterprise software fits a model where each customer getting it's own db makes sense. So, really, just a design decision.
Re:Inside the longest Atlassian outage by truffdog on Wednesday April 13, 2022 @02:12PM (#31018146)
Separate DB instances doesn't scale as well cost wise, and generally means onboarding takes a few minutes instead of being instant. It is very common though.
Re:Inside the longest Atlassian outage by Spivak on Wednesday April 13, 2022 @02:18PM (#31018236)
The solution that satisfies everyone is having a separate schema per customer and a number of database clusters. Then each customer is assigned to a particular cluster. Always make sure you have excess capacity on your pool of clusters and onboarding is still instant.
Re:Inside the longest Atlassian outage by doliveira on Wednesday April 13, 2022 @01:01PM (#31017136)
By segregating as much as you can. Definitely not by putting everything in a single table. At the very least separate databases/schemas with proper permissions so there's not any chance of data intermiBy segregating as much as you can. Definitely not by putting everything in a single table. At the very least separate databases/schemas with proper permissions so there's no chance of data intermixing.

The best would be multiple separate database instances, which is not even hard to manage specially for qualified engineers like Atlassian surely has plenty of. The problem are business decisions of ignoring the tech debt, usually...

Re:Inside the longest Atlassian outage by akie on Wednesday April 13, 2022 @01:23PM (#31017415)
Now every time you run a database migration, you have to adjust N tables - and in Atlassian's case, N is 200000. Is that better? It depends. There is no "best" way of doing multitenancy.
Re:Inside the longest Atlassian outage by hnlmorg on Wednesday April 13, 2022 @02:50PM (#31018623)
That’s just an automation issue. It’s not like you have to write a bespoke database migration script per DB.
Re:Inside the longest Atlassian outage by robertlagrant on Wednesday April 13, 2022 @04:24PM (#31019796)
The bug we are mitigating was also just an automation issue.
Re:Inside the longest Atlassian outage by hnlmorg on Wednesday April 13, 2022 @04:35PM (#31019898)
It’s also pretty easy to foobar up a single DB instance if you don’t have proper guardrails in place.

Automation wasn’t the issue here. It’s the symptom not the cause.

Re:Inside the longest Atlassian outage by robertlagrant on Wednesday April 13, 2022 @05:23PM (#31020476)
No, the symptom was the loss of customer data.
Re:Inside the longest Atlassian outage by doliveira on Wednesday April 13, 2022 @06:57PM (#31021344)
Way easier, actually.
Re:Inside the longest Atlassian outage by doliveira on Wednesday April 13, 2022 @06:56PM (#31021340)
There is a worst way of doing multitenancy, and that is sharing a single big table.
Re:Inside the longest Atlassian outage by hnlmorg on Wednesday April 13, 2022 @12:56PM (#31017051)
Multiple schemas? You don't need every tenant in the same schema. However I'm not a DBA by trade so there might be some issue with doing this at scale that I'm unaware of.
Re:Inside the longest Atlassian outage by msh on Wednesday April 13, 2022 @12:48PM (#31016970)
At minimum separate tables for each tenant.
Re:Inside the longest Atlassian outage by Spivak on Wednesday April 13, 2022 @02:20PM (#31018259)
At that point you might as well just do separate schemas, it's actually less headache.
Re:Inside the longest Atlassian outage by mdoms on Wednesday April 13, 2022 @02:22PM (#31018280)
They don't, you're responding to speculation which is just outright wrong. Jira and Confluence is single tenanted databases, unless something fundamental has changed at Atlassian in the past 4 years.

Source: worked at Atlassian, on Jira, 4 years ago.

Re:Inside the longest Atlassian outage by robertlagrant on Wednesday April 13, 2022 @04:25PM (#31019804)
Then Atlassian's description of why the restore took so long makes no sense to me.
Re:Inside the longest Atlassian outage by ksala_ on Wednesday April 13, 2022 @01:18PM (#31017344)
Personally, given the multi-day outage, I think I would just restore everything to a separate system, and then only point the affected customers to this new system. Take the hit of having two fully separated system initially, and work on reconciling them after without having to worry about the on-going outage.

I wonder if they're not doing this due to some tech limitations, to avoid taking the financial cost of running two systems, or to avoid having to reconcile the systems.

Re:Inside the longest Atlassian outage by mandevil on Wednesday April 13, 2022 @04:39PM (#31019953)
At a big multi-tenancy company I used to work at, the problem would have been the accessory machines: we had something like 15-20 different machines around the main DB and API machines, running cron jobs, terminating SSL connections, load balancing, sending alerts to us and customer emails out, etc. And while the backing up and failing over on DB and API machines was a well documented, thoroughly tested process... the other machines were all custom jobs that were very poorly documented, with who knows what scripts running on them, that might or might not be important. Trying to replicate all of that during an emergency would have been a challenge.

For just this sort of problem, we actually had three DB servers running all the time: active, passive, and hour behind with the ability to break hour behind's copying of the write-ahead log of active as the DBA's secret weapon for just this problem. If all customers had accidentally lost an hours worth of data it would have been embarrassing, but much less than completely shutting out hundreds of paying customers for two weeks, I think?

Re:Inside the longest Atlassian outage by bigtones on Wednesday April 13, 2022 @03:13PM (#31018925)
That's a really good idea.
Re:Inside the longest Atlassian outage by omoikane on Wednesday April 13, 2022 @12:20PM (#31016561)
Not being able to selectively restore data for a subset of users might also indicate that users are not fully isolated from each other, which is worrying for technical and nontechnical reasons.
Re:Inside the longest Atlassian outage by indymike on Wednesday April 13, 2022 @01:12PM (#31017263)
There is nothing non-technical that matters. If we start acting like it does, we incredibly poor decisions that in fact have nothing to do with physical reality, and quickly arrive at unworkable technology.
Re:Inside the longest Atlassian outage by omoikane on Wednesday April 13, 2022 @01:30PM (#31017514)
Non-technical reasons include "legal" and "compliance", which often matters a fair bit. I am not disagreeing that non-technical requirements occasionally lead to poor decisions, for some value of poor.
Re:Inside the longest Atlassian outage by indymike on Wednesday April 13, 2022 @05:01PM (#31020214)
I live is a state that once tried to legislate that pi = 3.15. The results were tragic, and the attempt to legislate a ratio was a failure, much like systems created by regulation and laws often are. Math is much less forgiving than legal prose. Making database decisions based on criteria that don't make any engineering sense one way or the other is not far off from legislating the value of PI.
Re:Inside the longest Atlassian outage by underdeserver on Wednesday April 13, 2022 @02:10PM (#31018115)
> Simple concepts aren't that simple at their scale

It's true that nothing is simple at scale, but it's important to note that simple concepts are the only concepts that work at scale.

Re:Inside the longest Atlassian outage by spaetzleesser on Wednesday April 13, 2022 @12:32PM (#31016745)
“horrendous monolithic architecture “

I don’t really understand what this has to do with “monolithic” or not.

Atlassian’s software is probably very complex and convoluted but from my experience it’s almost impossible to keep a clean architecture in a software system that has grown over many years and is used and customized by many customers so you have to avoid breaking backwards compatibility.

Re:Inside the longest Atlassian outage by more_corn on Wednesday April 13, 2022 @02:13PM (#31018160)
Yeah, I’m thinking the exact same thing.

Perhaps they don’t have the right people on hand to do hard things like this.

They also apparently lack an incident response plan since a critical component of that is coms to affected customers.

They also lack good practices around preventing human error. It should not have even been possible to make the initial mistake. It certainly should have involved multiple steps of “are you sure” and potentially even review.

Sounds like an operations shit show. Glad it’s not my circus.

Re:Inside the longest Atlassian outage by robertlagrant on Wednesday April 13, 2022 @04:26PM (#31019819)
They have great practices; they even published them. They just didn't follow them here.
Re:Inside the longest Atlassian outage by JoBrad on Wednesday April 13, 2022 @12:17PM (#31016521)
It sounds like that’s what they are doing, but it’s manual.
Re:Inside the longest Atlassian outage by qiskit on Wednesday April 13, 2022 @01:01PM (#31017133)
> However, if they [restore backups], while the impacted ~400 companies would get back all their data, everyone else would lose all data committed since that point

How would they lose committed data? Even after restoring the backups can't they run the logs so that everyone is caught up?

Re:Inside the longest Atlassian outage by mh- on Wednesday April 13, 2022 @02:59PM (#31018748)
(There's a tacit assumption here that the data across tenants is commingled in tables, and that's being disputed elsewhere in the thread, but playing along..)

You wouldn't be able to do that without forcing downtime for all customers, for the duration it takes to restore the snapshot and then replay the logs. Not to mention the risks of the process failing somehow

You could narrow the window to just the "replay" portion, if you were able to stand up an extra database/infra, to switch over to when it was ready. But at some point you'd probably still have to go read only to checkpoint the logs and begin the replay.

It's of course possible to do something more complicated here and stream the changes then eventually enact a failover, but this would all be too complex and error prone to introduce in their current crisis mode. It's something I'd suggest considering when architecting their DR/BCP, but it's too late for that kind of elegance (and complexity) now.

Re:Inside the longest Atlassian outage by drjasonharrison on Wednesday April 13, 2022 @02:51PM (#31018634)
Are you assuming that they record the events in a way that can be played back?
Re:Inside the longest Atlassian outage by outworlder on Wednesday April 13, 2022 @01:51PM (#31017835)
> OK, so you restore backups to a separate system, and selectively copy the stomped accounts data back to production

This seems to be exactly what they are doing, as described in the article. They don't have automated tools to do this.

Re:Inside the longest Atlassian outage by tus666 on Wednesday April 13, 2022 @04:10PM (#31019655)
> OK, so you restore backups to a separate system, and selectively copy the stomped accounts data back to production

You don't think that's exactly what they are doing?