Why should startups adopt software development infrastructures?
As a startup founder, you want nothing more than to be “lean,” both with your monthly burn and your development processes. The last thing you want is to adopt a heavyweight tool like ISO 9000; its complex process would prohibit you from pushing out successive product releases within the same week.
At the same time, a year and a half’s worth of startup experience has taught me that if there are more than two people working on your product, it’s actually more productive to spend some time setting up your development infrastructure upfront. Putting even just the bare minimum amount of process in place will get you going without any initial costs, save for a small time investment.
What tools does my development team need?
Here is a list that most teams will find useful. Keep in mind that we’re talking here about a software/technology product (as opposed to a services company, whose priorities may be slightly different).
What do these tools do and who does it best?
The price point has everything to do with how we selected our SaaS vendors for SocialGlimpz.
Mail, Office, and Storage
These days, it’s easy to look like a real company. The first steps are to buy your desired domain and establish a professional email presence by using a cloud-based mail service like Google Apps. Until recently, Google Apps, which also includes the Google Docs, Calendar, and Drive tools, was free for a limited number of users. Google now charges $50/user/year. Today’s best free alternative is Zoho Office.
Source Control
Any developer knows that these tools are invaluable for software development. They help you manage versions, revisions, and multi-person additions of code to your product. Github is the most popular tool, but it’s not quite free. Our tool of choice is Bitbucket, also based on Git technology. The free plan of Bitbucket supports unlimited private or public Git/Mercurial repositories and up to five users.
Project Management
This is straightforward right? The best productivity apps, in general, keep a history of the tasks, activities, dependencies, deadlines, and communications for all of your projects. In addition, good project management systems will also track your product backlog (i.e., the features/functions you plan to add to your product) and your bugs (i.e., product defects). We use Asana for all project management—both development and non-development related tasks. Asana is completely free. Using the 60-day trial for Basecamp, we found it to be better for development-related projects because it has specific features to show burn down charts for agile dev sprints, for example. We haven’t found a serious need to invest in Basecamp yet, but one approach we might adopt would be to run projects in Asana and push tasks to Basecamp to-dos, using a SaaS integration service like Zapier or ItDuzzit. These integration tools are free for up to 100 monthly transactions.
Cloud Hosting Services
Build and Test Services
If there are SaaS products to help you host, why wouldn’t there be ones to help you test, build, verify, and deploy your code? In fact there are. However, this was one area where we decided to bring the tools “on-site,” due to the simplicity and power of an open-source solution called Jenkins. Jenkins allows you to automatically and continuously build and test your code changes, making it easier for your dev team to obtain fresh builds.
Enterprise Social Networking
These services allow employees within an organization to share stories, ideas, articles and other content using a collaborative platform. Think Facebook, but instead of connecting with friends, you connect with colleagues, and instead of posting pictures of your kids, you generate focused discussions on topics relevant to your business. Personally, we haven’t found this function to be dire to running our product team, but the barrier to setup (ie. signing up in less than 5 min and zero cost) was so low, that we chose Yammer. We find it helpful for activities like sharing best practices articles on general knowledge that can be persisted and referenced in the future.
Bonus Tip:
To further automate your infrastructure, you could consider integrating the various systems described above, so that they work seamlessly together. Take for example, Git + Asana. Ideally, you’d want to match product bugs directly with the code changes in your source control, so you know what specific lines of code were changed to fix a specific defect. For this particular integration, you might check out Spacemanlab’s fix. For other cloud services with open APIs, SaaS integration services like Zapier or ItDuzzit can help. The ultimate value is that these integration points enable you to avoid duplication of data entry.
You can do the same for the other aspects of your business by adopting tools like Mailchimp for email marketing and list management, Expensify for expense tracking, Zoho for customer relationship management, Zendesk for customer service management, Slideshare as a sales tool for sharing pitch decks, and FreeConferenceCall.com for telephone lines.
With some education and definition of processes for your team, setting up all of this infrastructure will take you 4 to 5 days. That’s great news! Bottom line, it doesn’t take too long to surround yourself with easy to use, free development support services, and quickly see productivity gains.
Happy coding!