Pros
In my time at DHAP, I have gotten to work on so many different types of projects - both in scale and technology. As a result I have developed and refined many useful skills. Hard work has always been rewarded with recognition. Given the long-standing relationship(s) with clients, I have gotten to see my work mature over years of maintenance, which has been crucial in improving my skills as a programmer. Every employee has always had a voice at the company, I have benefitted from this even when I was a fairly junior contractor. Collaborating with smart and creative individuals has been the status quo.
Cons
The pace of (some client) release cycles may not be for everyone. Also, a necessarily pragmatic approach to client management, sometimes leads to political decisions in programming development - something that some programmers may find frustrating. Collaborative culture can sometimes lead to ideas/initiatives getting bogged down in committee.