141

You are really talking about technical debt. Maybe a metaphor would help your managers. I often compare the effect of technical debt in software to cooking in a dirty kitchen. If the sink and counters and stove are piled with dirty dishes and there is trash on the floor, it takes longer to make a meal. However, the fastest way to prepare the very next ...


112

I fail to see how they currently add value and is scheduling meetings, booking offsites and other administration works enough for their role? Don't underestimate the amount of interaction your manager does with other departments. They handle budgets, training plans, HR paperwork. They protect the developers from getting sucked into meetings with other ...


106

Actually, this is a very difficult question because there is no absolutely right answer. In our organization we have been putting better processes in place to produce better code. We updated our coding standards to reflect how we, as a group, write code, and we have instituted a very strong test/refactor/design/code loop. We deliver continually or at least ...


92

"Now orders, without discussion, have come down that everyone is to switch to Eclipse." I think that this is the real red flag. Your team is the expert on software development and the one to be affected by the decision, and yet you did not get to say a word in the discussion that resulted in this order? It sounds like over-managing by pointy-haired bosses....


92

A genuinely terrible programmer can have sub-zero productivity (the bugs they introduce take longer to fix than it would take to just do all of their work for them). And a genuinely great programmer can do things that poor and average programmers would simply never achieve, regardless of how much time you gave them. So for these reasons, it's hard to talk ...


77

It sounds like you are placing too much effort on having well rounded individuals and not enough effort on having a well rounded team. There is nothing wrong with being good at something--in fact, that is probably why he was hired! You should be thankful to have someone who is good at programming to begin with. You stated: ... it goes against my ...


76

Here's what you do: Let them know that the candidates they are sending you are all unqualified Give them your minimum qualifications Reject anyone who does not meet those qualifications. If they refuse to give you resumes of anyone who meets your qualifications, then you have done your part. Regarding ethics, you don't have a responsibility to replace ...


69

Have you spoken to your development colleagues about this? How do you know they lack education? That's quite a sweeping statement and you'll probably find you're wrong. I don't think it'd go down too well if a new grad started meddling with processes without understanding why they're like that in the first place. Managers love processes and love tracking ...


63

It is reasonable that when you working together on a common project, that on every workstation you have all the tools available to edit/build/debug your software, and that the core tools for doing about 90% of the development are known to everyone in the team. That goal is harder to achieve if your team is growing and everyone uses his personal favorite ...


62

One thing I've realized in my career is that there is always time to do it right. Yeah, your manager might be pushing. The client might be pissed. But they don't know how long things take to do. If you (your dev team) don't do it, it's not getting done; you hold all of the leverage. Because you know what will really cause your manager to push you or your ...


55

What makes you so special? My CPU says it works and I want to go home. Why are you bothering me? You can deal with this attitude by forcing everyone to issue pull requests. But now the deadlines are looming. Bad code presses on the gates of your pristine castle and you finally give in to the pressure. Or you win only to find everyone leaves and no one uses ...


52

It sounds like what you're doing is basically equivalent to a code review except that rather than providing feedback to the developer, you're making all the changes that you would suggest in a code review. You'd almost certainly be better off doing an actual code review where you (or someone else) provides feedback to the original developer about code ...


49

This should be a surprisingly easy problem to solve. Have a second meeting with him. Tell him that you accept that it's probably your perception of reality that is at fault. Then qualify that with "however, if that is the case then we need to work together to improve my perception." Finally challenge him to solve that problem, so he doesn't feel micro-...


47

You've stumbled across something that plagues programmers everywhere at some point in their careers: this code needs to be refactored, there are architectural issues over there, this module is becoming unmaintainable, etc. Because of the present culture of your organization, however, you're being pushed to focus on work that only yields directly visible ...


42

Is there a social or technical solution to this? I suppose, but this isn't a problem. Your manager should know what you guys are doing. They should make sure that you're not doing a bunch of work that provides no value, or why non-ticket work was prioritized. There is no harm in this. In an ideal world, it will provide benefit, because your manager can set ...


41

A pretty thorough overview and analysis of research about productivity differences is provided in two articles written by Steve McConnell: Productivity Variations Among Software Developers and Teams: The Origin of "10x" Origins of 10X – How Valid is the Underlying Research? First article (Productivity variations...) states: ...The original study that ...


39

You are catching some heat here in the other answers for your decision to "do something" about this guy, but I fully get what you are saying. If the other team members "would all prefer to be coding, rather than doing these more mundane tasks" then they are going to be annoyed that you are rewarding the bad performance of the poor communicator by giving him ...


37

You probably can't change their mind I went through almost the exact same situation: I was hired as a non-programmer by a company with 50 or so employees, saw a need, and over the course of several years, taught myself programming and built a fairly sophisticated intranet system for them. When I got ready to leave, I wanted to help with the transition, for ...


36

You don't. I see this question and all questions like it as a bit of a dead end. You can't "convince" people of anything. If they aren't already aware of things like this or investigating it, chances are they don't give a flip. And no amount of data will convince them otherwise. Change must come from within. You can lead a horse to water but you can't make ...


36

The best managers are magicians. They make the rest of the company disappear for their developers. I can't remember the exact quote from Joel but it was something to the effect that it's management's job to make sure there's a fat Internet Pipe, a beast of a machine, and lots of caffeine so all the developers have to worry about is what they do best. A good ...


35

The idea is to avoid doing work that's not necessary, i.e. "maximize the amount of work not done". So if in a traditional project you would plan and build a great abstract base system to allow for all your possible needs later one, you just skip that and build the simplest thing that can possible work for the current requirements. Don't build stuff that you ...


35

You're making a number of mistakes here. The first one is assuming that a Scrum Master is a manager. They're not. They're basically an administrator-cum-facilitator. They make sure things happen on the Scrum schedule, but they don't have to tell you how to, if you're a fully-mature Agile team. It mostly just happens. But they don't monitor the quality of ...


34

First, be clear on the specific steps that management should take. "Give your programmers more breathing room" is too vague, not actionable, and not measurable. Second, identify the actual problem. Why are your programmers pulling all-nighters? There's always a root cause or causes, and that root cause does extend beyond "we don't have enough time get ...


33

Calculate how much hours you save with this per week. Multiply the amount with your workweeks per year. Multiply this with the amount of money they pay you per hour. Subtract the price of VS2012 Prof. from the result.


31

In my understanding a mature team is fully self-managing. Let's assume for a moment you're correct. I don't know one way or another, so let's not discuss it. The issue comes that even a self-managing team ends up with someone with good social and political skills that can represent the team to other departments. Someone who keeps track of what everyone is ...


30

Remove the parenthetical comment. What remains is "Simplicity is essential", which by the way is an application of the principle to its expression itself. Simplicity is essential, because you have distilled what you really need, removing what is making the task at hand heavier, less elegant: complex. I have always interpreted in the sense of Pascal's take ...


30

Facts and Fallacies of Software Engineering states (Fact 2, available in amazon preview): The best programmers are up to 28 times better than the worst programmers, according to "individual differences" research. Given that their pay is never commensurate, they are the biggest bargains in the software field. (look sources list there for research) Of ...


30

It sounds to me like you have a dysfunctional team with a cowboy culture and you're trying to figure out what the root cause is. You are proposing a hypothesis that maybe developers don't respect test because of some sort of implicit hierarchy or length of service or some other factor, but you're not necessarily presenting evidence for the case, you're ...


29

As it applies specifically to software development, there are two sorts of value-adding roles for managers: project management and team leading. A project manager interfaces with clients and middle management, which is a time saver for the developers. Often there are clarifications or scope changes that come up in projects, and it is helpful to clients and ...


28

Help them to understand why they should make your suggested change. And listen to them if they have a good reason not to make the change. Have a discussion, and come to an agreement on the basis of what is the best thing to do. This approach is important for the following reasons: You want them to be making the change because of solid business/technical ...


Only top voted, non community-wiki answers of a minimum length are eligible