Development Process

At first the tickets were just a way for me to track my own work, but we're getting pretty good at using trac for an approximation of the ​XP planning game: Russ plays business customer and I represent development. Sometimes sketching milestones and breaking them down into tickets is straightforward enough, but sometimes I don't understand what he's asking for, so I ask him to tell me stories about how it works, and we capture those in the wiki.

We've had good experience with the python pyramid web framework; see [9e4f4c169c5e/reqroute] to get started. It's known for a "pay only for what you use" style, and it works reasonably well with AuthorityInjection, since it doesn't rely on globals.

Opening New Browser Windows

Opening New Browser Windows is one of the ​top 10 mistakes in web design, according to Jacob Nielsen. It seems to be a KUMC norm, meanwhile. todo (Dan): find KUMC web styleguide and see if this is a conscious decision, and what it would take to get it changed.

Programming Languages: Python, Javascript, PHP, Java

See WritingQualityCode to get started with our emerging (#1046) preferred toolset that supports all of these (as well as SQL and HTML):

Coding chunks and Collaboration Mechanics

I maintain that programming cannot be done in less than three-hour windows. It takes three hours to spin up to speed, gather your concentration, shift into "right brain mode", and really focus on a problem. Effective programmers organize their day to have at least one three-hour window, and hopefully two or three.
-- ​The Tyranny of Email, Ole Eichhorn, March 2003

Meetings

One reason programmers dislike meetings so much is that they're on a different type of schedule from other people. Meetings cost them more. -- ​Maker's Schedule, Manager's Schedule, Paul Graham, July 2009

Improving efficiency with text chat

We (Biomedical Informatics) are physically co-located, so it's less
critical than when collaborating remotely, but it's still useful:

technical details are often easier to communicate in text than by voice (e.g. error messages, URLs, commands to type)

text chat is near-real-time; you can think out loud and somebody might respond right away or quite a while later or not at all.

The random rewards of gambling are much more seductive than a more predictable reward cycle.
-- ​Your brain on gambling

People shouldn't be expected to respond to email instantly. Allowing email to interrupt work is terribly counter-productive; it's best to leave it be until a natural stopping point.

Ringing somebody's phone is sure to break their concentration.

The interruption costs more than just the minute or two to deal with the incoming call or message:

It typically takes about 15 minutes of uninterrupted study to get into a state of "flow", and the constant interruptions and distractions of a typical office environment will force you out of "flow" and make productivity impossible to achieve.

In your development process, identify the activities that disrupt flow, and modify them until they don't. ... For example, consider getting rid of the telephone.

​Pidgin is a cross-platform (Windows and Linux at least) chat client that supports IRC, XMPP (like Google Hangouts) and many others. One nice feature is that you can configure the "Message Notification" plugin (shipped with the Windows version of Pidgin) to only flash the icon to grab your attention if someone mentions your name in the chat window.