What Programming Language Should I Use to Build a Startup?
Often entrepreneurs ask me 'What technology should I build my startup on?' There is no right or wrong answer to this question. It's a decision every company makes for itself, depending on what it's trying to build and the skills of its cofounders. Nonetheless, there are a few rules that one should adhere to. We discuss them in this blog post.
Incident Response Policy
What happens in your company when a production incident occurs? Usually in a typical startup, you will see engineers running around frantically trying to resolve the problem. However, as soon as the incident is resolved, they forget about it and go back to their usual business. A good incident response policy can help bring order into chaos. We provide a sample template in this blog post.
Analyzing Front-End Performance With Just a Browser
We discuss a number of freely available online tools which can be used to analyze bottlenecks in your website.
Why Smaller Businesses Can't Ignore Security and How They Can Achieve It On a Budget
In this article, we show that security is both important and achievable for smaller companies without breaking a bank.
Monday, April 29, 2013
Wednesday, April 24, 2013
Balancing act
Imagine life is a game where you are juggling five balls. The balls are called work, family, health and integrity. And you are keeping all of them in the air. But one day you finally come to understand that work is a rubber ball. If you drop it, it will bounce back. The other four balls-family, health, friends, integrity-are made of glass. If you drop one of these, it will e irrevocably scuffed, nicked, perhaps even shattered.
Wednesday, April 17, 2013
UX Elements

UX Design Elements (Jesse James Garett, 2000).
The UX Deisgn Elements book is a great starting point for everyone who is interested in UX design.
I highly recommend it for developers to read, because it will give them better appreciation of what designers think about before they hand them the requirements.
A good visual design always needs to start with understanding the site objectives and user needs. What do your users need? What is your site trying to achieve?
Then, functional specs need to be written summarizing what features the website should have. I like using MOSCOW approach for functional specifications. M = must, S = should, C = could, W = would. When you prioritize each feature, you can easily iterate and build only the Ms first.
The next layer is the Information Architecture layer where you define your site's goals and collect clients or coworkers' opinion about that.
Next is the design of navigation, wireframing, etc.
Finally, you wrap all of this up and produce a finished visual design.
Saturday, April 13, 2013
3 types of factors which startups seek to learn to establish product-market fit
|
Product Development
|
Marketing
|
Sales
|
|
Completeness
Features and Functions
Interface to Existing Ecosystem
Ease of Installation
Correctness
Value to Customers
Reliability
Serviceability
Fit
Ease of Use
Suitability for Environment
|
Positioning
Competitive Analysis
Market Segmentation
Marketing Messages
Proof of Value Proposition (ROI)
Packaging
Promotion
Collateral Materials
Advertising, shows and PR
Customer Success Cases
Pricing
Across Market Segments
Across Channels
|
Channels of Distribution
Number and Type
Channel Support and Training
Sales Force
Sales Model
Sales Pitch
Training and Development
Lead Generation
Technical Support
Sales Stage
Learning
Development
Expansion
|
Tuesday, April 9, 2013
Wednesday, March 27, 2013
Self-organization and 'swarming developers'

At Cinchcast Tech, we spend a lot of time thinking about how to improve our development processes. One adjustment that our Director of PMO extraordinnaire Dan Alcalde have made to our scrum process is to use 'swarming'.
In swarming, a group aggregates together working on a same task, just like a swarm of birds migrates in a particular direction. For bigger tasks, instead of assigning the task to an individual developer, we have an entire team work on it. These big tasks can often be broken into smaller pieces. Also, a definition of Done for large tasks can be fairly extensive -- not only does the code need to be written, but documentation needs to be presented, unit tests developed, and demos given to stakeholders. In the past, when a single developer worked on a large feature during a sprint, he'd run out of time and skim on unit tests on documentation. By having an entire team develop a feature, each member of a team can keep the other member in check, do pair programming, and share the architectural knowledge.
The other technique we use is 'self-organizing teams', where teams form on an ad-hoc basis. Instead of assigning specific tasks to individual developers, we let each developer choose which task he wants to work on. When a developer finishes his tasks, he is free to select more tasks to work on (although nobody forces him to do so). Peer pressure enforces people to keep up with their team mates, and everybody knows how much everyone delivers.
To be fair, swarming mostly works for large tasks.
1. There needs to be a clear definition of Done that everyone adheres to
2. The user story needs to be complex enough.
For smaller tasks, we continue assigning them to individual developers and not being overly strict about when a task is considered Done.
Team Building and a Scavenger Hunt
We decided that it would be a good idea to get the Tech team out of the office into a casual environment, where the main focus was to have fun. So earlier today we took to the streets in a photo scavenger hunt (http://cityhunt.org) . The team had to run through the New York city, looking for clues, and following the directions. It was a friendly competition, where creativity and good team-work mattered. In the end, everyone felt they built better bonds with their coworkers, which will make everyone more efficient.
Pictures (cross-posted from our Tech blog http://tech.cinchcast.com):









