{"id":863,"date":"2018-03-12T13:46:26","date_gmt":"2018-03-12T12:46:26","guid":{"rendered":"https:\/\/em-interim.nl\/?p=863"},"modified":"2022-10-23T16:13:09","modified_gmt":"2022-10-23T15:13:09","slug":"als-je-het-anders-wilt-los-het-dan-ergens-anders-op","status":"publish","type":"post","link":"https:\/\/em-interim.nl\/?p=863","title":{"rendered":"Als je het anders wilt, los het dan (ergens) anders op"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Er zijn talloze mogelijkheden om projecten te laten falen. Naast alles wat met het project als proces, de omgeving van het project, politiek en belangen, de verandering et cetera te maken heeft, kan ook de inhoud zorgen voor een hoofdpijndossier. Bijna iedereen die in organisaties van enige omvang werkt of heeft gewerkt, kent wel voorbeelden van projecten waarbij het niet of slechts gedeeltelijk gelukt is om de gewenste oplossing te realiseren omdat de ontwikkelingen te complex bleken. Een klassieker op dit vlak is het aanbrengen van maatwerk aan standaard oplossingen. In de praktijk is gebleken dat dit het risico op een gemankeerd of zelfs geen resultaat aan het eind van het project aanzienlijk vergroot.<\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\"><strong>Problemen met maatwerk op standaardpakketten<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Waarom neemt het aanbrengen van maatwerk aan standaard pakketsoftware zulke grote risico&#8217;s met zich mee? Waarom gaat dat zo vaak en zo ernstig mis? Een aantal fundamentele aspecten van standaard software draagt hier in hoge mate aan bij:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Pakketsoftware is, in principe, ontwikkeld vanuit een visie op hoe het de bedoelde processen moet kunnen ondersteunen. Daarvoor is een functionele structuur in het pakket aangebracht waarbij onderlinge afhankelijkheden bestaan tussen instellingen in het pakket (autorisaties op data en\/of functionaliteit, controles op consistentie van data, afdwingen van waarden ja\/nee et cetera), de functionele mogelijkheden en de invulling van procesflows. Zeker bij omvangrijkere en complexere software zijn dit soort verbanden en structuren uitgebreid en zijn deze niet altijd even expliciet. Als daar maatwerk ingeweven wordt, bestaat de kans dat dit maatwerk niet optimaal meegaat of zelfs indruist tegen deze verbanden en structuren waardoor er het geheel niet meer werkt zoals verwacht wordt.<\/li><li>Eenzelfde risico doet zich ook, en vaak nog ernstiger, voor op technisch vlak. Zeker als maatwerk consequenties heeft voor de datastructuren van het softwarepakket, ontstaan er grote risico&#8217;s voor de technische gezondheid van de totaaloplossing. Een veel gezien voorbeeld daarvan is de performance van een oplossing die helemaal instort na het bijbouwen van maatwerk.<\/li><li>Een pakketoplossing is in beginsel niet gebouwd om allerlei toevoegingen te herbergen. Er zijn simpelweg geen voorzieningen aangebracht om aanvullende functionaliteit aan te koppelen. Het aanbouwen van maatwerk wordt daardoor vaak een moeizaam proces.<\/li><li>Maatwerk aan of binnen een standaard pakketoplossing moet zich plooien naar het pakket hetgeen gedwongen keuzes met zich mee brengt te aanzien van de gebruikersinterface, functionaliteit, businesslogica en techniek. Om deze reden in het uiteindelijke resultaat van maatwerk aan een standaard oplossing vaak minder dan optimaal.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">De gevolgen voor een project dat moet leiden tot een werkzame oplossing mogen op basis van het voorgaande duidelijk zijn:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Doorlooptijd : door allerlei onvoorziene problemen in de ontwikkeling en inpassing van het maatwerk is aanzienlijke meer tijd nodig dan verwacht, met alle gevolgen voor het project<\/li><li>Geld: meer tijd en inzet van betrokkenen levert onvermijdelijk hogere kosten op<\/li><li>Omvang \/ kwaliteit: het resultaat is vaak niet wat ervan verwacht werd, het werkt onhandig, de performance is slecht et cetera.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Het mag duidelijk zijn dat de kern van dit betoog is om niet te proberen maatwerk in standaard softwarepakketten in te bouwen. Het levert grote risico&#8217;s op en leidt vaak niet tot het gewenste resultaat.<\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\"><strong>Maar hoe worden specifieke wensen dan wel ingevuld?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Het advies hier is om standaardpakketten &#8216;in hun kracht&#8217; te gebruiken. Ze zijn goed in datgene waarvoor ze zijn ontworpen en ontwikkeld. Dat is althans het uitgangspunt. Als dat niet zo is, hebben we gewoon met slechte software te maken. Het verdient dus aanbeveling een standaardpakket te gebruiken zoals het is bedoeld. Dat wil echter niet zeggen dat er geen mogelijkheden bestaan om de ondersteuning van processen in te richten buiten wat standaardoplossingen bieden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beschouw de ondersteuning van de processen van een organisatie als een functionele portfolio die met verschillende oplossingen kan worden ingevuld. Pas daarbij standaard oplossingen, koppelingen en aanvullend maatwerk toe om te komen tot de optimale invulling. Het maatwerk dat hier wordt bedoeld staat dan echter op zichzelf en werkt samen met de standaardoplossingen. De huidige stand van de techniek maakt het daarbij mogelijk om de onderdelen van de totaaloplossing naadloos met elkaar te laten samenwerken. Daarvoor zijn inmiddels verschillende technieken voor API&#8217;s (Application Programming Interfaces) beschikbaar. Dat zijn technieken die het mogelijk maken om niet alleen de data maar (juist) ook de businesslogica van een pakket aan te spreken van buitenaf. Daarmee kan maatwerk dus gebruik maken van waar het standaardpakket goed in is (de ondersteuning van processen met business logica) en dat aanvullen met specifieke wensen van de gebruikers. Vereiste is daarbij wel dat een standaardoplossing deze mogelijkheden biedt. Een belangrijke eis in de selectie (het zou in feite een dealbreaker moeten zijn) is dan ook de mogelijkheid van een oplossing om via een API aangesproken te kunnen worden.<\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\"><strong>Maar maatwerk ontwikkelen was toch risicovol?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Het bouwen van maatwerk is tegenwoordig zodanig door allerlei technieken ondersteund dat het niet meer het complexe, omvangrijke en ongrijpbare proces hoeft te zijn dat het in het verleden vaak was. De techniek maakt het meer dan ooit mogelijk om met kleine stapjes te ontwikkelen waarbij de gebruiker steeds ziet hoe de oplossing zich verder ontwikkeld. In veel gevallen is er in feite niet eens meer sprake van maatwerk in de klassieke zin van het woord maar wordt een oplossing naar de wensen van gebruiker, samengesteld uit standaard bouwblokken die nauw met elkaar samenwerken.<\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\"><strong>Enkele belangrijke vragen bij het realiseren van specifieke wensen<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De titel van dit artikel biedt aanknopingspunten bij het ontwikkelen van specifieke oplossingen binnen een situatie met standaardpakketten:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Als<\/em><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>je<\/em><\/strong>: wie heeft de wens? Met welke rol? Is dat logisch? Is dat legitiem? Wie wordt nog meer geraakt door deze wens? Zijn die het er ook mee eens?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>het<\/em><\/strong>: waar gaat het om? Welk onderdeel van de bestaande oplossing? Is het logisch dat daarover een verzoek is ontstaan? Kan het zijn dat er onvoldoende kennis is over de bestaande oplossing die heeft geleid tot de vraag? Doet de vraag (of in feite de oplossing daarvan) de bestaande oplossing geen geweld aan?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>anders<\/em><\/strong>: wat is de vraag? Is die voldoende concreet? Is duidelijk wat de consequenties zijn als de vraag zou worden ingevuld?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>wilt<\/em><\/strong>: waarom deze vraag? Omdat het altijd zo werkte? Omdat er geen vertrouwen in de bestaande situatie is? Bespaart het de betrokkene veel tijd? Is de vraag wel de echte vraag (of zit er een probleem achter)?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>&#8230;,los het dan (ergens) anders op<\/em><\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bekijk het geheel als een portfolio van functionaliteit en kies slim waarmee deze wordt gerealiseerd: standaard oplossingen, koppelingen en maatwerk.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Met dank aan Michel Schoenmaker (van Prooft; www.prooft.nl)) met wie ik samen op het idee kwam voor deze tegelwijsheid.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Er zijn talloze mogelijkheden om projecten te laten falen. Naast alles wat met het project als proces, de omgeving van het project, politiek en belangen, de verandering et cetera te maken heeft, kan ook de inhoud zorgen voor een hoofdpijndossier. Bijna iedereen die in organisaties van enige omvang werkt of heeft gewerkt, kent wel voorbeelden [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"single-no-separators","format":"standard","meta":{"footnotes":""},"categories":[20],"tags":[],"class_list":["post-863","post","type-post","status-publish","format-standard","hentry","category-artikel-informatiemanagement"],"_links":{"self":[{"href":"https:\/\/em-interim.nl\/index.php?rest_route=\/wp\/v2\/posts\/863","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/em-interim.nl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/em-interim.nl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/em-interim.nl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/em-interim.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=863"}],"version-history":[{"count":1,"href":"https:\/\/em-interim.nl\/index.php?rest_route=\/wp\/v2\/posts\/863\/revisions"}],"predecessor-version":[{"id":864,"href":"https:\/\/em-interim.nl\/index.php?rest_route=\/wp\/v2\/posts\/863\/revisions\/864"}],"wp:attachment":[{"href":"https:\/\/em-interim.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=863"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/em-interim.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=863"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/em-interim.nl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=863"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}