Functional Specifications: the Software Project Ecosystem

Posted on: September 23rd, 2008 by Johan van Seijen No Comments

A foun­da­tion for your design isn’t only cre­ated with happy thoughts and peo­ple high-fiving each other. It’s also based in a soft­ware project’s ecosystem.

Just like cer­tain ani­mals are highly adapted to the sur­round­ings they live in, we have to adapt to the sur­round­ings of soft­ware projects if our prod­ucts are to sur­vive. African wildlife has found numer­ous ways to deal with the desert heat. Sprinkboks have white under­bel­lies to stave of the sun’s heat, Desert Foxes have huge ears, cer­tain lizards are known to alter­nately weave on two legs to stop the soles of their feet from burn­ing, Aus­tralian Kan­ga­roos lick their paws dur­ing the hottest hours of the day to arti­fi­cially enhance the cool­ing effect of per­spi­ra­tion. Nature find’s a way for every hard­ship her ecosys­tems heap on their inhabitants.

The Inhab­i­tants of the Ecosystem

So we, as inhab­i­tants of a soft­ware project’s ecosys­tem, have found a myr­iad ways to deal with dif­fer­ent hard­ships. Tens of thou­sands of pages have been writ­ten on all kinds of sub­jects hav­ing to deal with every way a project chal­lenges its par­tic­i­pants. This web­site is noth­ing more than a com­bi­na­tion of exist­ing the­o­ries and other forms of infor­ma­tion, mixed to cre­ate new insights into exist­ing problems.

Almost always, solv­ing prob­lems is not about find­ing totally new ways of deal­ing with the issues at hand, but tak­ing exist­ing ones out of rad­i­cally dif­fer­ent areas than the one where the prob­lem orig­i­nally arose, and start apply­ing them.

Through the years a lot of extremely intel­li­gent peo­ple have spent decades to be able to put their thoughts into words. If we don’t use that vast amount of knowl­edge out there we’re idiots invent­ing wheels all over again.

Free Will” and All That Jazz

The dif­fer­ence with ani­mals and humans oper­at­ing in their respec­tive ecosys­tems is that we can con­sciously think about the way we oper­ate, ani­mals can’t. Ani­mals don’t think, they just do. If there’s a stim­u­lus, they respond in evo­lu­tion­ary fab­ri­cated behav­ioral patterns.Put a rat in a box with a tiny lever which, when pressed, pro­cures a tiny morsel of food and you’ll find the rat start hump­ing the lever like there’s no tomor­row. Chicks when born, imme­di­ately start look­ing for the first large object in sight. If that so hap­pens to be you, you’ve instantly become their mom and they start fol­low­ing you. Humans are also a prod­uct of nature and we obvi­ously have cer­tain innate behav­ioral pat­terns, no doubt about it. Maybe even more than we like to think with our “free will” minded char­ac­ters. But we are much more than our ani­mal coun­ter­parts when it comes to free will. And that is that in each and every moment we con­sciously can make a choice about what to think about some­thing. Richard Dawkins has writ­ten a clas­sic which touches on this sub­ject called “The self­ish gene”. A book I highly recommend.

Choice” and All That Jazz

Choice is some­thing dif­fer­ent than expec­ta­tion about behav­ior. If I slap you in the face I can expect a cer­tain behav­ior, but the recip­i­ent still has a choice. One that the major­ity of peo­ple won’t make, but I still remem­ber a cer­tain indi­vid­ual has said some­thing about turn­ing the other cheek. There will be peo­ple who’ll argue that they had no choice in a cer­tain mat­ter, they had to do this or that because of what per­son X or Y did. It’s that mind­set that has cre­ated wars for cen­turies. A cou­ple of peo­ple hijack four air­planes, fly them into two build­ings and are able to rally the most pow­er­ful offen­sive force in the world. That didn’t just hap­pen, at each and every step there were peo­ple on both sides mak­ing active choices about how to respond to cer­tain stim­uli and what to think about that. I remem­ber dis­cussing the sub­ject of dis­crim­i­na­tion and racial bias with two col­leagues, one being from Burundi and the other one of Suri­nam Hindu ori­gin. The dis­cus­sion went back and forth with me talk­ing about choice and they about me not being able to under­stand what they had to deal with. It didn’t end there for the three of us decided to go out one night. So we had a few beers in a bar in this lit­tle town on the out­skirts of Ams­ter­dam. And I slowly began to “under­stand” what my col­leagues were talk­ing about. We were being unscrupu­lously ogled. When the bar closed we went to a local night­club and there it hap­pened. Not only my two friends had to show ID’s, for the first time in my life I had to do it. This had noth­ing more to do than me being with two black guys. And they were crack­ing up slap­ping me on the back yelling: “Now you know, now you know!” So we worked up an appetite doing these African dance moves and after­wards headed towards a Turk­ish diner. To my aston­ish­ment the owner of the shop told us stand­ing behind the counter he was clos­ing while behind us the seats were packed with white sub­ur­bia. My col­leagues dou­bled up again when they saw my face. It must have had the dawn­ing of bit­ter real­iza­tion all over it. The les­son I learned is this: I cer­tainly gained a pro­found under­stand­ing of my col­leagues predica­ment in deal­ing with the very real Dutch racial prej­u­dices first-hand. On the other hand, I didn’t change my mind about the own­er­ship of choice.

Man­age Your Expectations

The ecosys­tem has a lot to do with expec­ta­tion and how to appro­pri­ately respond when what was expected is near e.g. what choices to make. I’ve seen my col­leagues being frus­trated about mak­ing soft­ware which was never used. But would you have the same level of frus­tra­tion when I add that the end-users were never actively involved enough to the point when they knew when and where to act, and most of all why? Prob­a­bly not. The only dif­fer­ence is that with the added knowl­edge you have a dif­fer­ent expec­ta­tion about the outcome.

How can you be frus­trated about some­thing you have the abil­ity to act upon to alter its course?

Unfor­tu­nately a lot of peo­ple do, while they them­selves could have made a dif­fer­ent choice. Not with hind­sight, but before thinks went awry. They had the knowl­edge, they had the abil­ity, maybe even had the respon­si­bil­ity. The ecosys­tem and what it means, not only for you as a designer, but for all it’s inhab­i­tants is not being able to say: “Ich habe es nicht gewusst.” I don’t claim that what hap­pens dur­ing soft­ware projects is any­thing near what hap­pened dur­ing WWII but deny­ing involve­ment after bad things hap­pened is the com­mon factor.

In order for our soft­ware design to not only sur­vive but thrive in a soft­ware project ecosys­tem we have to build that ecosys­tem. As humans we are the only crea­tures alive with this abil­ity: the abil­ity to shape our ecosys­tem. We have done so with nature, we can do the same thing with our soft­ware project ecosys­tem. Why we want to do that is to shape our moments of deci­sion and man­age expec­ta­tions, two extremely impor­tant distinctions.

If we shape our moments of  deci­sion it’s very likely we actu­ally make deci­sions and give our­selves the breath­ing space for con­struc­tive follow-up.

If we man­age expec­ta­tions we achieve the exact same thing, min­i­miz­ing frustration.

Mak­ing choices, tak­ing follow-up action and man­ag­ing expec­ta­tions are three key ele­ments all flow­ing from an effec­tive design inte­grated into a sound ecosys­tem. Although I might have dis­cussed the ecosys­tem in rather vague terms, the fol­low­ing chap­ter is all about in-depth spe­cific aspects of var­i­ous part of the ecosys­tem. These parts go by the name of project “phases”.

Related posts:

  1. About Soft­ware Projects: Short ver­sus Long-term Thinking
  2. Soft­ware Project Foun­da­tion Necessities

Leave a Reply

You must be logged in to post a comment.