Yesterday I complete my weekly-blogs-time reading, I saw Oren's post: So when is it a good time to develop infrastructures ?! and I wanted to pay a special post for that kind of question.
First, if you didn't read his post, it is about time, I think that everyone who likes coding ask himself this question, and some other questions such: Why should I code at home, When should I see my wife and kids (for those of you who married), or What should I do to get home earlier. of course that we all enjoy our work and most of us could code till they sleep, and even then they still thinking about better architectures, algorithms etc.
There are many good answers to that issue (read the comment), but I would like to give here my way of thinking and hopefully hear your comments, of course that there some of you who would say that they couldn't afford it but as I will explain later it is like gold mining, where the gold is promised.
IMHO, if you and your company could afford it you should start thinking about a new (small) team for infrastructure/API. such team should get requirements from all other projects/teams and "help" the others to see their project from high-level, outer-perspective, neutral-domain.
I know that such team may look unprofitable but when you build such team you can gain many advantages:1) This team will test new frameworks & tools.2) Your DBA-s will be in that team, for better DB-infrastructures.3) Your best designers/architects (for those infrastructure will be there).4) Your other teams would reduce their time-schedule.5) You won't have to implement your ideas all by yourself. those Ideas/API/Infrastructures will get better maintenance.
GAT&DSL Notes:Microsoft new tools (GAT&DSL) are kind of tools that shouting architecture, I see those tools as efficient ways to guide projects faster to the main issue, but a mediocre team would not pay much attention for such tools because they "time-consumers", in other teams (perfection seekers) this kind of tools most likely learn at home (spare time).
I also know that such "unprofitable" idea would be harder to convince the managers, especially when you are doing perfect job right now, everyone will say: "hey, but everything works why to pay for more persons?".But like every other idea you should create solid demands, and explain your reasons (you can call this the "Why" excuse) and I am quite sure that they will understand it.
Oren:If you want we can sit, talk and improve the demands for such team.
Readers:What do you think? What other requirements\fields of interest should be in such team? How would they integrate between projects?
Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.