As we near the completion of a major web application for a startup, it's time to reflect on the factors responsible for the success.
- Cloud Computing. The hardware cost for development was less than $750 including the cost of a laptop.
- We used Google App Engine for the most part but not exclusively.
- For confidential documents, we used Amazon S3, preferring to go directly between the browser and Amazon, bypassing Google. Any doubts about whether Google will mine those documents were neutralized.
- Staying conceptual with the implementation.
- Google App Engine was great for helping us stay conceptual. They take care of scalability, backups, OS versions, patches. All the stuff that drags you down.
- Amazon EC2 is too low level. One has to worry about scalability, backups, OS versions, patches. We should have gone up a level by using a service like Rightscale. We haven't yet, but it's still an idea worth pursuing.
- For the same reason, we would consider Amazon RDS over doing our own database management.
- Open Source Software. Most notably, jQuery. Their slogan is "write less, do more". The reality matches the slogan. A rich milieu of available software allowed us to assemble components rather ...
The two parties in a new Software Development Relationship don't know each other, so what's the best way to structure their relationship?
We want the contract to be fair in distributing risk between the parties. We want to write the contract in such a way that neither side has an incentive to take advantage of the other. Finally, we want to write the rules of the game such that when things go awry, both sides have an incentive to fix the situation rather than descend into worse.
On the one hand, Early Stage IT does work for clients and that puts us in a "supplier" role. On the other hand, as virtual CIO for our clients, we play a "client" role vis-a-vis other suppliers. With both roles in mind, we did a survey of billing practices people employ. In this search, we favored billing practices that align with agile development. To cite some models: