Brett g Porter
Chief Engineer, Development Practices
We recruit carefully; a seat at the Art & Logic table is a valuable thing, and our recruiting process is built around making sure that we reserve job offers to programmers who will hit the ground running and produce great work. Numerous studies have shown that the difference in productivity between an excellent programmer and an average one can be a factor of 10:1.
Our development practices must be built on the assumption that we have a group of programmers occupying the high end of the scale, and wherever possible, we err on the side of trusting our people to take the right actions for the client, the project, and Art & Logic.
As Reagan said, though -- "Trust, but verify." The main components of this verification are:
Key to our practices is a recognition that our projects and the clients who own them occupy a wide range of complexity and sophistication. Beyond a core set of practices (coding style, source management, bug tracking, consistent release procedures), the level of methodological "heaviness" must be tailored to the specifics of each project and client. When beginning a project, we must consciously decide whether it's more appropriate to perform a big design up front and commit to it before writing a line of code, or to use an iterative, evolutionary design approach. A poor match could mean a failed project.
The principle driving our flexibility needs to be a quest for "just-sufficiency" -- the practices are at the service of completing a project successfully, not just to follow blindly. When selecting individual practices to follow on a project, each must be chosen with an eye to the appropriate level of rigor that will produce a successful project, and also aid the success of future iterations of the project. A project that expends too much effort documenting its design and code will not be able to finish on time. A project that expends too little effort on this documentation threatens the success of maintenance programmers in the future who will need to waste time reverse engineering the project just to understand it.
Wherever possible, we prefer to use approaches and tools that are as simple and as lighweight as is appropriate.
"Discipline is never an end in itself, only a means to an end."
-- Robert Fripp
"KAIZEN means improvement. When applied to the workplace KAIZEN means continuing improvement involving everyone - managers and workers alike."
-- Masaaki Imai
Our approach to software development must not be allowed to ossify. Beyond the basic philosophy of Art & Logic, we must count on all our developers to continue to look for ways that we can continually improve our practices and our work, both in detail and in broad strokes. New ideas that are consistent with the Art & Logic way will be tested on pilot projects, evaluated, refined, and if successful, adopted company-wide.
Art & Logic, Inc.
2 North Lake Avenue
Suite 1050
Pasadena, CA 91101
Over 500 companies have hired Art & Logic, including:

"Our outsourcing relationship offers us the flexibility of a dynamic engineering resource that we can ramp up or down without hassle."
—Rick Oliver
SRS Labs, Inc.