Kay Pentecost wrote:
>>The concerns I've got with this are several-fold, but here are three:
>>1) This assumes that the less-skilled developers have more domain 
>>knowledge, and thus know the better way to glue the controls 
>>together. This 
>>is not the case in my organisation at least (not as a blanket 
>>rule, anyway).
> 
> So that's an invalid assumption on management's case, right?

In general, yes. The idea is meant to be that the "less skilled" developers 
are actually developers in other technlogies, and typically know the legacy 
applications that are being augmented or replaced. As such, they are meant 
to have a good understanding of the domain already.

The problem is that they don't, in many cases. This is because of the 
development process used before didn't encourage them to understand the 
domain; it only encouraged them to build the application as specified in 
the detailed design document.

So, what you end up with is a developer who understands their application 
in detail (hopefully!). This makes them appear superficially familar with 
the domain, certainly enough to fool their management (who, being divorced 
from the business themselves, don't know better... more on this later). 
However, they don't have the deep understanding which a true domain expert 
would have, and this means all they can really do is build the same 
application again.

There are, of course, exceptions to this general statement.

> They're missing a crucial point.  People grow as they live. The most
> motivated will learn a great deal (I use myself as an example, modestly
> enough <grin>) and the least motivated will learn/grow in their own way.
> The most motivated to learn will leave as they get better.  

True. It's also true that we have adopted a deliberate policy of giving the 
less-skilled developers who show interest the (few) chances to work with 
experienced mentors. In some ways, this makes the gap worst; we end up with 
a gap of motivated and skilled developers on one side, and less-motivated 
and less-skilled developers on the other.

Without finding a way to interest the less-motivated people, I don't know 
how to solve this. The solution I would be inclined to use (gradually push 
them out of the door) isn't one that management wants to use.

> No matter how much actually training a job offers, some of us will get
> more... and with more training we'll be more valuable... and if the company
> doesn't acknowledge that, we change companies.  Every employee is an
> investment... and the ones who are motivated are the best investment...
> which the ignorant company is going to lose.  Why train people to work for
> your competitors?

Actually, that's the argument that management is using against _us_! They 
are concerned that investing a lot of money into developer training is a 
poor investment, not because it doesn't work, but because they aren't the 
ones who get the return. They want to use less-skilled people, _even if 
they aren't as effective_, because they don't need as much investment.

This says a lot about the attitude of management towards the turnover 
problem. It says that they don't want to solve it.

> Do you know what management's rational for doing this is? And why they are
> seeming to ignore the successful cases you cited?

There are a number of reasons, in my opinion. They are only indirectly 
related to what management is actually saying. :)

Firstly, we are an internal IT shop for a larger organisation. This is a 
bank and insurance company with about 8000 staff. The IT section is about 
800 staff, the vast majority of which are infrastructure, operations, and 
other non-developer types. The _developers_ are probably about 200-250 
people, all up, most of whom exist to support legacy (but vital!) 
applications such as our core banking and insurance systems (mostly COBOL 
beasts). These people are broken up into about 30 sub-teams, and have very 
little cross-team communication. There are about 50-60 people across those 
teams who are of interest to me in that they either are or will soon be 
using Java tools (my own role is limited to advocating for Java developers; 
while I do care about the others, I only have so much effort to spend).

So, for starters, we are a small group, but scattered so we can't 
effectively share knowledge. Many in that group are minorities in their own 
teams. There are probably 6-10 senior developers in that group; the rest 
fall into the less-skilled section. The two successful teams have half of 
the senior people; they are senior, BTW, _because_ of the knowledge and 
training they got by working in the successful teams. Effect, not cause. So 
the majority of the less-skilled are struggling. Management is reluctant to 
commit the senior people to mentoring on the grounds that they wouldn't get 
any other work done. Not surprisingly, the senior people we do have are in 
high demand.

Because IT is a separate division, there is a disconnect (at a management 
operational level) between IT and the rest of the business (our customers). 
The business side of the organisation sets priorities, largely in the form 
of budgets. IT is essentially given a shoe-string budget to handle normal 
operational concerns and minor work (called "business as usual" or BAU 
tasks). Most new work is managed as separately funded projects; these 
projects don't have much incentive to committ to long-term activities 
outside of the project such as training. It's no small co-incidence, BTW, 
that one of the successful teams has been engaged in a 2-year and still 
on-going multi-phase project - a long running project does have incentive 
to train. Unfortunately, the vast majority of projects are short-term (3-6 
months).

In short: the business side doesn't really care too much about the IT 
group. To the extent it does care, it focuses on the operational folks (the 
help desk, the system adminstrators, the network and telecomm guys, and so 
forth), partly because they're the majority. The software development 
people are left out in the cold.

IT's own management is disconnected from the business, and to make it 
worse, they're largely disconnected from their own teams. Senior management 
have all been in management roles for most of their careers (only a couple 
even had technical roles at the start). Even team leaders have typically 
been in management roles for several years. This means that management is 
largely unable to assess or nuture their technical staff.

The short-term emphasis supplied by projects, budget cycles, and 
performance review cycles discourages longer-term thinking. And the 
turnover situation, which like many companies is worse amongst the skilled 
staff, discourages investment in staff that requires a long-term to pay 
dividends.

In short: it's a culture problem.

We have been working to change this. But it's slow. And vendors coming in 
promising quick fixes don't help. Management that pays little attention to 
their own staff seems more than willing to believe a vendor who says that 
their latest tool du jour will solve everything. Go figure.

For my own part, I'm taking Martin Fowler's advice and, having failed to 
change my organisation sufficently, have decided to change my organisation; 
I finish up in about 5 weeks and am moving on to a company that will have 
different problems but at least doesn't have these ones.

Robert.

-- 
                "Software is too expensive to build cheaply"
Robert Watkins         http://twasink.net/          [EMAIL PROTECTED]


To Post a message, send it to:   [EMAIL PROTECTED]

To Unsubscribe, send a blank message to: [EMAIL PROTECTED]

ad-free courtesy of objectmentor.com 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 



Reply via email to