Live data from Hacker News

Organizing complexity is the most important skill in software development

johndcook.com

141–150 of 286 posts

Re: Organizing complexity is the most important skill in software development

#141

Earlier quoted context omitted.

I got fired from a job because I had done this and they couldn't figure out how to keep me billable after that. Well, I got fired because I would "show up late" and "leave early" because there was nothing else for me to do (even though I was actually pulling a full 40 hours, they were expecting 60 out of people). They could have given me more work, put me on new projects, etc., like I kept asking to be done, but inst…

Billing by the hour is basically just telling people how much effort you expect the task to require smoothed by how valuable it is to you. If you can do it quicker, I say bill the full amount of time and if they have extra inquiries, fit it into the buffer zone.

For one of my current clients, I still bill only the time I actually work. It's a long-term project with no explicit end-date. I'm trying to get out of, I want to do shorter-term projects now, but while I'm here, they've hired me for the fact that I can crush out code and make things better than their own employees. They didn't buy a specific thing, they buy my expertise.

It means I'm not making as much as I could be, but it's not their fault I agreed to the arrangement 3 years ago.

Re: Organizing complexity is the most important skill in software development

#143

This is incredibly true. I once turned 60kLoC of classic ASP in VBScript into about 20kLoC of python/django including templates. And added a bunch of features that would have been impossible on the old code-base. It turned the job from hellish (features were impossible to add) to very nearly boring (there wasn't much to do anymore). So with this newfound freedom I built some machines to automate the data entry and on…

> Sadly there's (seemingly) no way to interview people for this ability

I had one interview where the interviewer simply showed me a printed page of code, and asked me to talk about it.

I spotted a few problems and debatable constructs, and we had a good 3 minutes discussion.

Since at least I spend more time reading code than writing it, that felt like a truer test of my abilities than many of the coding tasks.

PS. Yes, I got the job.

Re: Organizing complexity is the most important skill in software development

#144
post #113

Earlier quoted context omitted.

Maybe it's why I'm not a developer anymore, but my approach to a broken "w" key wouldn't be figuring out a workaround to using "while", but rather copying and pasting a "w" from somewhere else.

My would be to (in order): jury-rig the keyboard to make it type "w" anyway, rebind it to some unused key, or just bring my own keyboard from home (if this would not be an interview but probational period setting).

Windows (and most OSes) also have an on screen keyboard.

Re: Organizing complexity is the most important skill in software development

#145
post #79
post #28

Earlier quoted context omitted.

> Sadly there's (seemingly) no way to interview people for this ability In a recent interview, I spent 45 minutes pairing with a current employee. Our goal was to take a (contrived) piece of legacy code, clean it up, and add a new feature to it. I imagine it was a very telling experience for them, and I feel it was more useful than the whiteboarding we'd done before. Hopefully we as an industry will keep iterating on…

Yeah, that is cool and lets you get a hand on the job and a feel for what you'd be working on, but it makes me a little wary. Doing work for some employer without getting paid is a red flag. It's not a total klaxon blaring, but it does raise eyebrows.

Well, to get to the point of being interviewed, you had to have some education (either formal or self taught, or both). This involved writing a lot of code (homework assignments, etc) that you didn't get paid for. And you had to write / polish up your resume, again without getting paid for it. And you had to drive to the site without compensation (unless the place is big enough to fly candidates across country for the interview). So why would actually demonstrating your competence raise a red flag? Either they like what you did and you get hired (in which case you are getting paid for the work), or they don't like it, won't use it, and it is no worse than putting a bit of work into a homework assignment that you ended up getting a C on.

Re: Organizing complexity is the most important skill in software development

#146
post #113

Earlier quoted context omitted.

Maybe it's why I'm not a developer anymore, but my approach to a broken "w" key wouldn't be figuring out a workaround to using "while", but rather copying and pasting a "w" from somewhere else.

ascii 119, son on Win Alt-119. But seriously, stand up and ask for a working keyboard first. The test there is communication.

Exactly.

If someone's approach to a broken keyboard is some workaround instead of just asking for another keyboard it is a sign they handle problems very, very poorly.

Re: Organizing complexity is the most important skill in software development

#147
post #144

Earlier quoted context omitted.

My would be to (in order): jury-rig the keyboard to make it type "w" anyway, rebind it to some unused key, or just bring my own keyboard from home (if this would not be an interview but probational period setting).

Windows (and most OSes) also have an on screen keyboard.

It does, but having to click to type that one letter would be annoying as hell, and a last-ditch resort (after copy-pasting the letter itself from some text that contains it).

Re: Organizing complexity is the most important skill in software development

#148

This has been my experience too. I've been involved cleaning up a half dozen or so projects that got out of control. In each case, technical complexity was blamed as the reason. After digging in, I found that following commonalities: - Incomplete, conflicting and misunderstood requirements. - Lots of "We never thought we would need to do X". - Poor team communication. - Mistrust, frequently well earned. - Harmony val…

The advantage of the 10x-er is that he will be reporting directly to a Jr. Executive and therefore cutting ahead of the middle management echo-chamber.

If you genuinely can write code 10x as fast as the average developer, and get feed requirements through a 10x faster channel, that would be the life! I suspect that's where the mythical 100x developer comes from.

Re: Organizing complexity is the most important skill in software development

#150
post #135

Earlier quoted context omitted.

It would be actually interesting to look at the commits of a candidate's any online project repository from the very start and observe how the candidate made the progress with respect to the structure of code and improvement in coding practice. To check whether the candidate optimizes and refactors the code during the development of the project leading to a stable release.

that assumes the candidate has an online repo somewhere. I think this is quite a discriminating practice - what if i don't do public projects?

[deleted]
Post reply on HN