What does outsourcing imply?
Out of sight, out of mind?
While outsourcing development is commonplace, the architect role (or some of its functions) often remains in-house. I guess this is partly to do with the nature of an architect's interactions with stakeholders and their technical authority status but in my experience it can be a very awkward position. It can be hard to work anywhere near the best of your ability as all your techniques for improving productivity, quality and communication are powerless in the face of a fixed contract, exclusivity clauses, time differences and even ideological differences to name a few!
But perhaps this is telling me that I'm not the person for the role? Or perhaps I'm just not behaving like the person for the role? Perhaps I shouldn't be falling back on my tried-and-tested techniques; after all, they may not have been tried and tested in this type of environment.
Wherever a project is outsourced it is worth ensuring you know what drove the decision as there could be key architecture-influencing drivers:
- does cheap development resource imply there is extra budget available for other things?
- does cheap development resource imply that there is very little budget available overall?
- does readily-available development resource imply that there is a requirement for the team to scale quickly in future for some reason?
- has a niche skillset been specifically contracted?
- has a particular team been chosen so as to leverage some existing IPR?
The consequences of the answers to these questions should be fairly evident for the architecture. I've found it worth checking from time to time that I'm behaving in accordance with those drivers rather than solely relying on my usual/preferred approach:
- should I back off to reduce costs when things are "good enough"?
- am I preventing the development team working how they want to work, regardless of whether I like their way?
- will delegating more responsibility actually improve communication?
- are there people better skilled/placed to undertake my tasks, particularly those with niche skills?
- should I be mentoring the development team, vice-versa or neither?
- who's paying for my time and who's benefitting from it?
- do I just need to stand my ground in spite of their contract, expectations, preferred methodology, ideology, etc.?
Re: What does outsourcing imply?









Kevin has been working with Java for 10 years, in defence research through dot com to investment banking. Currently he works at 

