Showing posts with label eric ries. Show all posts
Showing posts with label eric ries. Show all posts

Monday, December 12, 2011

What is the tech community and who belongs to it?

We had some breaking news in Baltimore's tech scene last week: Sharon Webb was replaced as the head of the Greater Baltimore Technology Council (GBTC) by Jason Hardebeck. Sharon was a friend of mine, and I really bought into her plan to reinvigorate the council and make it more relevant to tech companies. As part of that effort she and GBTC board president Jason Pappas recruited me to be the Entrepreneur-in-Residence. To be clear, I'm not speaking for the GBTC in this post.

The news brought out an extraordinary amount of confusion, hurt feelings, and acrimony, expressed in social media channels. Neal Shaffer nailed it when he tweeted: "It occurs to me that the GBTC convo isn't really about GBTC at all. It's about a community with momentum coming to a crossroads."

That crossroads involves a few questions I hope to address here:

  1. What is the Baltimore tech community and who is part of it?
  2. Do we need to a group like the GBTC to further develop the tech sector in Baltimore?
  3. Are Baltimore tech events infected with an unseemly degree of enthusiasm for startups at the expense of other kinds of companies?
WHAT IS THE BALTIMORE TECH COMMUNITY AND WHO IS PART OF IT?

I want apologize to Elizabeth Eadie and everyone else I offended with a comment I made in the heat of the moment during an online chat (you can read about it here) in which I implied that service businesses are not as valuable to the economy as other kinds of businesses. That was a dumb thing to say. When this chat was taking place we were under the misapprehension that the new GBTC leadership was steering away from supporting entrepreneurs and startups in favor of more established, dues-paying large companies, which fortunately turned out to be completely untrue. I was venting my frustration that the startup sector, which I think is very undeveloped, seemed to be getting short shrift. I was actually responding to the disdain for startups I perceived in Elizabeth's earlier post on this subject, a disdain I often hear from independent technologists around Baltimore. 

Now that I've had a few days to cool down, here's how I really feel: everyone who makes technology of any kind in Baltimore is a member of the tech community. Too often we unconsciously emphasize "software companies" or "startup companies" when speaking of the "tech community", but that might be because software people and startup people are  better organized or more vocal than other technologists around town; I'm really not sure who our counterparts in the biotech world are, for example, not because they aren't valued members of the local technology scene but simply because (as far as I know) there's no one blogging about Baltimore biotech, and there aren't that many public biotech booster events.

I also think that the tech community includes companies that make heavy use of technology. Sharon Webb introduced me to a great example of this kind of company on the cutting edge of maritime logistics technology: Vane Brothers. I'd love to go to a meetup where they show off the cool stuff they are doing to disrupt the shipping industry!

DO WE NEED A GROUP LIKE THE GBTC TO DEVELOP THE TECH SECTOR?

The GBTC lost a lot of relevance in the past few years, and their board members know it. Some in the Baltimore Tech Facebook group and in other forums question the very existence of the GBTC, and they are right to do so: the GBTC has some impressive resources including a budget; a small full-time staff; and a large and well-connected board of directors. Have we as a society made a good investment of that social and financial capital?

I think Tom Loveland explained it best on Facebook:
"...sometimes you need an association. Like to fight a tech tax. Or to make sure DBED supports IT and startups instead of just bio and big business. (All that invisible stuff you never see.) And that City Hall remembers us, too. (In her State of the City address last year our Mayor announced I think only one bit of new spending, and it went to the ETC.) And though dozens of smaller events and get-togethers, ad hoc to organized, are fantastic, occasionally it's a very good thing to hold a giant celebration of our community. And to be all it can, a community needs to leverage its old farts and winners, those with wisdom and/or connections, who can assist the next generation. Often it's the association staff who sees a need and knows who can help and can make the connection. The up-and-comers in the throes probably don't know who to ask, and often don't even know to ask, or that awesome help is available."
So, just because GBTC has lost its edge doesn't mean that we should get rid of trade associations altogether. I have personally benefitted from GBTC as a connecting, community-building organization the whole time I've lived here: GBTC was the first sponsor of my first tech event in Baltimore and also played an instrumental role in making the first Baltimore Hackathon so successful. I met a key mentor at a GBTC Face2Face dinner, and I always make many new connections at TechNite events.

ARE BALTIMORE TECH EVENTS INFECTED WITH AN UNSEEMLY DEGREE OF ENTHUSIASM FOR STARTUPS AT THE EXPENSE OF OTHER KINDS OF COMPANIES?

Elizabeth wrote "...I find the tech-start-up-entrepreneur-scene to be toxic and exhausting." She feels put off by the fact that "Too many people in the tech scene are trying to make a bazillion dollars overnight." Elsewhere on Elizabeth's blog Jason Rhodes echoes the sentiment when he says he "...never felt quite at home in the start-up focused Bmore tech scene. Like a lot of the people, but it seems to be focused heavily on things I’m less interested in as far as starting my own company, etc."

I have a mixed reaction to this. First of all, I now have two small kids and so I don't go to many tech events any more. Enough comments like these appeared enough on Twitter and Facebook to make me believe it must have become a common experience, which sucks.

Yet in my opinion, the primary and perhaps the only problem that our tech community suffers is a shortage of startups! Who are all of these "start-up focused" people trying to make "a bazillion dollars"? What companies have they started? There's a pretty small handful of startup companies around here, and all of the entrepreneurs I know trying to get a startup going are not the sort of craven, venal people that Elizabeth and her colleagues hold in contempt. In fact they are some of the most generous, open-minded people around, and they are motivated by a desire to change the world and make something really cool, while incidentally making money. Purely greedy assholes don't really want to live in Baltimore and we're better off for it!

Maybe it has to do with differing ideas of what a startup is. Startups are considered to be glamorous, shiny things in tech culture, and people who aren't doing them might feel jealous of the attention that startups get - especially when you read about a startup company raising tons of money or press coverage on the basis of zero revenue. If I was the owner of a small, profitable tech company in Baltimore, I'm sure I'd feel the same way! Instead of using superficialities to define what a startup is, I propose we stick to Eric Ries' excellent definition: "A startup is a human institution designed to deliver a new product or service under conditions of extreme uncertainty."

So if you're in a company and experiencing extreme uncertainty (not knowing who your customers are, exactly what problems you're going to solve, and whether you can make money solving them), congratulations, you're in a startup. It would be very wrong to say you're somehow better as a person or that your pursuit is more noble than someone else who is not experiencing that uncertainty, but it's also very wrong to dismiss such companies the way some people in the Baltimore tech scene have been doing. It's wrong to say we shouldn't be bending over backwards to help people who are considering making the leap of faith required to do a startup.

Why is it wrong? Because with this risk comes the potential for great reward, both for the entrepreneur and for the entire city. Startups can become large, wealth-creating entities in a way that few other kinds of businesses can. Startups make their founders and early employees rich, and those people can then turn around and reinvest in the city as philanthropists, entrepreneurs, or angel investors. We are missing this "virtuous cycle" in Baltimore (but keep your eye on Greg Cangialosi who is starting a new revolution of the cycle). The only way to get it moving is to get more people doing startups. I don't apologize for encouraging people to consider startups because I find it a rewarding lifestyle, quite apart from the potential to make lots of money (which is nice also!), and because a crop of awesome startups would become a rising tide lifting all of our boats. I want small web businesses in Baltimore to have more local clients with deep pockets! Baltimore with a few more companies like LivingSocial or Zappos or Millenial Media or Advertising.com or BillMeLater would be an incredible place to live no matter what your occupation!

I take this charge fairly personally since I don't think anyone is waving the flag for startups in Baltimore harder than I am. If I'm doing something that makes you feel excluded or unwanted please let me know and I will fix it. I'm wondering if there's maybe a small crop of "wantrepreneurs" who make a lot of noise about startups but who aren't "for real"; please don't count them as emblematic of startup life in Baltimore or emblematic for how I feel.

IN CONCLUSION

I've written a lot about Baltimore's potential to become more of a prominent technology hub than it already is. It would be crazy to diminish any part of it; we need everyone here being productive doing what they love and not wasting time squabbling like we've been doing. Like Tom Loveland, I see an important role for a trade group like the GBTC, and that's why I volunteer there. I liked Sharon Webb and was sad to see her go but I'm willing to give Jason Hardebeck the benefit of the doubt. Ever forward!

Wednesday, November 11, 2009

Lean startup tools for Rails apps

A few months ago I was invited to dinner with the Geeks on a Plane crew when they stopped in Washington, and had the opportunity to meet one of my heroes, Eric Ries, author of the Startup Lessons Learned blog. His descriptions of lean startup techniques and philosophies have had a big influence on the way I design and build software.

Eric asked me what specific tools Rails developers could use when building a lean startup. Here's a revised version of what I emailed in response, garnered while building OtherInbox and other Rails apps:
  • First and foremost, I find Rails itself to be very useful for building a product for a lean startup; the expressiveness of Ruby and the conventions of Rails help developers more quickly build a minimum viable product. I'm still able to surprise people who have worked with me for awhile with how quickly I can turn their feature ideas into
    something they can play with and show customers.

  • For continuous integration, like many Rails shops, we use CruiseControl.rb - it's easy to install and customize, but I don't think people are especially enamored of it. But it works. Two very promising alternatives to rolling your own CI server are Devver and RunCodeRun. I've tried both but our app has grown too complex for either of them (we use a lot of gems and have a pretty customized test environment). For Github users, RunCodeRun exposes a post-commit hook so the tests run automatically after every commit which is pretty useful.

  • Speaking of Github, I'd love for them to implement pre-commit hooks, because then you could prevent developers from making commits any time the build is broken, which prevents people from ignoring problems in a large code base and just tunneling on building their one little feature. Right now if you want to implement this, you need to setup your own source control repository that can talk to the continuous integration system.

  • To monitor exceptions, we use the excellent Hoptoad app. This tool adds a lot of context to bug discussions, because nonprogrammers can reference the exact Hoptoad URL containing all of the information a programmer needs to fix a bug (including backtraces). Because it has an RSS feed, one could also use "Unresolved Hoptoad Errors" as a metric influencing the continuous deployment system. If a release goes out and suddenly there are new errors, that's a sign that the batch was bad and needs to be reverted. There's a drop-in Rails plugin but this service could be used with any language.

  • There are two A/B testing plugins for Rails: 7 Minute ABs and A/Bingo. I haven't used either and am not sure there are any better than rolling your own. Update: Charlie Park in the comments mentions the new plugin Vanity which came out just after I wrote this.

  • There are several good unit testing frameworks for Rails, each with their own devotees. What comes with Ruby and Rails is plenty good enough but some people like the greater expressiveness afforded by things like Rspec and Shoulda. For my next product I'd like to try Shoulda because it uses Ruby's built-in test facilities (making for one less dependency to worry about, as is the case with Rspec) and because I really like the examples I've seen on the Thoughtbot blog.

  • We love Cucumber for higher level testing. When coupled with Webrat, which simulates a real browser, you get a pretty nice mechanism for exercising the entire app in a test environment before deployment. Webrat even has a Selenium adapter, so you actually can run your tests inside of a browser to make sure all is well before deploying a change.

  • This isn't Rails-specific, but we use SimpleDB for dumping a lot of important metrics data, like performance measurements, which we then turn into metrics. This keeps us from having to hit our database too much. The RightAWS gem makes interacting with SimpleDB pretty easy.

  • For our metrics we mainly use Graphite, the graphing and analysis system open-sourced last year by Orbitz. Our whole team is falling more in love with it every day.

  • New Relic has a nice plugin for Rails that reports all kinds of useful data to their service, which could become part of a cluster immune system for Rails apps. They measure average responsiveness and compute an aggregate statistic called Apdex which can be a good indicator of site health (at minimum, any significant changes to Apdex should be investigated, and they will email you alerts about such changes).

  • Capistrano is still the standard way most developers are deploying Rails apps (but also check out Vlad the Deployer), but I think there's an opportunity for someone to build a Ruby library to facilitate continuous deployment that would work better than Capistrano. It would definitely be built using Rake like Vlad does.

  • Update: I haven't used Heroku, but as Ryan points out in the comments it definitely belongs on this list as a compelling, get-up-and-running fast deployment platform.