After traveling to 30 cities over the past 5 months as part of my Coding Across America project, I've discovered that entrepreneurs can categorize cities into one of four types of software development scenes.
Software developers with a full stack skill set are necessary as a "raw input" to an entrepreneurial culture. Over time, a startup scene without access to software developers will wither and die as the entrepreneurs move to cities with better tech scenes.
Entrepreneurs in some cities find themselves with severely limited access to software development talent of any type. To build and scale a business with software as a major component (which most businesses today need for differentiation), the business will likely have to move or open another office in a different city.
For example, from my trip I found this issue to be the case in New Orleans. NOLA has a thriving entrepreneurial community with IdeaVillage, 4.0 Schools, and events such as New Orleans Entrepreneurship Week. However, the raw input pool of software developers is simply not large enough to sustain an entrepreneurial community. I'm not trying to take away from the software developers who are there - certain events like NOLA Hack Night show that there are developers. However, there are simply not enough of them given the size of New Orleans.
Morning skyline in New Orleans.
Cities with a severely limited tech community should first incentivize companies to hire software developers for local positions. In addition, local leadership who run tech meetups are key to building a strongly bound tech community. Once a small community is established, tech startups should consider banding together to create hacker houses.
The second type of city has software development talent, although the talent is geared towards narrowly scoped enterprise software skills, such as SOAP web services. A developer can stay in a position for years generating XML schemas for web services and not learn any other parts of a technology stack! That type of developer would struggle mightily in a startup environment where developers share responsibilities for all parts of the product until the team scales to a sufficiently large size.
Non-technical entrepreneurs with a fledgling business are looking for "full stack" developers who can build an entire product from the back end database creation to the front end CSS design, as well as run the application (or mobile app) in production.
Another challenge in these cities is that the culture often discourages leaving an established job to take a risk at a startup. If a startup fails, large enterprises are often reluctant to hire workers back due to the mistaken view that time at a startup is similar to being unemployed.
Examples of this type of city are Memphis, TN, Charlotte, NC, Dallas, TX, and Omaha, NE. Note however, Washington, DC is not included in this category even though it shares many characteristics (DC falls in type 3, next).
Main Street in Memphis, Tennessee.
Entreprise development type cities have a huge potential source for great developers: pick out the best developers who are bored in their jobs and have a passion for learning more. Hooking those developers into local tech meetups with entrepreneurs and full stack developers provides an opportunity to over time get them the broad skill set they'd need to succeed at a tech startup.
As I traveled and talked with tech startups and software developers around the country I realized Washington, DC is an oddity in this list. That's either a good or a bad thing depending on whether you think what matters is entrepreneurship, or startups meant for rapid growth.
Entrepreneurship is common in Washington, DC. But the easiest business to start is a consulting firm. Think of the advantages: hire when someone else is willing to pay for that person's salary (plus extra), minimal office overhead since most consultants are on client site, and downsize headcount if necessary when projects end. Yet these same forces that make it easy to start a consulting business also push up the salaries to a point where jumping to a scalable product-based startup creates too much risk versus reward from a individual's financial standpoint.
Sure, some developers are attracted by the startup environment, a laid back atmosphere, and the trendiness of working at a tech startup. But if you're a great developer who's into that, why wouldn't you just move to Austin, Texas? Without any other limiting factors, it would be silly to deal with the high cost of living in D.C. and work at a tech startup.
I'm still on the fence as to whether Washington, D.C. can or should change the consulting firm culture. I'll have more to say on this after I meet with more members of the tech startup scene now that I have returned from my trip.
The final type of scene I found in the United States was where there was extensive talent throughout the city. However, massive demand by both startups and large established tech companies such as Google, Amazon, and Facebook creates significant upward salary pressure.
New York City skyline viewed from the East Village.
Extensive talent, massive demand type of cities need ways to train new technical talent. A great example is The Starter League in Chicago. Programs like The Starter League take people who have little to no programming ability and in several weeks getting them over the steep initial learning curve. Over time these types of programs create an influx of tech workers with practical full stack skills. One area for improvement will be engaging program alumni to make sure they are continuing to build their skills after they graduate.
Those are the four broad categories I found. I'm sure some aspects will change as I have time to reflect and discuss this subject further with various tech communities. For example, I did not address the tech communities found in university-centered cities such as Charlottesville, Boulder, Eugene, and Madison. If you find the subject interesting or have a comment about it, send me an email at email@example.com.