We start out with a business-oriented planning approach: we identify business goals to be achieved, determine what IT initiatives and projects can help with these goals, cost out the IT projects, and work with the business group to prioritize them on the basis of urgency, cost, and benefit.
We use an agile development process (XP, or Extreme Programming) with the primary focus on quickly putting into production features with concrete business value. To do this we rely on careful project management and monitoring, extensive and thorough automated testing and deployment tools, agressive refactoring to minimize code size and cost, and continuous effort on improving our techniques and tools.
We have and maintain within the development group extensive knowledge of the entire system from end to end, from business modeling and database design through application development to deployment and systems and network administration. This expertise over the full system allows us to make the most cost-effective decisions regarding reliability, scalability and features.
For web sites (our most common project) we use our own framework, “qam”, which provides support for rapid development, automated testing and deployment. This runs on top of various Unix-based systems; we generally use open source compilers and interpreters (such as OCaml, Ruby, pdksh and gcc) and operating systems, libraries and tools, (such as NetBSD, Linux, PostgreSQL, lighttpd, Apache, and ImageMagick). We use commerical systems as well, but usually find that open source systems give us better security and maintainability and of course a lower cost of purchase.