How We Work

Software development is inherently risky. You might be surprised to learn that, on an industry-wide basis, less than 50% of software projects are considered successful. We've spent the last 20 years learning how to make projects succeed. Hiring the best programmers in North America certainly helps, but it takes more than genius to consistently produce successful outcomes. When you hire Art & Logic, you'll benefit from two decades of experience on over 500 projects.

Here is how we do things at Art & Logic:

The Art & Logic Software Development Process

When you fill out the contact form on our website, the information is sent to our sales team. We receive inquiries throughout the day and respond as quickly as possible. During the initial conversation, we'll usually cover general information and coordinate the signing of an NDA (non-disclosure agreement). After the NDA is in place, we'll work closely with you to gain a deep understanding of your project. A salesperson will coordinate the effort and usually involve a developer with the requisite skills and experience to prepare a detailed estimate.

We use an estimation process called "Pessimistic PERT" (Program Evaluation and Review Technique). The estimator reviews project requirements and breaks the work down into tasks. He then estimates the Best Case, Worst Case, and Most Likely Case for each task. The Pessimistic PERT formula calculates an Expected Case value that is weighted more toward the worst case than the best case. This takes into consideration the fact that most programmers tend to be overly optimistic in their estimates. Hence, the name "Pessimistic PERT." We sum the expected cases of all tasks to calculate an Implementation Sub-total. We then burden that value with 3 adjustable factors:

  • Project Management
  • Testing
  • Bug Fixing

We then turn the estimate into a range by adding a "Safety Margin" to account for project risk factors that may not be reflected in the value calculated by the PERT formula.

We charge hourly for our services. All of the work product that we produce is owned completely, royalty-free, with no strings attached, by the client once all invoices have been paid in full. This includes source code, graphics, documentation, and any other project-specific files created during the course of the project. Our standard software development services agreement is available for you to review at any time during the sales process. Clients and their attorneys often request specific changes which we are usually able to accommodate.

Our clients come to us with various levels of technology commitment. If you have corporate mandates that require that certain technologies be used, or if you have existing software that needs to be extended, we will be happy to work with your technology requirements. If you are not committed to a particular technology, we will make a recommendation driven by the requirements of your project.

We have a broad and diverse set of skills and experience, so it is highly likely that we have developers who are well qualified to work on your project. However, our goal during the sales process is to select clients with whom we can work effectively and projects on which we can excel. If we do not think we are a good fit for your needs, we'll tell you that directly and honestly.

Once you decide to work with us, we'll assemble the project team. Teams generally consist of a project manager, one or more developers (which may include the project manager), a tester, and optionally a graphic artist. We're normally able to start projects within two weeks of finalizing the business arrangements, sometimes sooner.

The project manager will be your main technical contact during the life of the project. Each client also is assigned an account manager who is your business contact during the life of all projects we do for you. This is normally the salesperson you worked with during the sales process. We find that having separate technical and business contacts provides valuable checks-and-balances.

As a client of Art & Logic, you’ll be expected to be an active member of the development team. Our developers are experts in their field of programming, but we will rely on your specific domain knowledge to augment the skills of our team.

We believe that frequent and high-quality communication is crucial for the success of your project. As a result, project status is not merely "reported" to you. You will be an integral part of the project team, constantly aware of what's going on. Here's how we do this:

  • Everyone involved on the project (on our side and yours) will be subscribed to a mailing list. We encourage shared communication in this manner in order to keep everyone informed of issues and decisions being made throughout the project. Of course, private communication is sometimes more appropriate.
  • Work-in-progress is released as frequently as the project permits, preferably at least once a week, so that there's very little chance of a project veering off in an incorrect direction. Each release is accompanied by detailed release notes explaining what has been added since the previous release and pointing out areas of the software that require immediate attention.
  • We use a web-based project management system. You will be able to securely access the system to add bug reports, change the status of items, set their priority, track their progress, etc.
  • We also post a weekly status report. This would be a summary report in addition, not instead of, all the other kinds of communication. It may be useful for reflecting project status up to higher levels of your organization.
  • The project's project manager and your account manager are available during all normal work hours by phone. Feel free to call them. Likewise they will not hesitate to call you if they need immediate clarification of any issues.
  • If you would like, we can set up a weekly conference call with you and other members of your team.

We don't follow a specific off-the-shelf development methodology. The needs of the different clients and industries we serve, along with the way that we integrate with our clients' organizations preclude us from dictating exactly how the development of every project should proceed. Instead, we adapt the broad principles of agile software development and apply them in a flexible, practical manner. This means using as lightweight design and management procedures as possible, emphasizing short, frequent release cycles, and remaining responsive to changing requirements. Read our Development Practices Manifesto.

We have developed a set of conventions and practices that we apply to all source code written for client projects. The primary advantages are that an Art & Logic programmer can start work on a project without needing to come up to speed on how things are done on that project -- the code on any Art & Logic project looks and reads like Art & Logic code. If we need to add developers to a project, or when we come back to a project in a year to add new features, there's no time wasted figuring out the code. There are stories in the industry about new developers starting on a project and burning valuable time reformatting the source code into something more pleasing to them; there's none of that for us. For more information, please see our programming style guide.

We believe software should be released frequently during development and that testing is a collaborative process. Our developers and QA staff rigorously test releases before we send them to you. However, we aren't experts in the domain of your business. It is imperative that you arrange for real-world users to use the software and provide us with detailed bug reports. During the later stages of a project, when testing and bug fixing are the primary activities, we'll work closely with you to prioritize the bugs so that you can make an informed decision regarding when to release your software to the public. In some cases a limited, beta test may be preferable. In those cases Art & Logic is available to assist you with your beta test program.

After the software ships or the site is launched, you can take over maintenance of the software if you wish. Alternatively, we are happy to remain available indefinitely to make changes at your request. We will also happily scale up the team again to tackle new versions. Our business is based on long-term relationships. We are proud that we have worked with a number of clients for 10 years or longer.

Contact Us / Become a Client

The best way to begin a conversation with us is through the form below. The information you provide will help us to have the most appropriate person contact you. Generally we are able to respond to inquiries within 24 hours.

1. Your Info




2. Your Company




3. Your Project





4. How much do you expect your software project to cost?

Less than $20,000
$20,000 - $100,000
Over $100,000