Archive for October 13, 2015

Tuesday, October 13, 2015

FogBugz, JIRA, and Wasabi

Prashant Deva (Hacker News, Reddit):

Both Atlassian and FogCreek started off as bootstrapped businesses. However, Atlassian is clearly the winner even though it started long after Fogcreek. I have seen how Atlassian went from underdog to beating Fogbugz.


It was very easy to run into an install of Jira on large open source projects, especially before Github became big. It served as huge validation and you ended up already trying the product before you even started a formal ‘trial’ for your organization. (Not to mention it also boosted Atlassian’s SEO).


Fogcreek invented their own language. This meant they couldn’t use all of the ecosystem and amazing tooling around Java, which Atlassian was able to take advantage of. Not to mention they had to spend enormous resources maintaining their own compilers and editors, and of course all new hires had to be trained on Wasabi.


Fogbugz did do a few things well though. It was super easy to create bugs. And it also supported hierarchical sub-tasks, something which Jira still doesn’t fully support.

However, anything beyond the basics and you start seeing the holes in the features.


Jira won because it was not opinionated. You can use it however you want. FogBugz had the philosophy to make bug entry super easy above anything else. Jira will let a manager define new custom fields and make them all compulsory. It perfectly fits how manager at big companies think.

Joel Spolsky:

FogBugz was designed for smaller collegial teams of people that wanted to work together effectively and needed a clean and simple way to track issues using the smart workflows that small, professional teams like to use.

It was remarkably successful and profitable from 2000 to today. We’ve never stopped working on improving it, but we also have never abandoned the market of small collegial teams of smart people.

By contrast, Jira was designed as “Enterprise Software” with features to help managers impose specific workflows on teams. Selling Enterprise software is a lovely, profitable business and Atlassian has great success selling to large organizations who ignore FogBugz, but it’s the opposite of what I wanted to do.

Benjamin Pollack:

First, I find the premise that FogBugz “lost” a bit odd. It unquestionably never achieved JIRA’s ubiquity, but it still exists, Fog Creek still exists, and the money FogBugz generated Stack Overflow and Trello. If that’s a failure, then I would love to have another one of that scale.


They undercut us on price for the one market segment we couldn’t afford to match. This is the single biggest factor. Atlassian figured out pretty quickly that they could charge practically nothing for JIRA licenses for 10-person shops, and then make it by having a massive step-up for enterprise licenses. But nearly all FogBugz customers were ten-person shops or less; charging $10 for a starter pack would’ve murdered our income.

They had a functioning sales team; we had only a marketing team (consisting entirely of Joel). The parent article is incorrect about this. I don’t care what you want to call the team; Atlassian had people on staff who built relationships with managers at tech companies. This meant that they were able to land a lot of those enterprise sales that Joel’s blog wouldn’t reach. If you want to get 10-person shops, Joel on Software is great. If you want to get 200-person shops, you really need someone building up a relationship with managers from day one.


Our Unix on-site version sucked a lot of resources. This is different from Wasabi (I’ll come back to this in a second), but supporting our on-site Unix installations routinely took 20% of our entire FogBugz dev team, and, at its peak, could take even more. This hurt our development speed, especially compounded with our lower resources.


What Atlasssian’s called its ”pre-sales” team was entirely reactive. If you called them they’d have someone who could answer your questions about what the products did, but that was about it. If you asked them for a deal or a discount because you were a big company, they’d politely direct you back to the pricing page on our website. After-sales there was an advocacy team who would occasionally call random customers to ask what we could be doing better, and who would email to remind you your maintenance was about to expire.


For the vital first five years, JIRA and Fogbugz had diametrically opposed product strategies. Fogbugz was a tightly focused product that eschewed customization in favor of presenting how Fog Creek believed an issue tracker would provide the most benefit for a team of developers. JIRA from day one wanted to be all things to all people: there was no deeper strategy than “listen to what our customers want and give it to them.”

So as Fog Creek got this base of loyal customers who bought into the product’s vision, Atlasssian got… everyone else. And everyone else was more people.

Benjamin Pollack:

I still think what you’re describing as pre-sales counts as a sales team. Fog Creek didn’t have a real equivalent; sometimes support would answer questions, and sometimes our SMTPs (management training program), and sometimes developers, and sometimes our office manager, but it was easy for us to lose you/not follow up sanely. Having a person to contact, even if it’s purely reactive, counts as sales--especially because, as a developer who wants my company to buy $foo, it gives me someone’s name and contact info to give my boss. Once we added sales staff (both reactive and outreach), because we realized we were losing sales to your pre-sales team, our sales went up, but that happened relatively late in those first five years. So, I hear you, but I still think you’re undervaluing what Atlassian was doing there.


I did forget another thing though, which actually is another side of both that point and my original post: Atlassian segmented their products like nobody’s business. FogBugz was just FogBugz (and later optionally Kiln) so that you’d have just one single thing to decide on, but that corresponded to JIRA + Confluence + Greenhopper (theoretically, anyway), + Crucible + FishEye. Five separate times Atlassian could charge a customer, each of which could individually be cheaper than FogBugz.

Benjamin Pollack:

Let me start by saying that Wasabi as a strategic move was brilliant. If David disagrees there, I’m a bit surprised: FogBugz represented an awful lot of battle-tested low-bug code, and finding a way to preserve it, instead of rewriting it, made one hell of a lot of sense. I’m with you that the general thoughts in this forum that we’d have to be insane to write a compiler are misguided. Wasabi let us cleanly move from VScript and ASP 3 to .NET without doing a full rewrite, and I’d be proud to work at a place that would make the same decision in the same context with full hindsight today.

That said, I think Wasabi made two technical decisions that I disagreed with at the time and still disagree in with in retrospect. First, Wasabi was designed to be cross-platform, but targeted .NET prior to Microsoft open-sourcing everything and Mono actually being a sane server target. At the time, I thought Wasabi should’ve targeted the JVM, and I still think in retrospect that would’ve been a much better business decision. I really prefer .NET over Java in general, but I know that it caused us an unbelievable amount of pain back in the day on Unix systems, and I think we could’ve avoided most of that by targeting the JVM instead. Instead, a significant portion of “Wasabi” work was actually spent maintaining our own fork of Mono that was customized to run FogBugz.

Ted Unangst

There are two or three versions of Wasabi, depending on how you count. The first version was a simple ASP to PHP compiler, called Thistle. The input language was not customized. Then it became Wasabi, gained a few more features, and accepted an input language more like ASP++, but still output classic ASP and PHP. Then came Wasabi .NET with a whole new backend. That’s when I joined. Not a whole lot is written about this version except when Joel called it supersonic. Wasabi .NET is the craziest of the variants, bearing the least resemblance to any existing language, but still remarkably like ASP. The point of the exercise, after all, was to avoid changing FogBugz as much as possible.


Instead of thinking of technical debt as yesterday’s work that I failed to do, I think of it as tomorrow’s feature I can have today. You have to pay interest, but in the mean time you’re shipping a product, have a roof over your head, and are keeping the lights on. A much hipper programmer might say something like “you ain’t gonna need it.”

In one sense, Wasabi was a rather substantial payment on the debt we had accumulated. FogBugz was written in a now dead language. Building a compiler extended the life of the product, though of course now we had to pay for the compiler, too. So maybe it was more like a bridge loan, or refinancing.


For me the main way in which FogBugz has “lost” is that they silently discontinued the “FogBugz for your Server” version. The plugin system was great and we have our own installation on our own systems (no cloud allowed). With the “performance upgrade” they seem to have forked FogBugz, thrown out all the plugins, Lucene search and redid the GUI.


Scott talks to Jacob Krall from Fog Creek Software about how his team used the open source C# Roslyn compiler to bring their ancient VBScript-style language called “Wasabi” into the 21st century. They solved real-world problems in a systematic way with smart decisions and computer science.

Previously: Killing Off Wasabi.

Coding Literacy

Jeff Atwood (via Slashdot):

If someone tells you “coding is the new literacy” because “computers are everywhere today,” ask them how fuel injection works. By teaching low-level coding, I worry that we are effectively teaching our children the art of automobile repair. A valuable skill — but if automobile manufacturers and engineers are doing their jobs correctly, one that shouldn’t be much concern for average people, who happily use their cars as tools to get things done without ever needing to worry about rebuilding the transmission or even change the oil.

Matt Weinberger (via Slashdot):

According to GitHub CEO Chris Wanstrath, in conversation with Business Insider at Thursday’s GitHub Universe event, the game plan is pretty straightforward.

If most of the world’s developers already use and love GitHub, then the company needs to help more people become developers.

“We’re thinking about the new developers,” Wanstrath says. “We want to lower the barriers to entry.”

Update (2015-10-13): See some good Twitter replies.

Alfred Thompson (via Hacker News):

Lastly if you don’t know what it is like to be a computer science teacher, don’t understand why and how being a computer science teacher is different from any other teaching job or if you want to understand more about how complicated it is to “create” more computer science teachers you really need to read these articles.

More International Taxes on Software Sales

Hugo Grimston (via Peter Steinberger):

The rules were well-intentioned — it was not right that Apple, Google and Amazon could set up shop in Luxembourg, thus gaming the tax system and disadvantaging EU competitors. However, the implementation was cack-handed — particularly the absence of a minimum threshold, which means that the compliance burden for indies is disproportionate (a threshold may now be implemented, but could take years).

This is old news, I hear you say, and already covered by TechCrunch, among others. And you would be right, as the EU rules have now been in place since January 1st and businesses will be making their third VAT MOSS return on October 20.

However, the “successful” roll-out of VAT MOSS has led other countries to formulate plans along the same lines as the EU scheme.

I switched my payment processor from PayPal to FastSpring, chiefly so I wouldn’t have to deal with the tax compliance details. The main alternative seems to be to use an à la carte service such as Taxamo that can plug into a “dumb” payment processor like Stripe.

Update (2015-10-13): Felix Schwarz:

I just stumbled over Avangate. They seem to offer lower fees & more flexibility than Fastspring.

Another option, which I also use, is eSellerate, although I’m not sure of its current status because the sign-up page seems to be gone, replaced by MyCommerce.

Christian Owens:

Our CFO (@hugo_grimston) wrote the original piece for TC. At we also help with this via our checkout product

Disk Utility in El Capitan

Lloyd Chambers:

Make it garish, dumb it down, don’t add useful functionality, and make sure the window cannot be resized, since everyone has just one drive anyway, right? […] I can’t see most of my drives and volumes any more without scrolling. This makes getting any view of what is there quite difficult (let alone relationships between drives/volumes/partitions), but worse it increases the risks of making a mistake (data destruction) by selecting the wrong disk. But there are gratuitous bugs also, not just crippled visuals.


There is no RAID tab any more, and look at the wonderful display of all these Untitled volumes (none of my volumes are called Untitled).


Scrolling way down past the 15 “Untitled” nuisances, I find my RAID volumes. Disk Utility does not see fit to indicate the type of RAID (stripe or mirror), or its status (say, a failed mirror drive).

Nicholas Riley:

Yeah, you can’t even launch 10.11’s Disk Utility in some configurations.

Rowan Pope:

10.11 Disk Utility is severely broken. If you replace a HDD, can’t even rebuild a fresh Fusion Drive. Need 10.10

Update (2015-10-16): Disk Utility also lost the ability to have multiple windows (and, thus, multiple operations running at once).

Update (2015-10-29): I continue to have problems with Disk Utility’s new interface for partitioning and am surprised at which information it thinks is important to highlight.

Update (2016-03-23): Craig Hockenberry (tweet):

When Disk Utility fails to mount a disk, no error message or other user feedback is presented to indicate there’s a problem.

Apple’s New Magic Keyboard, Mouse, and Trackpad

Jason Snell:

If nothing else, the new $99 Magic Keyboard seems to suggest that the keyboard dystopia I fear won’t come to be. This is a second new keyboard design from Apple in a year, and this one’s a lot more mainstream: It eschews the butterfly mechanism on the MacBook keyboard for a more traditional scissor mechanism, albeit one that Apple says has been tweaked to provide one of the features of the MacBook keyboard: improved key stability.


The Magic Keyboard’s key travel is about 1mm, less than that on the old Apple keyboards. But typing on it feels much better than the MacBook’s keyboard did. It’s hard to explain typing feel in words, and people can have dramatically different tastes when it comes to keyboards. In general, I’d say I like it. It may well be better than the older model, but it’s definitely different. There’s less travel, but more key stability. The reduction in key travel didn’t bother me; in fact, when I went back to my Logitech keyboard, it felt really weird.

Jacob Kastrenakes:

The keys are made ever-so-slightly wider by reducing the air gap around them, but their actual placement remains identical. The function keys are also changing in size, from tiny rectangles to full square keys. The keys all make a very satisfying tap as you press them.

While the updated keys are essentially in the same place, they type a lot differently. For one, they’re a lot shallower than those on the old standalone keyboard (but not quite as shallow as those on the new MacBook). That’s not as big of a difference as you might think, but it’s compounded by the change in the keyboard’s slope. Each row of keys is now much closer to being level with the rows beside it, which means you have to move your fingers slightly deeper to reach certain rows.

Andrew Cunningham:

Key travel is somewhere in between the old wireless keyboard and the extremely shallow travel in the MacBook, but the feel is more MacBook-y than Apple Wireless Keyboard-y. If you’ve already gotten used to the travel in the MacBook, you’ll have no problem adjusting to this one. If you’re used to the travel in the Apple Wireless Keyboard or in the MacBook Pro or Air, you may hate the way the new one feels.

There is now an integrated battery that lasts a month and charges in an hour via the Lightning port. It automatically pairs via Bluetooth when you plug it in. You can also just use it as a USB keyboard, with Bluetooth off.

Jason Snell:

Also gone is the silver color scheme—the Magic Trackpad 2 is all white, color matched to the keycaps of the Magic Keyboard rather than its aluminum frame. The entire top of the Magic Trackpad 2 is a touch surface—measuring 4.5 inches tall by 6.3 inches wide (the old model was basically a five-by-five square)—and its surface area is 29 percent larger than the old model.

Oh, and did I mention that it does Force Touch?


As on the MacBook, it’s kind of hard to believe that the Magic Trackpad 2 isn’t actually clicking when you push down. The glass does flex with the pressure a little bit, but that clicking feeling is entirely artificial.

I still think that mice are much faster and more accurate than trackpads. The Magic Mouse 2 still looks really uncomfortable. It can’t be used wired because the port is on the bottom.

Update (2015-10-13): Steven Levy:

“When we did the previous mouse we spent so much time dialing those feet, the material, the geometry, everything, so that it sounds good and feels good when you move it on the table,” says Ternus, whose title is VP for Mac, iPad, Ecosystem and Audio Engineering. “But then you change the mass of the product and you change the resonant frequency of the product and all of a sudden the feet that we loved weren’t great anymore. They weren’t what we wanted.”


The original Magic Mouse maximized the surface contact from its runners. But that approach didn’t work with the new version. “It was a little bit sticky — not in an adhesive sense but it didn’t glide the perfect way we wanted it to glide across the table,” says Bergeron. That resulted in the not-right noise.

“The solution was to reshape the high density polyethylene (HDPE) feet. “By actually riding more on the edge this time it was a better experience,” says Bergeron.

Steven Levy:

Schiller, in fact, has a grand philosophical theory of the Apple product line that puts all products on a continuum. Ideally, you should be using the smallest possible gadget to do as much as possible before going to the next largest gizmo in line.

Update (2015-10-14): Kirk McElhearn:

The extra width means that I have to move my arm more to use the trackpad, and I’m hardly using any of that space anyway.


Also, I’m finding that when trying to click and drag one or more icons, I either end up selecting the text of a file, or opening the file(s). It seems like the Force Touch thing prevents me from clicking and dragging. I can turn off the Force Touch feature, but then there’s no real advantage to this trackpad over the previous model (other than not needing batteries).


The height of the trackpad matches the height of the keys on the keyboard, not its body, as is the case with the older devices. As such, it’s sometimes a bit weird to move from one to the other, and I find that in doing so, I hit some of the keys on the right side of the keyboard.

Update (2015-10-15): David Sparks:

Another improvement is the on/off switch. In the existing keyboard, whether or not the device is turned on is always a bit of a mystery. You need to long press on the power button (located on the opposite side of the battery access cover) and that either results in the device turning on or turning off. The trouble is you don’t know until you try. The new keyboard has a switch. The slider background shows green if it’s on and red if it’s off. That’s much better.

Typing on the new keyboard I couldn’t tell any difference from the existing keyboard. Apple explained they’ve done additional work to improve the scissor switches to have 33% more stability and I have no doubt that they have but it felt pretty similar to me. One nice improvement is that the function keys now are full-size instead of half size on the existing keyboard.

Update (2015-10-19): Rene Ritchie:

Right now the Magic Keyboard is somewhere between the MacBook Pro keyboard and the new MacBook Keyboard, which makes sense given the switch. But it does mean I notice whenever I change from one to the other. Context is important but all other things being equal, consistency is a user benefit.

For example, I still occasionally trip up on the arrow keys on both the Magic Keyboard and the new MacBook, and for the same reason—the new spacing eliminates tactile awareness. I think that’s partly because the MacBook Pro still has the older arrow key layout, so I never really unlearn it.

Brett Terpstra:

However, this new Magic Keyboard is killing me. I don’t own one of the new MacBooks yet, but this appears to be the same keyboard. I’m unsure how everyone else is finding it so usable.

The key profile is so low that my fingers have no reference when sensing edges of keys. The response has an odd lag anytime the CPU is pegged, which I do not understand at all. The setup process is very cool (plug in a lightning cable and it pairs instantly), but my first impressions using it have been bad and going downhill.

I’ll be able to get used to the key profile, eventually, but there’s one thing that’s absolutely killing me: the configuration of the arrow key cluster. The seemingly small change in the size of the left and right arrow keys to full height has made it nearly impossible for me to use.