If you are a medium/large consulting partner, your job descriptions should be very well honed towards how you run your projects – otherwise you will (1) never hire the right people, and (2) always be delivering sub-par projects.
The project roles are quite distinct, and they have their strengths that complements the others beautifully.
For medium and larger projects, you need a Technical Architect is there to make sure that the overall solution is technically sound, and aligned with the company’s strategy and future roadmap.
A good Business Analyst, or Functional Consultant is necessary to understand the business and how they work, to elicit requirements well, and to design the system in a way toat optimises user experience and adoption.
She works with the Technical Developer to build custom components correctly, without over-engineering the solutions.
The QA or tester, is there to make sure what we deliver is robustly tested before it’s handed over to the client for their Acceptence Testing.
And the Project Manager (me), deal with everything else, so that the team can totally focus on just doing what they are great at.
Yes – smaller implementations may require that a consultant wear many hats, and may be required to plan, design, build, test and deploy the system.
I’ve seen job descriptions for large consultancies that combine those requirements in a JD: Looking for developer who can run workshops, gather and document requirements, build the system, test and roll-out to customer.
Trying to ‘save’ cost by asking for someone with all these skillsets will result in you getting Jack of All Trades, and Master of None.
And that is no way to build great software.