Live data from Hacker News

Beware of Developers Who Do Negative Work

blog.professorbeekums.com

221–230 of 271 posts

Re: Beware of Developers Who Do Negative Work

#221

The "convoluted code" gauge is a double-edged sword. You could also be working at a company with developers who have no experience with the benefits of functional programming. In this scenario it's those who write nested loops, branching if-statements, and mutating side-effects that are in charge and you're the bad developer for using fold and map. You could be seen as an elitist who likes to write clever, obfuscated…

There is a lot of value in conforming to however the existing code base is written. Some of the worst (in terms of time/money spent maintaining) code I've seen is code that sticks out for being different, even if it's arguably faster / more modern / uses better practices. Some C++ examples because that's in my wheelhouse:

1. Entire code base is "C with classes" or OO, but That One Guy on the team insists on sprinkling functional programming constructs all over the place. Now there's a huge overhead for the rest of the team who need to switch gears every time they encounter that code.

2. That One Guy who insists on doing everything with macros in a code base that otherwise makes very light use of the preprocessor.

3. Company standardized on using the C++ constructor to initialize classes, but That One Guy writes a seperate init() method on each of his classes and leaves the constructors empty.

4. (iOS/Objective-C example) Entire code base uses old-school delegate callbacks but That One Guy needs to write all his stuff using the arguably better block style.

It could be even as silly as:

5. Entire code base uses camelCase for variables and function names, but That One Guy insists on using_underbar_style. Now every time you have to call something or pass a variable around you have that tiny bit of overhead double checking which style needs to be used.

Re: Beware of Developers Who Do Negative Work

#222
post #206

Earlier quoted context omitted.

> I've seen so many horrible managers in this industry and they always get away with it by blaming the engineers. Same. Been there, seen that. Seen good managers, seen bad managers, seen place without managers. I don't understand why there are managers in this industry.

As someone with a fantastic manager: it's great. He handles the planning and resource allocation for projects and makes sure that I have everything I need to be able to develop, this includes making sure that any external dependencies (like people not on our team) do their stuff and that the team as a whole is maximizing our time. Whenever for some reason something is blocking me that isn't directly code related, he'…

Any senior or lead could handle the planning and the resources.

We both agree that there is something to be done. I personally noticed that it doesn't have to be assigned to an full time manager position.

Re: Beware of Developers Who Do Negative Work

#223
post #61

Earlier quoted context omitted.

On the surface, I think you're describing fire-fighters (who are loved for solving high-visibility problems), but in retrospect, I think these are also developers with very high reading comprehension and reasoning abilities. That may not make them great designers and architects (though some are), but they can see code for what it is and fix it, as in "The Big Lebowski", "in the parlance of our times" (in other words,…

I mean, if you understand spaghetti code just as easily as any other code, why wouldn't you write it? It would make no difference to them.

And here you see why one should be wary of hires who are too close to the computer, e.g. most CS graduates.

Re: Beware of Developers Who Do Negative Work

#224
post #199

Earlier quoted context omitted.

> I've seen so many horrible managers in this industry and they always get away with it by blaming the engineers. Same. Been there, seen that. Seen good managers, seen bad managers, seen place without managers. I don't understand why there are managers in this industry.

A good manager minimizes the amount of time a developer has to spend on stuff that isn't developing. In the right situations, a good manager can make a team of a few devs far more productive than if you added another dev in place of that manager. Bad managers, of course, can be disastrous, though.

Most stuff isn't developing.

Designing, planning, architecturing, reviewing, developing, testing, delivering, maintaining, presenting...

That's all a developer's jobs. I don't think that they should be strictly limited to "that guy who's got a special job title" (architect, managers, lead, whatever).

Re: Beware of Developers Who Do Negative Work

#225
post #199

Earlier quoted context omitted.

> I've seen so many horrible managers in this industry and they always get away with it by blaming the engineers. Same. Been there, seen that. Seen good managers, seen bad managers, seen place without managers. I don't understand why there are managers in this industry.

A good manager minimizes the amount of time a developer has to spend on stuff that isn't developing. In the right situations, a good manager can make a team of a few devs far more productive than if you added another dev in place of that manager. Bad managers, of course, can be disastrous, though.

In my book, the best managers should work for the team, not the other way around.

Re: Beware of Developers Who Do Negative Work

#227
post #199

Earlier quoted context omitted.

A good manager minimizes the amount of time a developer has to spend on stuff that isn't developing. In the right situations, a good manager can make a team of a few devs far more productive than if you added another dev in place of that manager. Bad managers, of course, can be disastrous, though.

In my book, the best managers should work for the team, not the other way around.

Be careful with this. It's usually a sign of a political double-talker. The manager hasn't forgotten who he works for, even if he wishes you would.

Re: Beware of Developers Who Do Negative Work

#228

Earlier quoted context omitted.

I find a lot of CS education is not applicable to most SE roles, as they operate at a higher level of abstraction. I've never had to implement a binary tree, if I did, I would be reinventing the wheel. A lot of the necessary skills are hard, if not impossible, to teach in higher education. Mainly because there, you tend to be given an exact, unambiguous specification. Whereas in the commercial world, I've never seen…

> Implementing the code is the easy bit :) For web forms that replace an Excel spreadsheet, the kind that usually gets passed around over email or in a Dropbox, yes, the business requirements are usually the ones that are problematic, as you are expected to grok a lot of domain specific details in only a couple of days. But then again IMO, your experience is biased by the problems you've been working on. > I've never…

> If you actually had problems involving trees, you'd know that besides the usual data-structures we all know and love, problems involving trees and graphs rarely have prepackaged solutions...

You seem to argue that having deep understandings of these types of issues makes you a better employee in the long term because eventually you will come across a hard problem that requires these skills. I would argue that an engineer who doesn't have a great grasp on the internals of fundamental CS data structures, but knows how to priotize time, will work on somebody else's mess or deal with corporate BS without complaining is more valuable both in the short and long term.

These types of engineers are just simply better and more productive to work with.

Re: Beware of Developers Who Do Negative Work

#229
post #206

Earlier quoted context omitted.

As someone with a fantastic manager: it's great. He handles the planning and resource allocation for projects and makes sure that I have everything I need to be able to develop, this includes making sure that any external dependencies (like people not on our team) do their stuff and that the team as a whole is maximizing our time. Whenever for some reason something is blocking me that isn't directly code related, he'…

Any senior or lead could handle the planning and the resources. We both agree that there is something to be done. I personally noticed that it doesn't have to be assigned to an full time manager position.

It really depends on the corporate structure. The unfortunate fact of the matter is that, at least in some dosage, middle management is a practical necessity. Many organizations implement far more than they need for the sake of empire building and ego stroking.

Re: Beware of Developers Who Do Negative Work

#230
post #215
post #181

Earlier quoted context omitted.

Junior people who are very good at CS often struggle with "real-world software". I had to explain to such a developer once why it was a bad idea to store multiple values into a single database column. It was a simple task of adding a few integer columns to a table but he couldn't let go of the "optimizations" in his mind about how he could use binary bits to represent what we wanted to represent and all that... A per…

If a guy does not understand the DB theory related to data normalization, I wouldn't call him good at CS. At least not DB related CS.

The problem is he/she might be right in a vacuum. Denormalizing the data might be "100x faster!", but they're naive to every other technical non-technical burden that comes along with that decision. Part of our interview process is selecting for people who can come up with the most efficient answer, but efficiency is a squishy thing when you're a member of a team.
Post reply on HN