Appian delivers rare IPO to Washington DC area’s tech scene
washingtonpost.com
washingtonpost.com
That said, they've done super well for themselves. It sort of blows away this thought of successful startups being full of the best and trying to build the best product. I'm curious what will happen to them down the line.
While we care intensely about "high quality" software, we define it as "well-designed" or "well-abstracted" or "loosely couple" and all kinds of things that matter when you look at source code, customers care about:
1) does it solve my problem?
2) is it reliable enough? ("enough" depends on use case)
3) can I afford it? (not just cash but maybe TCO)
Edit: And this applies to most of the "hot startups" too. Ask anyone who has been at a major company through the growth years and ask how "good" their software was. Every single one will share horror stories about late nights, tight deadlines, horrible hacks, and "omg let's rewrite this whole thing!" arguments.
As things grow and stability becomes a priority (often customer-driven), things change for the better for the software.
4) How quickly can you fix it?
5) How quickly can you deliver this feature?
One notable exception of late has been security fixes. A lot more enterprises have become more aware of the need to patch their systems quickly in response to CVEs etc.
On one of my first projects, I was so afraid of "spaghetti code". Before adding any substantial feature I searched for "best practices" and tried to implement them, made sure my file names and folder structures were organized, wrote unit tests, then wrote integration tests, then manually tested -- all before I had a single customer or another developer on my "team". Looking back, I was very slow. I think it still would've failed if I was a bit faster, but who knows.
Then at my next job I had almost the exact same experience as you. 400-600 line methods, no logging, reliance on outdated libraries/frameworks, no documentation. Fixing bugs meant trying to change as little code as possible, because if you actually tried to refactor you would almost definitely end up altering or breaking some other feature. Yet there were large companies that paid for and relied on the software for business critical processes.
I'm still trying to figure out what the balance is, but I'm glad to have experienced both ends of the spectrum.
It seems like one of these companies that makes money by latching themselves onto the systems of large, inefficient corporations that don't trust their own engineers to do the work (even though they are capable).
At that company we were also forced to use Amazon Lambda for a lot of API work; it slowed us down a lot but the business demanded it.
Opportunity costs are a thing. Even if their engineers are capable and willing, it may not be the most productive use of their time.
Also, having worked for and consulted for many large, inefficient corporations outside the technology sector, Homemade software solutions have almost always been complete trash. The UX is generally extremely frustrating and they’re buggy as hell.
These things are always done as a side-project and don’t have the kinds of resources or project management expertise applied to them to get them done properly. Whether that’s engineerings’ fault or managements’ fault is immaterial as the result is always the same. Why not send the software work outside and let your company focus on what your company is good at?
After starting as a technical consulting firm and growing quickly for the first few years (they survived the dotcom crash by making inroads into the government and military markets), they decided to make a transition from consulting to software.
This ultimately seems to have been a good move, but it took them almost 10 years to figure out and fully execute (the transition started around 2002-2003, and they didn't really hit their stride until about 2011). I have to give Matt Calkins a lot of credit for pulling it off.
http://www.nasdaq.com/markets/ipos/filing.ashx?filingid=1149...
Looks like the industry has figured out how to make itself valuable even if the products are sub-par. Incidentally, like Matt Calkins, Alan Trefler the Founder and CEO also owns more than half the company.
Given that I have never seen any of the people from this company at any of the places serious startup people seem to gather I'd say probably not.
Overall, I'd say DC/Metro is a place with a pretty solid balance of interesting problems to solve, people with money who are willing to contribute to their solutions, talent and "runway efficiency". I don't know if the Appian IPO really changes any of that, per se, but I think the region is pretty good for startups - especially if you're willing to think outside the box with respect to how you get your funding / pitch your idea.
I recommend living in the Crystal City/Arlington area until you have kids. You got easy access to DC/Pentagon, but you can go as west as Dulles Airport, north to Bathesda, or even slightly south on 95 because of the opposite commute.
There are even some jobs in the area.