Hot answers tagged

433

How do you deduce they are not working? As a junior I typed all day, hacking away at my code, with just 20 minutes for lunch. The more "senior" I got, the less time I spent typing and the more time I spent thinking. If I "stare at the ceiling" and my producer walks into the room, she starts to smile, because she knows in half an hour I will have solved a ...


227

Many companies are certifiably insane around this. Seriously. If you asked 10,000 tech mangers, "Let's say you paid Danica Patrick $100,000,000. Do you think she could win the Indianapolis 500 by riding a bicycle?", I'm sure not one of them would say, "Yes." And yet a good percentage of these same managers seem to think that highly-paid software developers ...


186

My response would be to say "I'm a little busy right now, can you email me and I'll deal with it later". Chances are some of his questions are legitimate, by forcing him to email you it doesn't interrupt your flow and he is unlikely to bother detailing the problem in an email if its trivial. You then also have a record to show to management if his questions ...


170

I would suggest that, in reality, one cost is visible and quantifiable, while the other cost is neither. If failing to upgrade the hardware bleeds even as much as $1000 per developer per week from the budget, no one outside (read: above) the tech department ever sees that. Work still gets done, just at a slower rate. Even in the tech department, calculating ...


170

From The Pragmatic Programmer, Tip #8 "Invest Regularly in Your Knowledge Portfolio": Learn at least one new language every year. Different languages solve the same problems in different ways. By learning several different approaches, you can help broaden your thinking and avoid getting stuck in a rut. Additionally, learning many languages is far ...


141

Sounds like it would do more harm than good. Ignoring for a moment whether it is fair for a manager to do that, let's look at the logistics... Problem 1: Are all bugs created equal? Developer 1 introduces a bug: Erases all customer data and curses at them. Developer 2 introduces two bugs: Form labels are not left aligned, and the calendaring feature is off ...


140

good code that only can do A is worse than bad code that can do A, B, C, D. This smells to me like speculative generality. Without knowing (or at least being reasonably sure) that your clients are gonna need features B, C and D, you are just unnecessarily overcomplicating your design. More complex code is harder to understand and maintain in the long run. ...


136

Run away, run very, very far away. And fast. You can try to talk to your boss about the situation, but from what you've written, it sounds like there's a fundamental lack of understanding about the importance to programmers of communication with outside resources, general collaboration, and just taking your mind off your work for a minute or two. Frankly, ...


133

I've had similar problems as you do. The two main strategies that have helped me are Only one project at any time: I've suffered from following more projects than I can count on my fingers, each "clamouring" for attention. Now I've radically cut down on projects either by finishing them "once and for all" or by simply dropping them altogether. Earlier ...


130

The later you test, the more it costs to write tests. The longer a bug lives, the more expensive it is to fix. The law of diminishing returns ensures you can test yourself into oblivion trying to ensure there are no bugs. Buddha taught the wisdom of the middle path. Tests are good. There is such a thing as too much of a good thing. The key is being ...


125

Try the following analogies: First one: "How long does it take for you to fall asleep?" "X minutes" "Now imagine that when you are close to falling asleep, someone walks in and interrupts you, how long will it take you to fall asleep now? Those few seconds you had left, or will you have to start again to 'sink back' to where you were?" "I'll have to start ...


125

I feel like I am staring into a mirror of me from seven years ago...I will share with you my experience. I was in a position like yours. Within a year I was senior level at the company I was at and I seemed to be churning out code twice as fast as everyone there. This went on for another couple of years before I got bored. I then went on to a much, ...


117

I wrote a little commandline utility called 'alert' which will cause the computer to beep / play a sound / etc. Then, when I have a lengthy command to run such as a make, I run make; alert. Where I can, I will also have it take an argument so it makes a different sound depending on the argument. Thus I can do make; alert $? and I'll know a) the build is ...


110

Courtesy of Seth Godin: Yak Shaving is the last step of a series of steps that occurs when you find something you need to do. "I want to wax the car today." "Oops, the hose is still broken from the winter. I'll need to buy a new one at Home Depot." "But Home Depot is on the other side of the Tappan Zee bridge and getting there ...


110

It Happens Unfortunately we don't always get the credit we deserve, or management will give credit to the people directly under them, who do not necessarily have the power (or honesty) to bestow some of it upon you. It's an organizational thing: by way of the organigram, it should trickle down; except a few people act as dams. I'm afraid that's what ...


104

I have the same problem, and the solution for me has been to spend the time doing something which will not get you sucked in. For me, this is usually either (1) filling up a water bottle, or (2) standing up and taking a 30-second walk around the office to stretch my legs, which need the movement anyway. You can get lost browsing the internet; you rarely get ...


103

The trouble with those policies, (IM are only an example ; you could also quote firewall blocking some websites), is simple : they believe they can force people to work by cutting their distractions. Fact is, when one doesn't want to work, one will always find a way not to. At the end of the day, what matters is if the job's been done.


102

Personally, I would want the company to just sort out the equipment I need, not give me a budget and make me to deal with all the research, negotiation and other hassle that goes into buying and installing corporate hardware. In the end, all I want to have to do about hardware is state my few requirements, and have someone else do all of that work, so ...


100

I agree with the rest of the answers but to answer the what is the time difference question directly. Roy Osherove in his book The Art of Unit Testing, Second Edition page 200 did a case study of implementing similarly sized projects with similar teams (skill wise) for two different clients where one team did testing while the other one did not. His ...


95

I will put my 2 cents in here from the employer's side ... who is also a developer. I agree that low end machines are useless but top end machines are overkill. There are a number of reasons why you don't get the top end machines: Cashflow is a real issue, not just a theory. You might be getting paid $60K-$80K per year, but this month we have a total ...


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 ...


90

Well, I said my piece on this here: When you're a fast, efficient typist, you spend less time between thinking that thought and expressing it in code. Which means, if you're me at least, that you might actually get some of your ideas committed to screen before you completely lose your train of thought. Again. Personally, I can't take slow typists ...


89

The Discipline of Finishing. Like many software engineers, I have a tendency to accumulate projects until I am contributing so little to each one that none of them makes meaningful progress. Couple that with a classic ENTP personality type, and you get a busy, interested and ultimately unproductive programmer. Over the years, I have learned and practiced ...


86

Thinking about these things is definitely good, but don't let it stop your progress. One approach that works really well (especially with iterative development) is to implement a simple solution and then refactor as necessary later. This keeps the code as simple as possible, and avoids over-engineering. Most of the performance or architecture changes you ...


84

Ask your executive how many pages of contract his lawyer can write per month. Then (hopefully) he will realize that there's a huge difference between writing a single-page contract and writing a 300-page contract without loopholes and contradictions. Or between writing a new contract and changing an existing one. Or between writing a new contract and ...


82

In 16 years I've never actually found a workable metric of the sort you're looking for. Essentially to be useful anything would need to be measurable, representative and ungameable (that is the system can't be played by clever developers). There are simply too many variables within software development to make it measurable as piece work in this way. The ...


81

Are you describing a feeling of: 1) I don't really want to be working on this? or 2) I'm stuck? I don't want to work on this Some people do better with deadlines. Peel off a reasonable chunk of the task and set a deadline. Sharing deadlines with others can help keep you accountable. One of my favorite tricks is to start each day with a sheet of ...


79

I had no prior experience when I interviewed This sounds like it is your first job in the corporate world. I like having IRC open to talk in a few different rooms during the day and keep in touch with friends/family over IM Don't do this. There are a lot of companies who work in regulated industries where IM is totally banned. There is a time for ...



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