After being in a meeting on how to increase team effectiveness and increase the quality of the products we're trying to build, I thought of the process of building teams based on a common passion.
Diving deeper, have you ever met a creative person that loved designing social networks? What about a designer that loved creating interfaces on Mobile platforms? Have you ever met a developer that loved building software that connects people? Why is it that teams in the agency realm with multiple disciplines can't grab a group of people who have a common passion. This is totally different from basing it on "skill set". It's about what they love to build. For example, my skill set ranges from backend (multiple databases, multiple integration languages, localization) to frontend (html, css, js) on different platforms like web and mobile; however, I love building social networks on mobile platforms and how you can integrate with different 3rd party services like Flickr, Facebook, Google, and Foursquare. I strongly believe that the world is moving towards Mobile and some form of secure way of sharing data between different services.
In our current ways of doing things, employees (designer/developer/project manager/quality assurance) are just "resources"--they're thrown around on to different projects with barely any context. Context switching is so expensive--ramp up time, meetings, discovery, and rebuilding a shared vision.
If the overall goal is to secure projects so we can gain revenue (what comes in is what comes out) without knowing exactly what we're trying to build then the designers and developers should have full rights to opt-out of the project. As in, they shouldn't have to build something they're not passionate about. What does the company need to do then? Hire contractors. I'm lucky to have landed a few projects that I've been quite passionate about but I've also had to deliver projects which I totally wished I wasn't associated with. The quality is quite obvious.
My only suggestion to companies that are paralyzed in this state is to try and interview your designers and developers. Figure out what they really love making. Ultimately, humans intrinsically love to build things on their own--why not leverage this aspect of human behaviour to build better software?
Good luck and have fun,
Jaime Bueza is a software developer in Vancouver, British Columbia, Canada. He has developed web applications for Nintendo, Starbucks, Electronic Arts, Ritchie Brothers, Kiwi Collections, Cox Communications and Microsoft. When he's not developing useful software that constantly evolves with business requirements, he's creating tutorial videos for aspiring front-end developers.