Martin Fowler says he prefers functional staff organization over technical staff organization, and I must say that I agree. My current client has moved all of the technologists out of the business units and into a "CIO" organization. It isn't working very well because the customers no longer have day to day conversations with the people that are building their applications. This leads to longer lifecycles and thus wasted money because of a lack in communications between functional and technical crews.
Most of the teams at the client site don't have an on-team functional expert, so when they talk to the customers the cranky "my old system used to do it this way, this new fangled way is unacceptable" person is the only one that is offered up to help determine the requirements. Any enhancements that the developers may wish to make to the system are swepted under the rug because it isn't "like the old system". I seem to have gotten lucky to be on a team that is small, nimble, smart and has a good representative of the customer that is forward thinking. I am probably on the most "agile" team onsite and love going to work every morning.
Mr. Fowler is right about another thing, the business units end up making their own solutions. "If you can't beat 'em, join 'em" is the only solution to this "breakdown". Let the techies and business units mix. But support communication between the techies in different business units through bulletin boards, blogs, wikis, and mailing lists.
Also, don't be so foolish as to give the techies two bosses. A former employer tried to create a dual chain of command and ended up going back to the old way. The concept looks good on paper, day-to-day you have a functional boss and your assessment is done by someone that knows your expertise, but quickly breaks down in the confusion of who am I supposed to call when I have need to change my health care provider. My functional boss, who knows what I am doing on a daily basis, is perfectly capable of judging whether or not I am effective even if they don't know the first thing about how to write code.
Posted by carl at August 9, 2004 02:33 AM
Comments