Pros
Very flexible and always followed thru on allowing you to take care of your "work / life balance". Allow you to be very independent in performing your job, with no overbearing oversight as long as you are consistently productive (which I was, of course). :-) Very informal in terms of internal procedures and processes, which the "less structured" of us really appreciated. :-) :-) This included setting your hours flexibly to meet all objectives for the contract, which is essential for field engineering roles.
Cons
I guess I would say the one biggest thing was that "all the eggs were in one basket". The software side of Prowess was much more diversified, but other than a few minor, short-term side-contracts, the network engineering team (of which I was a part - contracted with a major software company) was "it" on the hardware side - even though it was a long-lived agreement (I was there 6 years on the same gig - a couple other guys were there longer). But when a big global player came in and pushed everyone else out of the way, Prowess had no chance to compete, as a regional player only. With no other gigs to fall back on, I had to move on. It was a sad day! :-(