Category: Tech

  • Continuous Deployment in Startups

    Continuous deployment is a methodology whereby software code checked into a repository for a web application is automatically sent to the production server after all automated tests pass with no other human intervention. While not being an easy process to describe, it’s revolutionary in how it affects software development. The traditional software development process, even if agile, often involves bottlenecks around manual QA, a limited number of engineers empowered to push a release, and numerous issues when major changes are pushed.

    Here are some thoughts on continuous deployment:

    • Software releases go from big productions to non issues
    • Small changes result in small issues and large changes result in large issues (bugs are inevitable, so keep them small)
    • Automated testing becomes a critical part of the development process and no longer an after thought (there’s no right answer to how much code coverage is necessary other than it needs to be suitable to the product)
    • New developers should push code to production on their first day, setting the tone for a culture that moves quickly and isn’t afraid to make mistakes
    • Config flags are an important part of continuous deployment such that code that’s being worked on, but not ready to be seen by end users, is still pushed to production during development

    Software-as-a-Service, whereby programs are delivered over the internet, makes continuous deployment possible (continuous deployment doesn’t work for installed software). With time, continuous deployment will become more prominent, especially when firms like Etsy espouse its benefits.

    What else? What are your thoughts on continuous deployment in startups?

  • APIs and the Future of Web Apps

    Today’s TechCrunch piece entitled 3 Pillars Of The New Business World: APIs, Identity, and Data hits on several topics I’m passionate about. With the proliferation of Software-as-a-Service (SaaS) for line-of-business applications, there’s a huge opportunity to use APIs, as well as the exchanging of data, to the make businesses more efficient, and decision making more effective.

    Application Programming Interfaces (APIs) are a way for computers to talk to other computers in an automated fashion. As an example, all iPhone apps that interface with servers to get data or call functions are interfacing with APIs that are accessible over the web (e.g. checking your flight on the Delta mobile app). Just like mobile apps access web-based APIs, web-based applications access the APIs of the other web-based applications, providing more value to the customer. When a marketing automation system interfaces with a CRM, the marketing automation platform can automatically pull down CRM pipeline opportunity information and correlate it back to lead gen campaigns, providing a more complete picture of the return on investment for a dollar spent by marketing — APIs make that possible.

    An application talking to other applications is nothing new. Only now, with so many more applications being delivered over the web, the friction and difficulty of one app talking to another is significantly diminished as challenges with custom code and firewalls are no longer present. The future of web apps is more APIs and more data exchange, significantly enhancing the value of business software.

    What else? What are your thoughts on APIs and the future of web apps?

  • Thoughts on Software Programming Schools for Non-Developers

    Yesterday TechCrunch had a good piece on Galvanize, a new startup village in Denver. Galvanize sounds like a great place with co-working space, event rooms, private offices, restaurant, and even gSchool — a six-month intensive program to teach software programming to non-developers. We have a serious shortage of software engineers in the United States. Atlanta alone has four open positions for every one developer actively looking. How feasible is a software programming school for non-developers?

    Here are a few thoughts on software programming schools for non-developers:

    • Most of the top programmers I’ve worked with are the ones that have loved it from an early age and do it on their own time — how proficient will a post-college professional first picking up programming get in 3-6 months?
    • Accenture, and other technical consulting firms, put recent, non-technical college grads through intense six week programs to teach them programming and then promptly bill them out at $150/hr, so I’m confident it works on some level
    • High unemployment generically is a positive for schools like this working out since there are so many people that need to be retrained, with software programming being very desirable and lucrative
    • College degrees like finance, accounting, law and others are well suited for potential software developers due to the emphasis on logic and following rules
    • Night programs seem more desirable than full-time classes but if the person was motivated they’d already have learned on their own through the teach yourself books and sites, or they’d go to the local community college, both of which are cheaper than $20k for six months at gSchool
    • One angle could be programs to get existing software engineers working in large, non-entrepreneurial companies, exposed to startup life, and excited about working in that environment, without leaving their day job

    Knowing a few people that have gone through the Accenture program that trains non-technical people to write code makes me believe that these software programming schools will work. Perhaps they need the prestige and guaranteed high salaries Accenture provides to make them successful. I hope to see more of them emerge and that they are successful.

    What else? What are your thoughts on software programming schools for non-developers?

  • How Do you Crack the Nut on Recruiting Technical Talent

    The shortage of software engineering talent is real. Not a day goes by that I don’t hear or read about a startup lamenting how hard it is to find strong technical talent to join their team. It isn’t that there aren’t people out there  looking for jobs. As a startup, it’s especially important that the engineers on staff are smart and get things done.

    Recruiting technical talent is an especially tough nut to crack as engineers are typically introverted making them less likely to reach out to people to learn about new career opportunities, talent is in such high demand that employers already coddle their IT departments, and there’s real uncertainty in the type of overall work experience when switching jobs.

    Here are some ideas to get better at recruiting technical talent:

    Cracking the nut on recruiting technical talent is a tough, long term proposition. Expect 6-12 months of hard work and serious investment to see results. In the end, the quality and quantity of talent on your team is going to seriously influence your level of success.

    What else? What are some other ideas to recruit technical talent?

  • Startups Should Use EchoSign for all Contracts

    An entrepreneur was recently asking me about an example employee handbook and what to include in it. After immediately sending over a copy of ours, I emphasized that the best thing to do was to use EchoSign and have each employee digital sign the current employee handbook once per year. EchoSign makes things so much easier, faster, and more maintainable compared to traditional signing of documents. In the United States, an electronic signature is viewed as the exact same thing as a normal signature in the eyes of the law (more background on electronic signatures).

    Startups should use EchoSign for all contracts, and here are some of the most common:

    • Employee handbooks
    • Customer deals / purchase orders
    • Partner agreements
    • Stock options
    • Investment docs (the last angel round I invested in was done entirely through EchoSign)

    E-signature and programs like EchoSign represent a much more efficient way of doing business and should be embraced by startups.

    What else? What are your thoughts on startups using EchoSign for all contracts?

  • Security Ideas for SaaS Apps

    Software-as-a-Service (SaaS) apps have the same security challenges as any other web-based products. The good news is that many SaaS apps are more secure than installed enterprise apps due to more timely roll outs of security enhancements and better economies of scale for vulnerability testing.

    Here are some simple best practice security-related ideas for SaaS apps:

    • Require more complicated passwords for users (e.g. at least eight characters with upper case, lower case, and numbers included)
    • Enforce two-factor authentication for any power users
    • Audit the application quarterly with vulnerability scans, cross site scripting scans, and SQL injection scans
    • Limit server access to as few people as possible and enforce IP address white listing
    • Authorize individual machine access after email confirmation
    • Expire user passwords on a regular basis

    SaaS security best practices are well known at this point and should be implemented early on for apps that contain confidential information.

    What else? What are some other security ideas for SaaS apps?

  • Startups and Choosing a Technology Stack

    A technology stack is a fancy way of saying the products and programming languages used to build the behind-the-scenes piece of an application. Just like car companies source technology from a variety of vendors, so do startups, many of which are open source products.

    Three weeks ago I was talking to an entrepreneur and he was looking at acquiring another company. Only, there was a big problem — the target company’s technology stack was Microsoft-based with ColdFusion as the primary programming language. Now, ColdFusion was amazing last decade but has been antiquated for several years now. Building a new startup around a ColdFusion-based app would be a bad idea.

    Here are a few tips when choosing a technology stack:

    • Consider the cutting-edge nature of the technology being evaluated and if you are comfortable having more bumps in the road (e.g. JavaScript on the server side and NoSQL databases are gaining popularity but there are trade-offs that should be considered)
    • Analyze the expertise you currently have and the expertise you have access to either locally or globally through your connections (e.g. Ruby on Rails is awesome but there’s a serious talent shortage right now)
    • Three of the most popular programming languages for startups, based on the entrepreneurs I talk to, are PHP, Ruby, and Python with Java and .NET being more big-company oriented
    • Ask the five entrepreneurs you trust what technology stack they are using and if they recommend it
    • Using a simpler stack with faster time to market is the best approach when you’re starting out as you can always introduce fancier technologies later and deal with things like scaling when you have that high-class problem

    Choosing a technology stack is an important decision and should not be underestimated. I recommend using whatever gets you to market fastest and is enjoyable for your team to use.

    What else? What are some other tips when choosing a technology stack?

  • Google+ Hangout Link for Repeating Events

    Google+ Hangout is a big part of how we communicate internally, or at least it was up until a couple months ago when Google disabled the permanent link. After the feature was removed, we had to generate a new link every time we met (daily check-in, weekly executive meeting, weekly all hands meeting, etc) creating quite a bit of friction and frustration because of the extra work and the fact that the link of each Hangout was obfuscated due to the hidden browser URL bar.

    Thankfully, with the new Google+ Events feature, there’s a nice permalink workaround, first published by the team over at Singly.com. The idea is that you create a Google+ Event far into the future, make it an online event, and then take the Google+ Hangout URL that is produced and use it over and over again until that date is met.

    Here’s how to do it:

    • Create a new event on Google+ Events
    • Give the event a date far into the future, like the year 2020
    • Go to Event options -> Advanced and click on Google+ Hangout
    • Save the event
    • Share the link to the Google+ Hangout on your repeating Google Calendar event

    This method isn’t as effortless as the previous approach but it works well and makes recurring Google+ Hangouts easy and frictionless.

    What else? What are some other tips for Google+ Hangouts?

  • Characteristics of an Anchor Technology Company

    Strong startup communities need to have anchor technology companies in town for a number of reasons. The idea is that anchor technology companies provide large-scale success stories for the area, import talent from outside the region, and directly support a number of functions in the community. In addition, anchor technology companies generate large amounts of press, get attention from outside the city, and have significant influence due to size and scale. So, we know that anchor technology companies are important, but what are some of their characteristics?

    Here are a few characteristics of anchor technology companies:

    • Significant number of high paying jobs in the city (greater than 500)
    • National or international recognition in the press
    • Support for the community through events, talks, donations (greater than $100,000/yr), etc
    • Willingness to buy from or work with smaller technology startups
    • Serious wealth creation (often monetized via an IPO)

    Putting hard metrics and definitions on the characteristics of an anchor technology company is difficult. You’ll know it when you see it and the value is immense.

    What else? What are some other characteristics of an anchor technology company?

  • 5 Highlights of the Atlanta Technology Community

    With the Atlanta TechCrunch meetup next week on July 9th at Sweetwater Brewery, it’s a good time to talk about five highlights of the Atlanta technology community. The technology community has improved tremendously over the 10 years that I’ve been here, with social media and general maturation being a big part of it.

    With social media, especially Twitter, ideas spread faster and conversations are public. Several years ago the Atlanta technology community had more of an old boys network feel where it mattered who you knew and introductions were critical. Now, events like Startup Riot bring together hundreds of people on a regular basis and the hot startups are highlighted at the event as well as over Twitter, where the community participates.

    Here are five highlights of the Atlanta technology community:

    • ATDC – the oldest and most prestigious publicly funded technology incubator that supports over 400 startups
    • Flashpoint – startup engineering accelerator sponsored by Georgia Tech that takes teams through a 90 day program
    • Atlanta Technology Angels – member-lead organization that is actively doing seed stage and early stage deals
    • Venture Atlanta / Startup Riot – Venture Atlanta is the largest annual venture conference in the Southeast and Startup Riot is the largest annual seed stage startup conference in the Southeast
    • Georgia Tech – the largest engineering school in the country, based on number of engineering graduates per year, and in the top five academically

    As of July 4th, 2012, 778 people are signed up for the Atlanta TechCrunch meetup. Think about that for a second — there’s a good chance 1,000 people will sign up for a single tech startup event in Atlanta. Impressive! There are fewer than a dozen cities in the United States that would have that kind of volume for a tech startup event.

    The Atlanta technology community has made amazing progress in the past 10 years, and still has a ways to go. Things like anchor billion dollar technology companies, more risk-loving seed stage capital, and many more success stories will help Atlanta get to the next level. Thankfully, a strong foundation is already in place and getting better every day.

    What else? What are some other highlights of the Atlanta technology community?