Das Prinzip SOC

Sepa­ration of con­cerns

Tren­nung der Zuständig­keiten

clean-code-developer

Das Prinzip SOC spiegelt sich in der Struk­tur der Seiten im Wiki wider. In den Bau­steinen unter­scheiden Autoren fach­liche von tech­nischen Belangen dort, wo es Sinn macht. Das Ziel ist es, bei der Arbeit im Wiki die Stär­ken der Autoren in ihren unter­schied­lichen Rollen im agilen Ent­wick­lungs­pro­zess zu för­dern. Das macht eine nach­voll­zieh­bare Auf­teilung der Inhalte not­wen­dig.

In vielen Fällen analy­sieren Autoren den Problem­raum »top down«, d.h. sie erfor­schen das »big picture«>, identifi­zie­ren neue Fähig­kei­ten für das Pro­dukt. Das ist ein Pro­zess, den die Struk­tur und die Bau­steine der System­beschrei­bung berück­sich­tigen.

Inter­essierte Par­teien (z.B. Auftra­ggeber, Nutzer als Domänen­exper­ten) oder der Pro­dukt­­verant­wort­liche können ihr funda­menta­les Wissen über die Unter­­nehmens­­pro­zesse und die Bedürf­nisse der Fach­abtei­lungen gut ein­bringen, wenn das Abstrak­tions­­niveau im Bau­stein passt. Inter­essierte Par­teien arbeiten direkt und ohne Kommuni­kations­­ver­luste (»Stille-Post«) im Wiki und sind dadurch auch für bestimmte Inhalte (z.B. im Bau­­stein Topic) verant­wort­lich. Der Pro­dukt­­verant­wort­liche kann damit sicher­stellen, dass sie die Prob­leme der inter­essierten Par­teien richtig ver­stehen.

Der Pro­dukt­­verant­wort­liche oder inter­essierte Par­teien sind als Leser aber oft über­fordert, wenn sie tech­nische Lösungen ver­stehen sollen. Ein Autor muss bei der Beschrei­bung der Essen­zschritte im Bau­stein Case darauf achten, dass er nicht in Imple­men­tierungs­details abglei­tet. Er muss sich darauf beschrän­ken, in den Essenz­schritten der Lösung die rich­tige Ver­knüpfung zu den Bau­steinen der System­struk­tur herzu­stellen.

In den Bau­steinen der System­beschrei­bung konzen­trieren Autoren sich darum auf den Problem­raum des Pro­duktes. Auf die Nutzer­sicht. Die Beschrei­bung in einem Bau­stein orien­tiert sich an den Fähig­kei­ten der Soft­ware. Der Text ist in der Sprache der inter­essierten Par­teien geschrie­ben.

Manche Ent­wick­ler sind ganz schlecht darin, die grund­legen­den Bedürf­nisse der Nutzer zu erkennen. Was für einen Nutzer einen großes Prob­lem in der Ver­wendung des Pro­duk­tes dar­stellt, ist für einen Ent­wickler oft nur eine Kleinig­keit bei der Reali­sierung. Auf der anderen Seite sehen Ent­wick­ler bei tech­nischen Schul­den oft großen Hand­lungs­bedarf, den ein Nutzer nicht erkennen kann. Die Ein­schät­zung der Wich­tig­keit ist darum sehr unter­schied­lich.

Die Bau­steine der System­struk­tur orien­tieren sich ganz klar an der Soft­ware. Sie sind prak­tisch ein Abbild der Soft­ware im Wiki. Die Autoren konzen­trie­ren sich auf den Lösungs­raum des Pro­duk­tes. Die Beschrei­bung in einem Bau­stein orien­tiert sich an den Diens­ten und Objek­ten des IT-Systems. Der Text ist in der Sprache der Ent­wick­ler und Tester geschrie­ben.