Jim Weirich: Connascence Explained

When: May 29, 2012

Connascence (noun) is defined as (1) the common birth of two or more at the same tome; production of two or more together, (2) That which is born or produced with another, or (3) the act of growing together.

In software, connascence is a rough measurement of the amount of coupling amount the components of a software system. Components that are "born" together will often need to change together over time. Excessive connascence in our software means that the system is hard to change and hard to maintain.

At least that's the theory. How well does connascence hold up as a measurement tool in evaluating real software? In this talk, we will examine real software examples to illustrate the various aspects of connascence in your code base.

About Jim Weirich

Jim Weirich first learned about computers when his college adviser suggested he take a computer science course: "It will be useful, and you might enjoy it." With those prophetic words, Jim has been developing now for over 25 years, working with everything from crunching rocket launch data on supercomputers to wiring up servos and LEDs on micro-controllers. Currently he loves working in Ruby and Rails as the Chief Scientist at EdgeCase, but you can also find him strumming on his ukulele as time permits.