views:

59

answers:

5

This question goes beoynd just programming, but I'd like to get some input on this, if that's okay with the community. Preferably from people that do a lot of coding themselves but also manage other people coding.

My problem is this. We have all these ideas that we know is good for the overall strategy of the company and the problem is not figuring out what to do, it's to come about this change. Just telling someone to do things differently isn't enough and it's hard to promote a mind set that is shared within all of the company, (this will take time). If I could jump forward I'd like it if we could create a very nurturing company culture that promotes these ideals cross all areas but I'm not sure what tools to use. And by tools I mean anything I'm legally permitted to do.

e.g. we could talk about, we could arrange traning sessions, we could spend more time in meeting (talk about it more), we could spend more time designing, we could spend more time pair-programming, we could add/remove incentive or we could encurage more play. Ultimately if we did all of these things what will be the recurring theme that ties this together. I'd like to be able to answer the question -- why should we do things like this? -- and come up with an answer that explains how important it is to think about our ideals from begining to end.

I've puposly avoided to talk about or specifics of the situtation becuase I believe that it narrows things down too much. But I guess, by know you either know how to answer this question or you're as confused as I am ;)

I'd love to hear from people who had to bring about a change in order to go from chaos to order, or fix something in the organization which wasn't working. And I'd like to hear it from the perspective of the developer and designer.

-- or --

You could simply weigh in on what are the most important qualities in an organization encurage or stimulate rigid fun development cycle from start to finish?

+2  A: 

I don't think that it is legitimate (I make no comment on legality) for a manager to expect to change the way the managed think. It is legitimate for the manager to expect to change the way the managed behave, ie what they do and how they do it.

Especially in our business of software development I think you are much better engaged in focusing on products and processes than trying to overtly manage the personal growth of your staff. Agree what needs to be done (creating software, implementing processes to support creating software) and who needs to do it, then get on with it. It's very simple.

Yes, some of what needs to be done is training and some of that training will focus on working with others whether as colleague or manager, but you ought to be trying to build an effective team, not one in which everyone's monthly cycle harmonises and you all cry together when a post-commit test fails. And yes, it is an absolute requirement that everyone in the team be able to work effectively with everyone else, but that doesn't mean that everyone has to share views, friendships, attitudes, and so on.

Reading your post suggests that you are more concerned about making work a nice warm and cuddly place to be than you are about getting stuff done. Ask your team how much more time they would like to spend in meetings, especially meetings in which you propose to invite them to share their feelings about work.

If I was exposed to a very nurturing company culture I'd back out carefully and never come back. I, and I suspect many other SOers, want to get intimate with silicon-based life forms not the carbon-based life forms which clutter up our podspace. And your mention of a rigid fun development cycle makes my trigger-finger itch.

High Performance Mark
Well, ask yourself what's important to you. That's subjective, and If I would manage you I would make damn sure I knew what you needed to excell at what you do best. If that's leaving you alone, fine, but I doubt it's as simple as that. People tend to tire very quickly in meetings if there's no real value to be gained, but part of my job is understanding why and making sure there's value in everything and promoting a way of thinking. I will from time to time be very harsh on people and I don't hold their hand. But I do want to give them something to be inspired by, to do better.
John Leidegren
A: 

I think that a well managed scrum is the right answer. It is iterative, the team learns from the experience, you have summary\ retrospective meetings which, when the people are cooperative, very very helpful, you can easily track your product needs and get customers feedback very early. Both from professional\ personal aspects. From a quite long term view (I work in a scrum team for ~13 months) - to my opinion, it does bring changes in mind set. (In addition to other benefits you have from the scrum methodology - ask who does it!)

rursw1
+1  A: 

The tool is called work contract. You have no right to change how your manmaged people think - but you have ANY right to enforce that their actions follow your determined policy. Whether they like it or not - it if their job to do as you said. This is what you and them get paid for.

I have been often in companies with idiotic policies (as a contractor). I can point them out in a four eye meeting with the respective manager. But working at them it is my duty to do as they want, think their way and in general follow their policies. Non-negotiable.

I expect the same from any employee. Whether he likes it or not is not my problem - if he does not follow policy, he has no right to work in my teams.

If you think this is harsh - the military is known to shoot people not following orders in times of war, and will gladly throw them out (after prosecution) in non-war-times for not following orders.

TomTom
@TomTom: I don't think you are being harsh at all. Maybe a tad hypocritical: for a contractor to lecture employees about their need to submit to the lash is a bit rich. Yes armies shoot mutineers, but observe also that they tend to shoot the generals whose troops mutiny too.
High Performance Mark
Well, I also have employees. I do fire people with the wrong attitude to harm the team. Not following policies is reason for immediate termination after a warning - for breach of contract. Harsh? Why. Employee signs contract. I expect it to be followed. No real money for funny behavior.
TomTom
Telling someone to just do it, doesn't work for me. If it's a problem then that's a question wheter this company is a good fit for this person or not, but just becuase polices aren't being followed is not grounds on which I would terminate a contract. It typically points to some other kind of problem with working conditions. I'd rather work with people than replacing malfunctioning parts. I might not have the right to dictate terms but I can bring about change, simply by listening to people.
John Leidegren
But actually AND technically people are part of a machine - or arrogant asses. Policy may make no sense from an employees point of view - but it does not mean it makes no sense at all. An eployee just not following policy is - willfully breaking his contract. Which means open for prosecution (recovering damages etc.). Not saying one should not raise the issue with management without causing upstir, but at the end making decisions is what higher management is paid for. These days too many (mostly mediocre) people think they have the right to be individuals - while being paid for being parts.
TomTom
If you want to things ONLY as you want, then basically found your own business. And gues what - then you will have to deal with the same argument from the other side, as employees are ignoring policies that are set up for SOME reason (even if only "better than no policy", like so many coding standards are actually just there to have SOME - so code looks similar).
TomTom
Another aspect of that is that we need our developers to thoughen up, we need to encurage them to develop and grow themselves. It's hard to motive someone to do just that, but it's a requirement for staying in the game. Adults are surprisingly so not motivated by just money. I'm trying to learn what makes our developers wanna learn more (Andragogy), but that's a hard nut to crack, and I know from experience that implementing policies is difficult, becuase they reject the policies if it conflicts with theier personal opinion, which messes with the success of the policy. People are not rational.
John Leidegren
+1  A: 

While I agree with the other commenters that making not following procedure / policy could just be a disciplinary matter, I think it's far far better to engage people and get their buy in and agreement with a methodology.

In my team we've recently been trying out different approaches, like different ways of doing code reviews. Historically we've done them in a particular way, none of us have enjoyed them and they've become a chore to be avoided rather than a useful tool. So, we've started trying different ways of doing them, and after each session we break down what worked well and what didn't. Hopefully at the end of the trials we'll have a set of processes that we know work for us as a team, and no-one will feel like they're being forced into doing anything they don't want to because everyone will have seen first hand the benefits of doing things in whichever particular way.

Vicky
Do you think you can share your current code review process -- or is that just a result of iterations of the code review process internally? It would be intresting to hear what worked particularly well.
John Leidegren
it IS a disciplinary matter. Policy may be there for obscure reasons (coming sometimes out of legal requirements or advice). People FIRST get paid for fullfilling a contract. Now, in your case, the playing around was agreed upon. But at the end, nothing is forced down an employee - he agreed on following policy in the first place. Failure to do so is 100% ONLY a disciplinary operatoin.
TomTom
We're still in the process of trying different things, so I don't think I can really say we've got a fully working process yet, but aspects that have worked well for us so far have been: don't make people read the code beforehand, project it up on a big screen during the review; instead of completing a code review report just enter issues directly into issue tracker during the review (with a tag to indicate that they arose from the review); only review small pieces of code at a time; and only have a max of four people in the room (including the code author).
Vicky
+1  A: 

I strongly disagree with many of the posters here - I think it IS the task of a good manager to care about the mind-set of your employees and to get them to embrace what you're - all together - trying to achieve as a team (or for the company). I'd go even further: if you "force" your software engineers to do as they are told because you have the means to do so (quoting "The tool is called work contract"), you will - at best - get avarage results. You need to motivate your people to get the best out of them (and real motivation is usually not fear of losing a job, but I guess that's old news ;-).

I'm also managing a team of developers, and I usually aproach them on a "personal needs" basis - some guys need to talk a whole lot about new ideas, not necessarily in meetings which most developers do not like (I have more good exeriences concerning coffee-break or after-work beer talks than with official meeting), others need a simple short one-time talk, still other want you to "hold their hand" and simply be there for all the questions that arise during a change, and still others continue to be skeptical for a long time (you usually can get them with persistance, patience and some humor).

Maybe my viewpoint is very European, but I (and my company) highly value employees who question the things they are told to do and not blindly follow the policies.

So, to sum it up: the "tools" I use are mainly communication, and encouraging people to "let's try something new" (which usually works out if you react to the concerns arising) - it also helps to get the mayor players on your train first, because others with less strong opinion then usually tend to follow ("if our guru xy is doing that, it can't be such a bad idea"). Very important: just be there when people have doubts or questions, and hear them out & offer solutions (or really explain why you do not consider their point).

Many things turn up only once you're on your way to changing something (e.g we're currently transitioning from the waterfall model to a scrum model that will fit our development structure), and don't be afraid to try things as long as you're able and willing to explain them.

ISW
I'd like to give you +2 for this but maybe that's just becuase this lines up well with my own way of going about change. How's the transistioning to SCRUM going?
John Leidegren
Thanks :-)We're just in our 1st iteration in the scrum process, so hard to tell yet - the team members partly still think and work according to the old waterfall model (though they say they like the idea of the new method ;-), so still a bit of work to do - be we have a few more iterations planned, and hope to use what we learned from the first one when we start the next (in a few days)...
ISW