technology

Sheet music, DNA, and source code

John D. Cook makes a very astute point about the nature of software:

Not only is DNA not source code, in a sense even source code is not source code! Source code in the technical sense, a set of computer language files used to build a program, is not source code in the colloquial sense of “everything you need to know.”

And also:

Practically speaking, it takes far more than source code to be able to maintain a program, especially if you want to come up to speed quickly. There’s always extra knowledge needed outside the code. This extra knowledge may be so widespread within a community as to be invisible. It’s still there, though it may take someone outside the community to see it.

The fact that there is “extra knowledge” that is not communicated through the source code is big deal and important to recognize. How do we capture the tribal knowledge that accumulates as a project progresses? How do we open the walled gardens of communications among the team? How do we keep track of the gotchas, tips and tricks and minutiae of working on, building, and deploying the software?

Most of the tools and processes software developers use daily attempt to address and alleviate this issue. Version control stores the history of code changes and provides the ability to annotate those changes. Bug tracking keeps track of defects and communicates what the problems and fixes are. We have daily standups, kanban boards, chats, emails, wikis, post-it notes – a huge range of forms of capturing and sharing information.

Advertisements
Standard

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s