Live data from Hacker News

The interruptible programmer

stevestreeting.com

41–50 of 50 posts

Re: The interruptible programmer

#41
post #36

Semi-related question: can anyone suggest a lightweight, easy-to-manage ticketing system that doesn't inspire hate? I've been seriously considering setting something like this up on my own server as a personal TODO tracker, but I don't know the space well.

Org-Mode is for keeping notes, maintaining ToDo lists, doing project planning, and authoring with a fast and effective plain-text system. http://orgmode.org/

Re: The interruptible programmer

#42
post #36

Semi-related question: can anyone suggest a lightweight, easy-to-manage ticketing system that doesn't inspire hate? I've been seriously considering setting something like this up on my own server as a personal TODO tracker, but I don't know the space well.

vi TODO.txt

Re: The interruptible programmer

#43
All the good programming ideas I have ever had have occured away from a computer. And I don't mean most, I mean all. I still remember my first Eureka moment while waiting for a train to go home. I was so excited about it I almost turned around and went back to the office. Instead I excitedly jotted it down over about three pages of notebook and went in the next day and implemented it.

You have to figure in some time each day away from the screen but still thinking about work in a kind-of background task. And carry a notepad or make voice memos when the light bulb moment strikes.

Re: The interruptible programmer

#44
post #40
post #24

Earlier quoted context omitted.

"It is not possible to not end up in super brain mode with some of the problems I deal with." I'll argue that it is possible, just not necessarily preferable. You could rewrite the whole thing. You could also focus on building a number of small functions which brings the whole interface up to a human-digestible level. The reality of the matter is not the realm of possibility, but instead that you often just want to g…

I'm amused that you think it is possible to rewrite the whole thing without entering super brain mode. In my experience, generally the only way to reproduce such legacy reports is by reverse engineering how they currently work. (which will require super brain mode based on the above described current complexity) One would think someone in the business would know what the report is supposed to do, but I frequently enc…

Which describes what I was dealing with perfectly. Unfortunately the guy before me was a rather brilliant python programmer writing rails code on an extremely short deadline. I at least had the luxury of having a short in person meeting with the person using the report which allowed me to clean up some misfeatures that had been implemented due to miscommunication over the phone. (Person using the report was out of state)

Re: The interruptible programmer

#45
post #36

Semi-related question: can anyone suggest a lightweight, easy-to-manage ticketing system that doesn't inspire hate? I've been seriously considering setting something like this up on my own server as a personal TODO tracker, but I don't know the space well.

Although I upvoted 'vi TODO.txt', may I also recommend TaskWarrior (command line task management)? http://taskwarrior.org/wiki/taskwarrior/Gallery

Re: The interruptible programmer

#47
This works great if you're plugging away on an existing system, knocking off bug reports. But it doesn't work at all for prototyping cool new stuff on a clean sheet of paper.

Ingenuity and Ticket Systems don't combine very well.

There's no list of action items for Truly Cool Stuff. You just dive in and start messing around. You can probably externalize some context as you cross off ideas and concepts that won't work. But there's no game plan, thus no concept of a "Next Action". You're on a blank sheet of paper with a head full of context, and any distraction will kill that.

So yeah, there are circumstances where you can survive interruptions. But there are also circumstances where they'll kill you.

Re: The interruptible programmer

#48

I've always been an 'interruptible programmer'. While my bosses have really loved it, they pay for it by my being less productive. You see, the human mind can only hold so many concepts in active thought at the same time. It's somewhere around 7. If paying attention to your surroundings is 1, there's only 6 left. If someone -happens- in the surroundings, there's at least 1 more gone. If something -interesting- happen…

Being prepared for an interruption does not mean paying attention to your surroundings or actively seeking distraction (e.g. checking email). The problem here is that even if you've made an attempt to block everything out but have not prepared yourself for an interruption, it still may happen and will severely hurt your productivity when you try to return to what you were doing. Keeping even very informal todo lists (e.g. comments in code, todo.txt) helps greatly when you need to quickly restore your context. Even if an interruption does not happen they give you a sense of direction and you can also use them to prepare future contexts for exploring ideas you came up with while working on the current task.

Re: The interruptible programmer

#49
post #41
post #36

Semi-related question: can anyone suggest a lightweight, easy-to-manage ticketing system that doesn't inspire hate? I've been seriously considering setting something like this up on my own server as a personal TODO tracker, but I don't know the space well.

Org-Mode is for keeping notes, maintaining ToDo lists, doing project planning, and authoring with a fast and effective plain-text system. http://orgmode.org/

There's also an iPhone app for interfacing with Org-Mode, MobileOrg: http://mobileorg.ncogni.to/

Note: Unfortunately, the Dropbox integration is currently kinda borked, sometimes displaying the password in the clear, or with connection failures.

Re: The interruptible programmer

#50
post #16

The problem arises when you are focused on something very specific, for example designing a particularly complicated series of function calls, you effectively have to keep a stack in your mind, think about locals, instance variables, whatever, abstract stuff that the brain isn't so well designed at retaining, which becomes very vulnerable to disruption. If you are unlucky enough to be interrupted while in that kind o…

Maybe your code is too complicated? I suppose the ultimate goal is too keep one's code clean and simple enough that one does have to go into super brain mode in order to solve a problem. Sadly we don't live in an ideal world.

What if we looked at it as a competitive advantage?

Teamwork is a competitive advantage because a good team can develop more complex systems than a single programmer.

Clean and simple code with good architecture is a competitive advantage, because using simpler more appropriate constructs, we can develop more complex systems (or our systems run faster, or take less resources)

If we are able to go into super brain mode we are able to deal with and build more complex systems.

I like clean code as a competitive advantage, or force multiplier, but I also like the ability to use super brain mode to be able to handle more complex systems.

The double edged sword is that you've made a more complex system requiring the focus of super brain mode to work with, but if you use it carefully, sparingly, and wisely, perhaps your system can do things that a constant interruption brain mode system just can't do. It's a dangerous but powerful tool in my opinion.

Perhaps working in that space is what separates the good or amazing developers from the code monkeys? Or is it always too much of a liability to have such a system?

Post reply on HN