Ask HN: What is the best enterprise software you use every day?

197 points by bonfire ↗ HN
A few days ago there was a discussion about worst enterprise software. What is the BEST one?

417 comments

[ 2.6 ms ] story [ 287 ms ] thread
For me, I have to say it, it's MS Outlook. I do e-mail all day every day and I use VBA macros and all sorts of shortcuts to make it very useful. Love it.
My outlook often freezes on me
Check if you have any plugins installed on Outlook and disable them.

Freezes and crashes are often caused by bad plugins setup by your company.

That is the first time I hear someone praise Outlook. For an application that gets billions in billing, there are no valid excuses for it to be the same thing as it was 15 years ago.
I think there's a solid argument that getting billions in billing while being stagnant is self evidently a valid excuse to be stagnant.
> I think there's a solid argument that getting billions in billing while being stagnant is self evidently a valid excuse to be stagnant.

yes.

I don't know if it counts as enterprise software but I use Jetbrains' products everyday. Goland, IntelliJ and PyCharm are great tools.
Why use 3 different ones when IntelliJ can do all of the features of the listed editors? PyCharm is IntelliJ locked with Python plugin, etc.
I've heard that before but I'm skeptic about if it's exactly the same.
It's the same thing if you pay for IntelliJ Pro, then the IDE supports every language and every plugin.

Otherwise the free edition has a number of missing things and it's blocking the installation of plugins that could somewhat compensate.

Does it support .NET? I thought I needed Rider for that.
The only one that is different is Rider, since it has much deeper C# integration (might be others such as DataGrip, but never used it). PyCharm and GoLand are just plugins (same as WebStorm, PhpStorm, etc)
GoLand seems to be lighter than IntelliJ though. I'll try using the plugins to see if the experience is different. Maybe I'm paying too much for the whole suite.
I believe CLion is also different than just IntelliJ + Plugin. At least I've not been able to find a C plugin that mimics it.
technically resharper is way diferent as well but whether you'd call it a ide is "questionable"
Rider runs ReSharper underneath
datagrip is very different from the integrated database/SQL editor included with most jetbrains IDEs. it has more features and is a real pleasure to use. using datagrip is like using a dedicated mp3 player to play your mp3 collection while using pycharm, webstorm, etc., is like using your phone to play your mp3 music collection.

so happy to see jetbrains receive some love here.

My understanding is that intellij is the main IDE and other ones are “crippled” versions of a Intellij. In other words, jetbrains really only builds one IDE, but disabled parts of it to create the “sub” IDEs.
There are slight differences, I believe. IntelliJ is also a little more cumbersome, since you have to map the modules to specific languages. I do mostly just use IntelliJ with plugins these days though.

I always feel a bit silly, because I pay for their "all products" pack, but only really use IntelliJ, because I bought it before realizing the plugins really were 99% the same as the specialized IDEs in most cases (CLion isn't, I think). At this point it's cheaper to just pay the ongoing renewal fee, I think.

The only reason I keep paying for the “All Products” pack is because I like to use CLion for Rust and come light C and C++ work. Goland is also different enough to justify paying for at least CLion and Goland, but at that point, the “All Products” pack still makes sense.
Yeah, I use CLion as well for C work. Good to know it's useful for Rust as well, I hope to take that dive at some point. I feel slightly better about my purchase now, thanks!
Rust support is the same in intellij and clion, except clion has the debugger which intellij does not have
Personally I like having separate installations for each language-specific IntelliJ flavor just to reduce confusion when toggling between different windows. The slight GUI differences also help to "code-switch" (in the linguistic and literal senses).
I love using Tableau. It has completely changed the way I analyze data -- things that would have taken me a minute or two in Excel takes literally seconds in Tableau.
What's Tableau's special secret to handling data? Is it doing table indexing, summary, and array manipulation in a smarter way compared to dumb Excel?
It’s honestly just speed. Want to sum this, broken out by that, filtering out this other thing? Oh want to make it an area chart instead of a bar chart? Add a color code? These things are just super fast and easy to do
Datadog - the amount of observability we have in our infrastructure is insane.

I can find out what’s wrong within a few seconds.

+1 on datadog.

It's crazy how easy it was to setup and cover all our infra (AWS, ELB, postgresql, cassandra, kafka, haproxy, nginx, etc...). The tool paid for itself with the infra optimizations we could find in the first month of usage.

It makes me sad when I'm forced to work with graphite/prometheus/grafana in my newer company. These can't gather half the metrics and their charting capabilities are so bad in comparison.

Can you expand? As someone who maintains a large-ish prometheus/grafana installation on prems I don't know what we're missing! We have a couple of custom metrics that we developed in prometheus and the OSS plugins/dashboards look great.
From my perspective at a smaller startup (so YMMV) after switching to Datadog; the first thing I noticed was how _fast_ Datadog was. The queries and graphing capabilities were also really powerful. Or maybe I just didn't know how to use the old tools, but regardless it was super easy to pick up and do things I struggled with in Prometheus/Grafana.

It was also mind-blowing how things were integrated. For example. See a slow request? Click into the APM trace. Notice a service on that trace being slow? Click onto it, see what host it was running on. From there, another button pulls up all the Docker containers running on the host in that point in time. The CPU usage is visualized - and, aha! We forgot to set a CPU limit on one of those other jobs.

Debugging issues like that would've been nearly impossible otherwise, and we had more than a few cases of that.

Yeah that kind of integration seems neat. We use ELK + Prometheus and it does require having Kibana + prometheus open OR building a dashboard in grafana pulling from both sources.

As far as speed, I haven't had the issue with prometheus. We use recorded rules for things that benefit from being pre-computed.

I imagine the UX to be quite different by using a product.

Datadog has incredible integration with clouds (AWS and other), databases (postgresql, mysql, cassandra) and middleware (haproxy, kafka). It can capture all the metrics from all these out of the box with minimal effort, whereas you have to crawl hundreds of broken plugins for prometheus to get one third of that.

If you're using clouds (AWS/Azure/Google). Datadog can capture all the AWS metadata automatically and merge with existing metrics, so you use instance tags and such for searching and filtering. It can also capture AWS metrics like ELB and S3 usage which are hard to get otherwise.

So you simply get all the metrics you need and get them easily (I appreciate that people who haven't worked with these probably can't fathom what they are missing out). There are defaults charts/dashboards that are quite good and available out of the box, whereas grafana is empty out of the box and you're once again forced to crawl for dashboard plugins.

Last but not least. The capabilities to search and visualize in datadog are incredible. To draw any metrics and combination of metrics in different ways and analyze usage. Prometheus can't chart shit. Grafana has limited charting and you're forced to create a dashboard to make one chart, which can't be done because don't have admin permissions.

By the way prometheus doesn't scale. It can reach 1000 or 2000 hosts top and that's the end of it. I've operated it at the limit, some operations get really slow and we had to cut down on tags and some metrics to avoid crashing.

> Datadog has incredible integration with clouds (AWS and other), databases (postgresql, mysql, cassandra) and middleware (haproxy, kafka). It can capture all the metrics from all these out of the box with minimal effort, whereas you have to crawl hundreds of broken plugins for prometheus to get one third of that.

Interesting, I haven't had this experience. I monitor the DBs and middleware you mention and the OSS plugins + OSS grafana boards worked quite out of the box. For what is worth we have around ~20 different technologies for DB and middleware.

We aren't using cloud since we have our own datacenters so there could be a big difference in usage.

As far as prometheus doesn't scale I don't know I agree. We have more than 5k hosts currently on it and is working fine. We do use some strategies like recorded queries and federation which are well documented.

The question would be which plugins exactly? because there are tons of plugins spread over GitHub, more or less working, and they're constantly shifting. I've had maybe 15 integrations working perfectly on datadog in 2 weeks of work. The same on prometheus/grafana could have taken 6 months easily (with few exporters to write from scratch).

The cloud does make a difference. Just seeing the daily S3 usage per bucket was life changing. Immediately found that backups were not expiring after a while as they should, costing more and more money. ^^

Do you know how many metrics you are ingesting in prometheus? storage size? and how many tags per host? We were reaching 1 TB of memory usage (mmap) on our server with 1500 hosts. Prometheus was literally grinding to a halt or crashing, was forced to cut down some metrics and stick to the absolute minimum tags.

Try prometheus_tsdb_head_series and prometheus_tsdb_storage_blocks_bytes or du command on the directory.

Interesting, I have a very small team that maintains a lot of infrastructure including Prometheus. Setting up the monitoring for 5 datacenters, thousands of hosts and hundreds of services was maybe a ~2 weeks effort. We then organically add and remove things but it is maybe a ~4h/week effort.

It give us a lot of value. We were using other solutions before (sensu/nagios) and it is night and day.

All the plugins that we use are listed in the official Prometheus website: https://prometheus.io/docs/instrumenting/exporters/ we haven't looked outside this page.

--

The cloud does make a difference. Just seeing the daily S3 usage per bucket was life changing. Immediately found that backups were not expiring after a while as they should, costing more and more money. ^^

Yeah this kind of visibility is really lacking on-prems. Storage is something that is hard, at scale, to see what is using what.

--

Do you know how many metrics you are ingesting in prometheus? storage size? and how many tags per host? We were reaching 1 TB of memory usage (mmap) on our server with 1500 hosts. Prometheus was literally grinding to a halt or crashing, was forced to cut down some metrics and stick to the absolute minimum tags.

We have around 500 GB of disk dedicated to prometheus server datacenter with a retention policy of 1 month. The VMs have around 16 GB of RAM.

I would say 95% of the hosts only have node exporter. Then 5% of the hosts will have redis/elasticsearch/postgres/mysql/etc exporters.

Also probably around 5% of the hosts have some sort of custom metrics. We have been leveraging the file exporter for writing custom service metrics.

Custom service metrics goes through a merge request process where we see the best way to structure them to avoid big cardinality. We also use recorded rules to pre-compute things that would be expensive to query (think CPU usage across a datacenter)

1 TB of RAM usage sounds insane. It looks like we can horizontally scale the prometheus servers and use some documented features for that.

For our use case it has been a very smooth ride so far!

You're lucky to have a team. I was doing that with another person in our spare time and got 0 hour/week to spend. I only give ourselves a couple weeks to setup new software and tune everything perfectly then it has to be done for good. Will check maybe once a quarter for capacity adjustment or software upgrade. (I also supervise a logging system ingesting 1 TB/day with no supervision).

I should probably say that my experience with datadog goes back as far as 5 years ago. Already had monitoring working perfectly back then, when prometheus didn't exist let alone the exporter plugins! So prometheus is really late and sub par to me. ^^

Looks like we got a similar amount of data in prometheus as you (1TB for 60 days) but with 40% of the hosts. Maybe you have many small VM? Got physical hosts with quad CPU (per CPU metrics) and network interfaces and stuff (couldn't tune the node exporter to ignore disabled interfaces and some useless devices). Check how many distinct timeseries you have, prometheus_tsdb_head_series.

Datadog had amazing support for custom metrics (but watch out for extra billing and cardinality!). Applications can just send metrics to localhost:1234 where the agent is listening, and they're enriched automatically with host information and environment. Magic.

This reminds me, prometheus is broken with its idea of pulling metrics, when metrics should be pushed instead. Applications and hosts have to push metrics when they come online, it's not the responsibility of the metrics storage to know about every goddamn thing running in the company and try to talk to them (can't cross firewall anyway). Prometheus worked okay enough for the last company that was on premise with fixed hosts (weeks or months to move anything physical), but it's de facto broken for the previous company that was on AWS with instances created intraday.

Number of series: 158990 is displayed in the web UI.

We disabled a lot of useless metrics in the node exporter. I think pulling works OK if you have a service discovery mechanism. We hook Prometheus to Consul.

We have a mix of very small VMs and very beefy bare metal.

Oh right that's not much, only 3000 metrics per host. I guess we see more scaling problems because we have more metrics and tags (physical hosts with 128 CPU, imagine the per CPU metrics just to begin with). I spent days as well testing all the collectors and tuning things carefully.

That's all very interesting.

Sorry I just picked one datacenter, so, 1/5h of the hosts or 15k metrics per host with some rudimentary math!

Our data lives on each datacenter only and then we query cross datacenter via grafana when we need.

Alright. More data in total but less per server because it's distributed.

We run a pair of servers both storing everything. It's the least that can be done to have any resiliency.

I would love to distribute the data, preferably per continent, but prometheus didn't have a good story on sharding. Running independent dataset is worthless in practice without the ability to aggregate. Also, the more servers the more expensive (and they're not easy to procure). Running 6 prometheus servers is in the same ballpark as paying for datadog, so might as well just pay for it.

We don't care so much about resiliency, we do backup the prometheus folder using the snapshot api.

There are a couple of articles about sharding and federation with prometheus, dunno if they existed when you tried it.

For us our problems are usually local to a datacenter. Having a dropdown where you can pick the datacenter has proven good enough. It is unlikely that we have a global issue in a service.

Sorry if unclear but we have our own datacenters, our prometheus VMs are essentially free in the grand scheme of things considering the number of compute we have.

+1 for Datadog. I can't comprehend how they scale to accommodate the data we send them, let alone everyone else. Literally tens of thousands of data points per second, around the clock, for years. Thousands and thousands of unique keys. And it's all queryable instantaneously. All for about 1/4 of a developer's salary.
It seems like they have some best in class engineers. Kudos to them.
The tool indeed does a very good job from developer's point of view but when we see the end to end aspects of Datadog then the feeling changes. Previously when I was working as a DevOps Engineer, I remember how much our Head of Infrastructure was pissed with the shady licensing and pricing model of Datadog. Missing of detailed itemized billing, lack of proper access control (allowing who team can use which feature, can publish what metrics, etc.) makes the tool a pain in the long run. We even started to look for affordable alternatives to it.
Yeah, amazing, incredible tool but the billing is obfuscated to the point you almost wonder if they're intentionally trying to make it impossible to understand. Though once you realize there are a tons of hacks to abuse their billing methods and pay much less, it becomes apparent that it's just a case of Hanlon's razor.
Yep, the access controls are limited. Can't finely controls who can raise alerts to where for example, so it's not "enterprise" in a sense because enterprise is all about tightly controlling what the peons can view and do.

In my experience alerting often came down to some departments trying to push some shit to some other departments. I personally avoid working in monitoring/alerting for that reason, it's just human problems and dysfunctional organizations, nothing any tool can help with.

Datadog is nice as a user. It's pretty terrible as a person who cares about the budget.

Their pricing is pretty ridiculous at times and their sales people are often way over aggressive. You have to pay extra for containers on a host. They also make it impossible to keep users from consuming additional paid features.

I like having Datadog when I need to debug, but I'm pretty sick of the dark patterns and surprise bills. I'll probably go with Prometheus in my next greenfield.

Try Instana, doesn’t have that insane pricing model. It is also more useful, in that it doesn’t focus on „graph porn“ but instead genuinely useful insights like automated alerts and root cause analysis.

Disclaimer: I used to work there.

Agreed that the downside is billing and their sales are asshole. I learned to be insensitive to pushy sales when negotiating for software, it's the same shit with half the suppliers. The tool is really great though and worth paying for.

I dread having to go back to Prometheus because the company is too cheap to pay for proper tooling (datadog) and developers would rather write their own time series database for their resume.

-1 datadog. Unless you have an SRE on payroll, it's obtuse, expensive as hell and you can never tell what exactly you're paying for. I don't like it much. It took a LOT of man hours to set up.
Get on the phone with them. I setup regular calls and had them explain each and every charge and where it came from. They would even waive billing on a feature i wanted to try out so i could determine baseline cost. I 100% agree the pricing is impossible to understand but they will work with you to find what works from both an ops and budget.
I have to object on the lot of man hours. This was by far the easier thing to setup compared to all the competitors and the open source solution we have. Maybe a week or two to setup everything on all our hosts and capture all the metrics for systems and AWS and databases and custom metrics.
How does it compare to Honeycomb?
Honeycomb has one trick that it does very well, the high dimensionality analysis. Other than that Honeycomb doesn't do a lot, their alerting is basic, their dashboards are basic, etc.

Datadog doesn't do that specific feature as well (it has alternatives), but it also has so many other features that all tie together very nicely: metrics, logging, events, very good dashboards, analysis notebooks, alerting, SLOs, performance monitoring, trace analysis, security monitoring. It's a really extensive product.

When it comes to general observability, I'm a strong believer that you need a wide range of different views – just logs aren't enough, just metrics aren't enough, etc. I've worked in a team trying to use Prometheus for everything and there was so much friction, whereas with Datadog there has always been a way to achieve something.

I think Honeycomb is a good feature that should be bought by a company like Datadog and integrated into a wider more mature feature set.

Can you help me out and define what dimensionaltity means for data? And what high dimensionaltity is?

I’m somewhat familiar with monitoring/telemetry but haven’t heard that term before.

Sorry for the late reply. Dimensionality is just the number of dimensions a given record has.

For example, if you have a log line to represent an HTTP request completing it might have a server hostname that processed it, a path, and a request duration – 3 dimensions. High dimensionality is just having lots of dimensions.

Most monitoring systems aren't great at correlating between lots of dimensions, or cost a lot if you want to high cardinality, which high dimensionality contributes to. The cardinality is how many possible options there are for all of the dimensions together (so if you have 3 paths and 2 servers, those two fields have a cardinality of 6, or 6 different places you need to store your request duration for).

When you start getting lots of dimensions and lots of values for each dimension, things start getting expensive and you have to be quite restrained about what you choose to monitor. Maybe you decide not to track duration per server because you hope your servers are roughly the same, whereas you know that URL paths perform differently much of the time.

Honeycomb's great advantage is that they support this high dimensionality/cardinality really well. Not only do they not cost a lot to do it, but they also have a really nice UI for exploring this data and how different bits correlate together, without you having to know up-front what you want to look for. Honeycomb is expensive, but not prohibitively so for some engineering teams.

I'd still recommend Datadog _first_ because it does a lot more for a little less money, but if you're pushing the boundaries of what Datadog is capable of with tracing through distributed systems then Honeycomb enables the next step.

Excel, Box, and Zoom. Would vote for Cloudability as well, but that's not something that I use anywhere near every day.
Excel is a pain. It's annoying to open - if I already have Excel open and try open another Excel document I often have to click into a cell in the currently opened Excel document for the new document to open.

It's also a pain closing as it prompts do I want to save. Saving as a CSV is a pain, it takes two prompts to save as a CSV.

File recovery is also a pain.

Excel is great as long as you stick to the basic use cases. Start going nuts and it gets really slow. I think Apple got it right when they made their spreadsheet app have a much smaller table so people don’t try to use it for massive things
Also you can't open two Excel files with the same name.
(comment deleted)
I converted to Apple Numbers about a year after it came out, and both Excel and Google Sheets seem completely archaic to me now. I've sent PDFs of my Numbers docs to people and they are blown away. Now that I can share Numbers through iCloud to both Mac and Windows users, I've got some people fully converted over.
Agreed. I have a massive financial projection that I built in Numbers over the last ten years or so. Performance was an issue with early versions, but the UI! So good.

I still use Excel to interop with others and every time I do I find myself tearing my hair out at how painful it is to use.

Multiple tables on one sheet that can be resized is a killer feature. It's just so easy to make nice looking data and output on one screen compared to Excel.
I love Box. It's probably one of the nicest cloud services I've used.
Phabricator
Enterprise indeed, I had to use it when working with a client, it’s was ... different.

No intergration with something like Jira, no support for pull-requests/merge-request, navigation is pretty terrible.

What? Tasks (unit of work) and Diffs (unit of code review) are its two central entities. Which parts of it were you using, if not those?
Sounds like that may not be Phabricators fault in that case. I was under the impression that you'd need Arcanist if you wanted to do reviews of diffs.

The problem may have been that we where only allowed to use the Git part.

Ah. Arc is just a script for submitting the patch from your working copy to Diffusion (like emailing to LKML). Technically you could paste “git diff” into the web UI.
I'm not sure it counts as enterprise software, but Fiberstore is one of the best websites I've ever interacted with. It's clearly laid out, gives recommendations, and is quick and simple. I make weekly purchases and it's always easy.
Two:

- UltraEdit. What Photoshop is to images, UltraEdit is to text. The weird thing is, it’s not a super flashy or even immediately intuitive tool. But once you get the hang of it, it never fails to deliver.

- Excel. It’s insane the breadth of stuff you can do with it. And as a tool, it’s equally handy and “oh my God this will save me so much work” for a school teacher as it is for a data analyst and stock broker. It sort of scales infinitely, there is always one more level of complexity/usefulness to unlock.

Can you give an example of why UltraEdit is better than emacs? Thanks!
(comment deleted)
I assume Emacs can be made to do anything under the sun, but UltraEdit comes out of the box with a friendly GUI that exposes some fairly complicated text manipulation tools. On some level it's just personal preference and familiarity.
I have very mixed feelings about Excel, having been using it intensively over the last year where I never did before. It has a large number of components with overlapping functionality, apparently designed by separate teams at different times, all missing crucial functionality when I want to make some sort of BI type of solution. You have DAX, you have VBA, you have Power Query, you have the Data Model. And every new area I delve into, after I use it for a few hours, starts giving me weird errors and possibly corrupting my file. The latest is a dialog with a button that says "Send a Frown".

Quote from someone that is not me and not my particular issue, but that expresses the sort of problems endemic to Excel and MS software in general:

"When data is refreshed, I get a message box "Send a Frown" at unpredictable, inconsistent intervals. For example, it will work seamlessly for five or six times then suddenly it will fail, and give this "Send a frown" message.

A normal VBA error handler does not deal with this "Send a frown" message. Not even an "On Error Resume next" deals with it. I can thus not capture or step-over the error (err) and deal with it in my code. When the "Send a frown" message appears, the entire process is on hold until I (the human) clicks on "Send a frown" or "Cancel". This is problematic since this process runs 3am in the morning on our servers for about 200 connection refreshes."

Excel: Is this a date?
Are you scripting Excel to run at 3am?
Me? No. I pity the person who was trying though.
I got a personal license for UltraEdit years ago too after using it at work (these fancy Electron editors didn't exist back then).

It definitely isn't fancy but it works well for larger files and things like column mode and perl regex searches are just so nice in certain cases. I'm finding it hard to put down especially since I do a lot of Perl and I haven't found a big benefit for an IDE there.

+1 UltraEdit

I've kept UltraEdit around for more than 20 years now. Column editing, especially back when it was introduced, saved my bacon more than a few times.

That’s what I love about it too.

Open a 200mb horribly formatted text file. Apply some regex find-replace to remove some cruft. Let UE format it into nice columns. All seamlessly, also for huge files.

PagerDuty is generally pretty good, but I haven't used VictorOps or OpsGenie so I can't compare.
In my experience, OpsGenie is a huge improvement over PagerDuty.

I’ve helped manage both PagerDuty and OpsGenie at a certain employer, and while PagerDuty seemed to mostly kinda semi sorta work, there was a lot of klunky aspects to the system. When we switched to OpsGenie, it was like all the things we liked about PagerDuty were still present, but we didn’t have any of the pain points. Moreover, there were additional features that made it even nicer.

Imagine how good it feels when you stop banging your head against the wall, and then realize you’ve been banging your head against a wall for the past few years.

Don’t get me wrong, I love the PagerDuty guys and everything they’ve done as pioneers in this field, but I much prefer OpsGenie.

In fact, OpsGenie is such low-touch that we now have many fewer people who are involved in the day to day management of it, each team can manage the things they really care about, and the rest of us can just get on with our other work.

What sort of thing made you run into trouble with PagerDuty? I've only used it in smaller teams and we've basically not touched it after setting it up, save for editing rotations.

Importantly, PagerDuty has (as far as I know) a well deserved reputation for reliability, which is critical in that space. How is the reliability of these other providers? How have you measured it?

gitlab, metabase, graylog, TICK (telegraf, influxdb, chronograf, kapacitor)
Matlab: Great for prototyping and tinkering.
That’s a pretty hot take
There's a reason Matlab is still around and doing well. It's so much faster to prototype things in, and systems engineers all know it well. Yes, python can do most of the same things, but it's nowhere near as easy and integrated.
I thought it was only because it had gotten into universities curriculums.

Mostly joking. I agree that Matlab is quite good to quickly setting up certain things and can even be quite elegant when used by someone who knows it.

I do however feel like it should not get as central of a place in education as it got at my university. I would prefer more open alternatives to be used to maybe inspire more simpler exploration by the students.

Not Jira. Hahahahaha.
Is anyone just using Git{Hub,Lab,Tea} issues and being fine with it?

Is the absence of a Kanban board a deal breaker? Perhaps for management.

Github has Projects, which IMO does a pretty decent job.
GitLab includes kanban boards, actually.
Git-adjacent issue trackers are communication tools for developers. JIRA is a surveillance and control mechanism for senior executives. It just depends on the size of your company.
> Git-adjacent issue trackers are communication tools for developers.

So is JIRA.

> JIRA is a surveillance and control mechanism for senior executives.

Never saw it being used like that, though I see how it could be abused.

> It just depends on the size of your company.

The culture probably more than the size.

We were fine with just using Github Issues... until we weren't. At a certain scale, it's too hard to sort and filter issues and since you can't add fields it was hard to capture all the issue metadata we wanted.
Lab enterprise, yeah. They are utterly useful in our case since we are working on a branch per issue model, which makes it extremely easy for tracking and code reviews.
How do you deal with projects that have multiple Git repositories associated with them, but need to have their issues tracked in a single place?
you can define github projects that source and display issues from github issue trackers across multiple github repos. this is certainly a feature of on-site deployments of github enterprise. i am not sure if it is offered as part of github.com's enterprise offering or to non enterprise users. but hey, this is the enterprise software thread.
I think Jira is among the better in the enterprise software class. Compared with ServiceNow (different use case but also enterprice-y) I much much prefer Jira. For example, the URL structure is sane.
Wait, service now is 3rd party software? It's so bad I assumed it was internal, by a team of 2-3 utterly incompetent web developers. This is paid for? Oh my god...
I had this exact same feeling.
No, it’s a huge monster enterprise monolith.

And we all get crushed under that weight.

I so much prefer Jira.

Honestly i'm just amazed. It's just so, so poor.

Who works on this software? Who wants to go to an interview with "workflow and usability lead on service now, 5 years" on their CV!

I feel like sn's biggest issue/strength is the length it lets you customize things.

Sure, it can suck so incredibly bad. But it can be really good too, depending on who built it up.

But I agree that the URLs are terrible, it's slow, and it's too easy to lose things along the way. Especially custom things

I say this as someone whose job is to help manage my company's sn instance and clean up the utter shite left behind by our predecessors

Servicenow is the SAP of I dunno maybe just an even shittier version of SAP.
It is an improvement over Remedy or the other nightmare 1999 systems! :)
assembla is full of endlessly frustrating bugs
or Confluence, for that matter. Seriously, how can the search be as bad as it is?
In many cases you get the feeling that search might as well not be a feature. You can’t depend on it for location things. It does PDFs sort of okay for some reason.
The hack we've found is to load each page with keywords. Just shove the string "quux quux quux quux" at the bottom of the page about Quux, for example.
I actually like JIRA, never understood the widespread hate for it.
If you control your own Jira instance it’s ok.
Shameless plug. But if you don't like Jira, try Kanception.io it is an opinionated, nested kanban board built on a tree data structure.
IntelliJ, PyCharm, and the git to docker deployment service that I built myself for my companies.
Does VSCode count? That's the first IDE to make me switch from Vim. I was reluctant at first, but now I feel lost without it.

For saas, probably Workday. I really enjoy it compared to what we had used prior.

Do you use the Neo Vim extension, it uses real neovim? Not to be confused with VSCodeVim.
I actually don't user either. I don't much see the point of Vim weaseled into another environment, but I'm happy to listen and be convinced otherwise.
It really is nice, I use the Neo Vim extension and it's night and day.

Check out Onivim 2 as well for a VSCode like editor that natively uses Vim, but can use VSCode plugins and is generally easier to use than Vim. It also isn't built on Electron so it's super fast and lightweight. Currently it's in beta I think.

I guess I'm the opposite, probably because I've learned to use Vim not as a standalone editor / IDE, but as a preferred set of keybindings and editing within other environments. I hear a similar argument to yours all the time - specifically that Vim as a plugin is not quite enough - but don't fully understand it.

Essentially, to me it's all about ergonomics of editing. Hands straight on the "home row" of the keyboard, and with modal editing, almost everything is a single keypress away. To me, this feels a lot faster and easier than reaching for the mouse (or arrow keys) every five seconds, and I get the additional benefit that my core editing commands stay consistent across different environments (where I have a Vim plugin, that is). I leave all the fancier, IDE-specific stuff (e.g. refactoring, etc) on their default IDE bindings, and learn them. It's a good compromise, I'm not sure why people don't like it.

I'm the same way - I hardly ever use actual vim anymore! But I use the keybindings everywhere: web browsing with vimium, org-mode in spacemacs/evil, intellij vim plugin, etc.

Your experience mirrors mine in that most of the benefit of vim is in the basic motions and modal way of editing, which most of the plugins provide in a decent enough way for me.

Does a free open source code editor count as enterprise software?

...no

Just because Microsoft wrote it doesn't make it enterprise

If it's used across the enterprise, it's arguably enterprise.
Outlook? I'd say Excel but these days I don't use it every day.
I've been enamored by Pipedream (https://pipedream.com) because as a Product Manager with engineering background, I can quickly hack together prototypes and get good feedback from customers :) . Pretty sure there are other nocode software but this is great for me.
Thanks I just discovered pipedream and I find it very cool !

Could you please share some example usecases you implemented ?

What kind of stuff do you use it for? I watched the intro video and I get it would be useful for "monitoring" Twitter and stuff like that, but are there more practical day-to-day uses for it?
My team’s bread and butter is integrations between enterprise systems. So I can quickly make prototypes of system A and our own software working when a webhook is triggered on A. Quick feedback plus tweaks before we do formal dev keeps us from having nasty surprises at the end of integration
Cisco's Duo Security MFA product.

It Just Works™. Which you'd just take for granted with something as simple as MFA, but we had two previous enterprise products that were garbage. Duo just does its thing, gets out of the way, and I can keep working.

It is one of those things you appreciate because you never think about it.

Windows MFA requires an internet connection which is a bit of a problem. Makes it either trivial to bypass or impossible to log in without an internet connection.
Since the web interface now supports U2F and Touch ID, I agree. But on the command-line I'm still stuck with Duo Push, which feels clunky by comparison.
1Password with Duo Security is insanely great.
Huh I have used Duo for years and had no idea they were owned by Cisco. Agree with you though - I don't spend more than a few seconds a day interacting with it, but it gets the job done painlessly.
Acquired by Cisco
Autodesk Revit 2020. Although it does have it's quirks, it is a very powerful modeling program.
Jetbrains IntelliJ. I use it for html, JS, CSS, Vue, node.js, Python, Java, SQL, etc. I’ve tried visual studio and some other IDEs, but find intellij to be superior in every way.
Although I have the hots for intellij IDEA too, does it count as enterprise?
Good question. I reckon the answer is mixed: some customers are individuals -- where the person who decides to make the purchase is the end user -- some customers are small businesses, while some customers are enterprises. It does appear to have some business & enterprise functionality - at least around how license management works (having some people with permission to manage a pool of licenses for the software that can be granted or withdrawn to individual users in an org). I wonder what fraction of intellij's customers are individuals, small businesses, vs enterprises. My hypothesis is that software that is sold to individuals, where the purchaser is the same as the end user, has more evolutionary pressure not to be awful.

It'd be interesting to ask "what is the best enterprise software you use that is ONLY sold to enterprise customers and never to individuals" as there's more pressure on such software not to be usable.

Well, I'm cheap. I wouldn't use it if my enterprise company didn't pay for it. If I had to pay for it, I'd find something free.
Wow.. I hate it... the quality of IntelliJ has really fallen. I've been using it for like 5 years now and I'm constantly fighting it

There are literally 20-40 serious bugs that impact me daily.

Do you have some examples? I've used IntelliJ or variants of it (Clion primarily in more recent years) since ~2004 and rarely had any issues, but it's possible I'm missing some obvious things here.
macos + 4k display [0] = enormous performance issues even on mac pro

[0] https://youtrack.jetbrains.com/issue/JBR-526

Wow, never had this, I use IntelliJ (for java) many hours everyday with 2x4k@60Hz screens (both running with hidpi scaling so even more pixels than 2x4k) and it’s always running smoothly. Running MBP 16”.
This has been my exact setup (except 15" instead of 16") for four years now, and I also have never had problems.
Interesting - my own setup is the built-in 15" high DPI display, an LG 5k display and a Dell 49" ultrawide with a low DPI. I've not really experienced this. Probably scaling mode or similar.
I find this with all IDEs; quality is dropping fast and bugs do not get fixed. I find myself reaching for emacs more and more.
VSCode is the one exception IME. The base editor is improving and the range of high-quality extensions is growing.

Eg installing and running the Lombok extension is a one-liner. I fought for about an hour trying to do the same on Eclipse.

Yes, I'd love to know some of the bugs that you are talking about.
On the flipside, I find IntelliJ causes my computer to go into overdrive while VSC is pretty snappy. A shame because I love using their software. I guess I just need to get a new computer lol
Similarly, it's a pain because I found IntelliJ was far better at auto-completing modules across a javascript mono-repo, but the performance was bad that I've switched to VSC despite it generally being worse experience
VSC != VS

I'm sure VS chugs power like IntelliJ too

> VSC != VS

Yes, but VSCode offers a lot of the functionality for a lot of the programming languages/frameworks OP mentioned he uses IntelliJ for. HTML, JS, CSS, Vue, Node, Python are all perfectly useable in VSCode. For stuff like Java and maybe SQL the full version of Visual Studio would be a fair comparison since VSCode's options for that aren't that amazing (imho).

I think it depends on the environment as to usablity: eg. on my home laptop, VSC is great; but on my locked-down corporate laptop everything is a slog library and extension-wise - Pycharm just works.

That's obviously a process issue to an extent, but there is only so much time I want to spend messing about with this stuff, and if an IDE doesn't have me fighting admin rights every minute, I'll go with that one.

that was the primary driver to me moving full time into a linux VM for work. The corporate crap and antivirus made my overpowered laptop really slow.

I then moved to booting with an external Samsung T5 SSD drive straight into Linux and running Windows in VMs.

I still need the primary Windows for when I need to join the domain.

I used Visual Studio extensively for Python development and occasional debugging of C#, it never once asked for admin privileges.

Wouldn't be surprised if there are issues with older versions though like VS2010 or before.

VSCode, not VS - I used the user version, which didn't require admin privileges but as soon as I started trying to install libraries (e.g. Pandas etc), no dice. Some environments may vary - but like I said, time is limited, no issues with Pycharm.
That's because IntelliJ is creating an (I think) inverted index and dependency graph of your project for code completion/Intellisense and it uses multiple CPU cores to do this as fast as possible.

VSC won't do this to the same extent.

Inverted indexes are slow to create, but fast to query.

https://en.wikipedia.org/wiki/Inverted_index:

There are two main variants of inverted indexes: A record-level inverted index (or inverted file index or just inverted file) contains a list of references to documents for each word. A word-level inverted index (or full inverted index or inverted list) additionally contains the positions of each word within a document.

TL;DR, for every (key)word, list its file and position. A smart IDE implementation would also need to take file rename and move into account, and translate byte positions to line numbers for quick jump-to-file.

Totally agree man, is the all-in-one programmer software (if you know how to use it though). I see colleagues with 10 different software to do their job, I just need phpstorm.
Except being a bit too strict about style. I've started using Rider midway in a project, its formatting didn't really follow a style. Now every time I paste stuff or do anything really the whole file gets reformatted. You can find lots of people complaining about that. And it's not a new problem either:

https://intellij-support.jetbrains.com/hc/en-us/community/po...

https://intellij-support.jetbrains.com/hc/en-us/community/po...

You can configure it to not auto format or format only modified lines, in addition to using whatever style formats you actually want...
Well, I (and the people in the tickets posting screenshots) have the autoformat on paste and other settings off but it still happens.

On top of that I've tried running code cleanup on the whole solution and it introduced bugs - I have an Image class in the project but it imported System.Drawing instead and prefixed the Image with some nonsense that didn't compile.

I think I'll stick to waiting here and there for the rusty Visual Studio 2019 rather than cleanup Rider's shit every commit

Yeah JetBrains IDEs are nice. I use their CLion IDE for Rust and also for web stuff.
I used to use it for Scala, sometimes the editor would hang for 30-40s (probably even more but I don't want to sound like I'm exagerating.) I moved back to Emacs+Metals which suits me better (it's hard to leave Emacs after 20+ years of use.)

Nevertheless I still think Intellij is an awesome piece of software and I still start it sometimes to get useful features which are not available in Metals, like inline type annotations for long method chains (really useful when coding with Cats) or "show implicit hints" to see which implicits are used / missing and where.)

Intellij is awesome, and I use it for Scala with Emacs keybindings as well but like you said, the performance is just atrocious. Memory leaks, stutters, hangs, bad latency, you name it. Every Scala dev team I've been on constantly curses at Intellij. And yet, no one switches, because the functionality it provides is so good.

I never could get ensime to work, but I should try metals.

Most of this is the Scala plugin. I eventually stopped writing Scala because of this and other reasons.
Ensime is not maintained anymore, I'd say the experience has been better with Metals for at least 2 or 3 versions now than it every was with Ensime.

Give Metals a try! Following the instructions in the docs is enough to get a good working environment.

This is very language dependent. With Kotlin and especially Java it flies for me.
That’s weird; I’ve been using it with Scala for the past year without any major issues.
You know, I just don't get the love for IntelliJ. I used to use Eclipse (or more often than not Spring Tool Suite) and I rather liked that. More and more I'm obliged to use IntelliJ and in comparison it just seems ... okay.

Its suggestions stuff is nice, and it works reasonably well. In particular it supports multiple languages much better than Eclipse's motley range of plugins. So I can see why your list of uses makes it the superior option there.

But for primarily Java development, which is where I encounter it and the most vocal love for it, it lacks a couple of key features (or non-obvious configuration to enable them I guess?)

* You can't run code unless the whole project compiles (poor for quick sanity check, test driven development, and refactoring breaking changes).

* You don't get the "problems" view of compilation issues (and optionally analysis output like findbugs) so as often as not I'll try to run a test, building the whole shebang, when the end result will be needing to fix a trivial syntax error. Eclipse tells me that first.

* It's a pain to use when working with multiple (source independent) projects simultaneously. E.g. a library project and the main project. Eclipse lets you open anything you want to in the same window and presents them in the same explorer view.

It also, anecdotally, feels slower than Eclipse, and seems to enjoy popping up focus-stealing windows more often than Eclipse (though I guess I can cuss Gnome just as much for that one).

I don't hate it, but I do miss Eclipse.

Edit: I should add that it supports Gradle rather better than Eclipse does, but since I really dislike Gradle I'm not sure how much of a plus that is!

I wonder if IDEA gained traction after Android Studio switched to it?
That's not the impression I get; it seemed to become super popular when Android was still on Eclipse (but I'm not an Android dev so a little hazy about the timelines).
Huh, well I certainly didn't know that (I've only just started playing around myself).
Ok, so according to Wikipedia, "Googles' ADT was the official IDE for Android until 2015 but was replaced by Eclipse's Andmore and the official Android Studio."

So I was slightly incorrect in that there seems to have been a name change at the same time (as I say, I'm not an Android dev, so I didn't know that).

I was definitely seeing IntelliJ in use, and hearing a lot of praise for it circa 2011 - 2013, so it does look to me like the love for it precedes the Android dev environment switch.

> You can't run code unless the whole project compiles (poor for quick sanity check, test driven development, and refactoring breaking changes).

What do you mean by _running_ specific parts of the code? Isn't this a language problem (compile all dependencies (classes) to byte code, package .class files in jar files, define the main class, define the classpath, and then run)?

Eclipse uses a special compiler that can compile code even if it's got errors. Parts of the code that don't compile get compiled to just a stub that throws an exception.

Some devs really like this. I never really encounter it as a problem because for any refactoring, I prefer to use IntelliJ's refactoring tools that ensure all code (that's in your project at least) gets rewritten in the same moment the refactoring occurs.

> IntelliJ's refactoring tools that ensure all code (that's in your project at least) gets rewritten in the same moment the refactoring occurs

That's the same as Eclipse (e.g. rename method), right? What's the benefit of IntelliJ here?

Pretty much. They both have refactoring operations, but they're a slightly different set.

(Edit: Some of the IntelliJ operations are distinctly superior to the Eclipse ones. But not all. In my experience I'd say they're about even here.)

For example, in Eclipse it's trivial to take an inner class and move it to its own file. In IntelliJ that doesn't seem to be an option.

And that's a breaking change if I do it manually, which is where the Problems panel is so useful.

Not forgetting TDD where in Eclipse I can write multiple tests for a feature before any code exists and run them before the unit I'm testing even fully compiles!

For example, in this screenshot one of the methods the test class invokes doesn't exist: https://paperstack.com/img/ides/eclipse_run_broken_code.png

1. For static class: Refactor > Move Inner Class then choose from: a) move it to upper level (new java file), or b) move to another class

2. For non-static class: Refactor > Move Inner Class to Upper Level

Then you can select class name and parameter name of formerly enclosing class.

Ah yes, you're right. Maybe it's Groovy classes that this doesn't work for?

Still, when a refactoring operation doesn't exist for a code change (even if it's due to operator ignorance) it's nice to have the Problems pane to tidy up with.

> It's a pain to use when working with multiple (source independent) projects simultaneously. E.g. a library project and the main project. Eclipse lets you open anything you want to in the same window and presents them in the same explorer view.

That's a common confusion about IntelliJ.

Eclipse Workspace -> IntelliJ Project

Eclipse Project -> IntelliJ Module

In IntelliJ create an empty Project and import all your Maven or Gradle projects as Modules. Everything in one window :)

I will try this and report back :) thanks for the clarification!

Edit: Ok, report.

It's... close enough. I don't really like the need to create a new project to contain the "IntelliJ droppings" :) but honestly that's not that different from Eclipse's workspace directories.

Thanks for the tip!

There's a problems view! It's a bit hidden though. Go Help -> Find Action, type "Problems" and hit enter. You can also get to it by clicking the little red or yellow square in the top right of the editor.
Thanks, but it's not really the same thing (unless there's another feature somewhere).

Take a look at this comparison: https://paperstack.com/img/ides/eclipse_vs_idea_problems.png

In IntelliJ I can invoke this gizmo for the file I'm in, but it reports the problems for that file. It doesn't tell me where else the problems are. If I do a build I typically get a handful of compilation errors until the build gives up.

In Eclipse, by default, I get the Problems view. It lists all the compilation issues it knows about in the entire project(s).

Because Eclipse does incremental compilation I get to know about issues in a totally different file immediately. I also see stuff like config file errors in the same panel. It's really neat.

IntelliJ may have this feature somewhere, but this doesn't seem to be it.

I want to try it but their whole suite of tools lacks support for my keyboard layout (admittedly weird, but system supported on macOS) so no keyboard shortcuts work.
I'd question whether IntelliJ is "enterprise software" though?
RStudio, server and connect are such a treat to interact with compared to anaconda entreprise.