vrijdag 31 augustus 2007

Wainewright en Smalltalk

Phil Wainewright zingt de lof van Workday.

Hij zegt oa:

"At the core of those new technologies is an object-oriented approach that severs the dependence on SQL database tables at the heart of much of the brittleness of current ERP software. Back in the early 1990s, I worked for a small business owner that wanted to harness the new-found power of SQL query language and 4GL programming languages to build his company’s business systems. The company was a PC reseller, so it wanted to manage customers, orders, sales commissions, suppliers. The first step was to decide in advance how to structure the data: there had to be a table called ‘orgs’ that identified each business the company deal with; and then various tables of the different kinds of business could be joined to the ‘orgs’ table — suppliers, customers and so on.

At the time, this was a breathtakingly elegant and powerful way to map a business’s data. Yet I couldn’t help wondering what would happen if some business need came along that required a table you hadn’t defined into the original SQL database structure. Surely you were building in a significant hostage to fortune?"

En verderop:

"The breakthrough that Workday achieves is to move away from a fixed database structure. The SQL database in a traditional business management application defines the meaning of data into the table structure, and that is its achilles’ heel. Workday’s database tables reflect the needs of the object-oriented application architecture — there are just three tables, for ‘instances’, attributes’ and ‘references’ — and the data and definitions stored in the table are instantiated only when the application runs. The definitions are therefore as easy to change as the data.

When I use terms like ‘instantiated’ I’m slipping into the language of object management. At the heart of Workday is an object management server (OMS) — 30,000 lines of Java code that runs as an Apache Tomcat process, entirely in memory. When the Workday application runs, it scoops up all the data and definitions stored in that three-table database and turns them into meaningful data that can be accessed and manipulated. Changing the business logic — even at a very fundamental level — is simply a matter of changing a few definitions and re-running the application. Workday’s favorite demonstration of this capability is showing how it’s possible to reorganize the structure of your business on the fly, without recoding. In fact, Workday’s application developers never write code. They simply work with the 40 or so object types that have been built into the application, and define and instantiate them as required."

Hmmm, ik weet niet of ik hier zo weg van ben.

Om te beginnen: Phil maakt geen onderscheid tussen twee verschillende rigiditeiten:
1. de rigiditeit die voortvloeit uit de problematische wijzigbaarheid van het model in een 4GL-omgeving. Die was er inderdaad, en voor een deel hing die samen met het feit dat er eigenlijk alleen een datamodel was, waaraan de rest hing.
Het gebruik van oject-modellering lost dat probleem op.
Maar een deel van de moeilijke wijzigbaarheid van een business-model wordt niet veroorzaakt door de modelleertechniek, maar door de aard van het model zelf.
In dit geval ben ik bang dat de Workday-modellen ook niet zo makkelijk te wijzigen zijn. O ja, technisch wel, maar de (semantische) consistentie moet ook verzekerd zijn.
2. de rigiditeit die voortvloeit uit het feit dat tussen het model en de werkende code een compilatie oid. zit. Als dat het probleem is, dan is de oplossing om alles te maken, zoals Workday heeft gedaan, de juiste. Maar is dat het probleem? En is het dan nodig te volstaan met een bare-bones-metamodel met alleen classes, attriuten en relaties?

Zo te horen heeft Workday Smalltalk weer eens uitgevonden. Dat was en is een fantastische taal en omgeving, maar schaalbaarheid was altijd een probleem. En of dat nu zoveel anders is?

Belangrijker: het is niet nodig. Een implementatie bv op basis van de color-modellen zou mooier, minder riskant, en handiger voor het modelleren zijn geweest.

Solow en de functionaliteit uit de muur

Gisteren schreef ik dit. Dat leverde wat reacties op, en daarin werd o.m. door R. gevraagd of dit iets te maken had met de "Solow-paradox": het veronderstelde verschijnsel dat investeringen in IT niet terug te vinden zijn in een verhoging van de (arbeids)productiviteit.

Ik denk niet dat dat het geval is. Ik heb R. het volgende geantwoord:

"Productiviteit, in dit geval arbeidsproductiviteit AP): = Toegevoegde Waarde (TW) / input (bv eenheden arbeid, dwz: uren of zo).
Kort door de bocht: (opbrengst verkoop - kosten inkoop) / aantal uren.

Je kunt dat voor een bedrijf doen, voor een bedrijfstak, voor een land, in principe voor alles waarvan je gegevens hebt.

Productiviteitsgroei kan ontstaan door de volgende zaken:

1. kapitaalinvesteringen. je zet een machine neer, en daardoor kan iemand 100 flessen cola maken in een uur, ipv 100. Arbeidsproduktiviteit neemt toe met factor 10, maar wel agv kapitaalinvestering.

2. beter opgeleide en/of ervaren medewerkers. Idem.

3. total-factor-productiviteit. het blijkt dat las je hieraan gaat rekenen er vaak ook een groei van de produltiviteit is die niet eenduidig valt toe te schrijven aan een van de bovenstaande factoren, maar kennelijk uit de combinatie komt rollen.

Als je het gevoel hebt dat eea vaag wordt in de mist van relativiteit: ja, dat is zo. Toerekening van produktiviteit is lastig, en vaak zeer omstreden (vandaar ook die jarenlange discussie over die Solow-paradox.)

Een van de lastige zaken is het tijdseffect.

Voorbeeld; stel we werken allemaal 1600 uur per jaar, en we produceren met stoommachines. Nu gaan we allemaal tegelijk over op elektra, en we produceren 2x zoveel. Prijzen blijven gelijk, lonen verdubbelen (want dubbele produktie) (kosten elektra enzo laten we buiten beschouwing).

Dus: TW neemt toe met factor 2, aantal uren blijft gelijk, geen inflatie, dus verdubbeling arbeidsprodukiviteit.

Maar stel nu dat het omgekeerde gebeurt: lonen blijven gelijk, maar prijzen halveren. TW blijft gelijk (verdubbelde prod, gehalveerde prijzen), aantal uren blijft gelijk, conclusie: geen stijging
arbeidsprod?!

Nee, zo simpel is het neit, want je moet corrigeren voor inflatie. In dit geval is er agv die prijsdaling een deflatie van 50%. En als je de TW daarvoor corrigeert, blijkt er keurig weer een produktiviteitsstijging in te zitten van 100%, zoals verwacht.

Wat dit laat zien is dat dit soort arbeidsprod. cijfers heel moeilijk goed te berekenen zijn, o.m. agv die inflatie-effecten. Want bij de inflatie is bv toename van kwaliteit en substitutie van produkten (allebei te verwachten gevolgen van technologiesche veranderingen) heel moeilijk mee te nemen, zeker over een langere periode.

Solow: je zou verwachten dat je een sterk toegenomen investering in IT zich laat zien in een stijging van de arbeidsprod. S. beweerde die niet te zien.

Ik weet niet precies hoe dit zit, maar ik heb het idee dat het voor een deel geklets is.

1. tot ong 1975 steeg de arb.prod. fors. Ik vermoed dat een groot deel daarvan aan automatisering is toe te schrijven. Als dat niet te zien is, verdenk ik de cijfers die daaraan ten grondslag liggen.

2. tussen 1975 en pakweg 1990 of zo is de stijging van de a.p. inderdaad veel lager. En er is wel in IT geinvesteerd. Maar er zijn natuurlijk veel meer variabelen, en het zou kunnen (denk ik)
dat zonder IT die a.p.stijging nog lager was geweest. Misschien zit ik er naast, maar ik wantrouw die makkelijke stelling van Solow nogal.

3. Een deel van de investeringen uitte zich vooral in hogere kwaliteit van produkten, en in betere besturing van de produktie-processen. Die hogere kwaliteit is berucht moeilijk mee te nemen in inflatiecijfers, en daarmee in AP-cijfers, en die betere bedrijfsvoering zou terug moeten komen in betere resultaten en tenslotte daardoor lagere prijzen (lagere kosten
voorraad bv door JIT-logistiek, lager risico door beter zicht op risico's, etc), maar dat kan best even duren. Het zou mij ook niet verbazen dat een deel van de stijging van de AP in de jaren 90 het gevolg is van uitgestelde effecten in de prijzen uit de jaren 80.

Dat neemt niet weg dat er zeker veel investeringen in de IT niet bijdroegen. Om te beginnen al die projecten die tot niets leiden, en daarnaast zijn er natuurlijk ook veel "business-toepassingen' waarvan ik niet zie hoe die ergens toe bijdragen. En tenslotte veel geneuzel met PC's zonder veel nut.

Voorbeeld: er is natuurlijk een kostenverlaging doordat tegenwoordig iedereen snel zijn rapporten en zo kan maken. Geen drukker, geen typistes, etc. Prachtig.

Maar een deel van die winst gaat natuurlijk even zo hard weer zitten in eindeloos geneuzel over fonts en plaatjes (Powerpoint!), productie van zinloze documenten, etc."

Tot zover het verhaal over de productiviteits-paradox.

Met de "functionaliteit uit de muur" heeft dit allemaal echter weinig te maken.


donderdag 30 augustus 2007

Functionaliteit uit de muur

Wat is de consequentie van SaaS?

Goed beschouwd dit: IT, althans de gangbare business-functionaliteit, komt "uit de muur". Binnenkort dankzij SaaS zowat letterlijk, maar nu al figuurlijk. Je kunt voor een zeer lage prijs de "standaard" (wat is die standaard?) business functionaliteit kopen. SaaS, Internet, outsourcing, standaardpakketten, open source, en ook zaken als virtualisatie en grid computing werken wat dat betreft allemaal dezelfde richting uit. En het spoort ook met de neiging van bedrijven om alleen te investeren in hun echte core. IT, zelfs business functionaliteit hoort daar goed beschouwd zelden bij.

Maw: IT, althans dat deel ervan, wordt of is een "commodity", en dat betekent dat er nauwelijks een concurrentie-voordeel mee te behalen valt, in ieder geval niet op langere termijn. Dus doen bedrijven er verstandig aan om IT zoveel mogelijk als een kostenpost, een soort infrastructuur, te zien. Wellicht ten overvloede: het gaat dan niet alleen om de hardware (computers, kabels, routers, etc) en de systeem-software, maar ook om de business-software zelf.

Er valt natuurlijk met een nieuwe business-toepassing (meestal een herschikking van bestaande functies, of een beter UI op die functies) wel degelijk voordeel te behalen, maar dat zal in de praktijk heel snel worden nagemaakt door de concurrenten. (Ik heb een keer vernomen dat in de financiele wereld een nieuw produkt hooguit anderhalf jaar voorsprong geeft, meestal veel korter.)

De consequenties voor de IT-industrie zijn natuurlijk groot. De fictie van het bedrijfsspeciefieke maatwerk kan aan het gas (eindelijk, eindelijk. Altijd al kletskoek geweest), en de eigen IT-ontwikkeling van bedrijven is alleen maar een duur blok aan het been. Dus outsourcen die handel, en weg met die licenties!

Maar dat uitdijende heelal van services, geoutsourcede systemen, etc moet natuurlijk wel geprojecteerd worden op de business-functionaliteit van een bedrijf. Dat goed (dus: betrouwbaar, en dusdanig dat de wijze van implementatie echt irrelevant is) en goedkoop doen is ook een taak van IT.

En daarvoor is een forse omschakeling nodig. Want waar we eerst ons richtten op de code als referentiepunt en plaats van wijziging, kan dat nu niet meer. De code ligt in India, of is niet eens bekend omdat je een verscheidene service-leveranciers gebruikt, en hoe die eea gecodeerd hebben weet je niet, laat staan dt je bij die code kunt.

Maar hoe dan wel? Modellen. Die maken het mogelijk om volledig, exact en platform- en implementatie-onafhankelijk de business te beschrijven en bovendien (de functionaliteit van) de software te beschrijven, zelfs te genereren. Ze zijn dus een noodzakelijke koppeling tussen enerzijds de business en anderzijds de services en andere software die gebruikt worden
of kunnen worden.

Kan dat? Ja. We zijn inmiddels goed genoeg in het modelleren van domeinen dat we de business volledig en exact kunnen beschrijven. En het mooie van MDA/MDE is dat we de garantie hebben dat die modellen ook platformonafhankelijk kunnen worden gerealiseerd. We hoeven niet altijd gebruik te maken van die route (bij outsourcing bv kunnen de modellen als een "gewone" (maar wel volledige) specificatie dienen), maar het kan wel.

En die domein-modellen worden dus het "interface" tussen de gerealiseerde functionaliteit waar dan ook, en de business. Het stopcontact aan de muur, zogezegd.

woensdag 29 augustus 2007

Wainewright neemt Oracle te pakken

Phil Wainewright gaat hier helemaal uit zijn dak in een tirade tegen een betoog van een knakker van Oracle over SaaS.

Phil's belangrijkste punten, afgezet tegen de beweringen van die Oracle-vogel:
1. Klanten willen, als ze SaaS gebruiken, geen eigen database.
2. Klanten willen best een database sharen met andere SaaS-gebruikers.
3. Klanten willen helemaal geen software "in bezit" hebben
4. SaaS is niet alleen maar hosting van applicaties.

Phil heeft natuurlijk helemaal gelijk, al zullen veel van die punten van die Oracle-jongen ook wel als "bezwaar" tegen SaaS geopperd worden. En dus spelen ze wel een rol.

Maar ik ben het helemaal met Phil eens dat het geblaf is tegen een karavaan die toch gewoon verder gaat.

maandag 27 augustus 2007

maandag 20 augustus 2007

BPM en agility

Goed stuk van Richard Veryard in CBDI Journal (link naar samenvatting). Veryard vestigt de aandacht op het feit dat toepassing van BPM en SOA zonder meer zeker niet de voordelen op het gebied van agility gaat opleveren die men er van verwacht.

Inderdaad. Zie ook SaaSaaS.

vrijdag 17 augustus 2007

David Hay en de DNC

Ik heb inmiddels David Hay's Data Model Patterns in mijn vingers gekregen. Het is duidelijk dit dit een van de bouwstenen was voor de colors-aanpak van Peter Coad c.s. Ik was benieuwd of dit boek vol met data model patronen ook een equivalent van de DNC (de Domain Neutral Component) bevat.

En zowaar: daar is het Universal Data Model! Maar helaas, nadere bestudering leert hier dat het inderdaad een metamodel betreft, maar dan een in een andere abstractie-richting. Wat het UDM van Hay in feite doet is het begrippen-paar class-instance in een datamodel weergeven, attributen en attribuutwaarden als entiteiten weergeven, en relaties expliciet benoemen.

Dat is dus vergelijkbaar mer de MOF Layer 2 beschrijving van UML. Nuttig (en ook wel logisch gezien het gemis aan een dergelijk metamodel in data modeling), maar iets anders dan het color-metamodel. Toch wel raar dat Hay, als ie toch aan het metamodelleren was, die voor de hand liggende stap heeft gemist: het universele domein model.

Affijn, ik heb het boek nog niet helemaal doorgewerkt, dus misschien zie ik iets over het hoofd.

donderdag 16 augustus 2007

Literate modeling

Een zijspoor van het onderzoek naar archetypes: literate modeling. Het is een techniek waarbij modellen worden "uitgelegd" voor "stakeholders" die ze anders niet begrijpen.

Arlow en Neustadt introduceren dit begrip in hun boek, en op codegeneration vat Jim Arlow de voordelen als volgt samen:

  1. The UML model tends to be more correct. It’s amazing how often we have taken a "correct" UML model and discovered semantic errors in it when we came to explain it to ourselves by writing the narrative.
  2. You get an improvement in quality. This arises because the non-technical stakeholders gain the ability to assess and critique the model.
  3. You get better requirements traceability. High-level requirements often become lost in UML models. We call this the "trivialization of requirements" in our paper. The narrative must highlight key requirements and illustrate how the UML model realizes these.
  4. You increase the business benefit of your UML models by making these models accessible to a much wider audience.

Duidelijk verhaal, prima verhaal. Ik geloof dat ik zelf iets dergelijks ook al doe. Dus dan is get goed. :)

De voordelen die Arlow noemt zijn er ook inderdaad, en het zijn echte voordelen.

Maar heb ik een twijfel.

De suggestie is dat dit soort modellen (het gaat om modellen voor de analyse) bedoeld zijn voor afstemming met "stakeholders", of zelfs dat die modellen eerst moeten zijn goedgekeurd door de "stakeholders".

Volgens mij is dat allebei niet waar. Het doel van modellen is het specificeren van een systeem, en de uiteindelijke toets voor de correctheid is of er een goed werkend systeem, met de juiste vrijheidsgraden, etc mee tot stand komt.

Of de "stakeholders" de modellen "herkennen" of begrijpen, is eigenlijk niet relevant. Natuurlijk, als de domeinanalist het domein probeert te begrijpen, is het handig om de modellen die hij heeft gemaakt af te stemmen, en in dat kader is literate modeling zeker nuttig.

Maar de uiteindelijk verantwoordelijke is de analist, en de mening van de "business" over die modellen op zichzelf is strikt genomen niet relevant.

vrijdag 10 augustus 2007

Archetypes (vv)

Ruim twee weken geleden kondigde ik aan te gaan onderzoeken wat het nut is van archetypes, en die te gaan beoordelen op de volgende criteria:
1. is de aanpak bruikbaar voor het maken van een analyse van een business-domein?
2. is de aanpak bruikbaar in een MDE-traject?
3. is de aanpak bruikbaar in een Service-oriented of SaaS-omgeving?
4. is de aanpak ingepast of inpasbaar in standaarden zoals UML, MDA, e.d.?
5. is de aanpak bruikbaar als heuristiek voor de analyse van bestaande softare (legacy)?
En daar kwam later bij:
6. leent de aanpak zich voor een koppeling met aspect-orientatie (tbv symmetrische en asymmetrische aspecten of deelmodellen)?

De onderzochte aanpakken zijn:
- de REA aanpak (Resources, Events, Agents), in de variant van Pavel Hruby c.s.
- de "colors" aanpak van Peter Coad c.s.
- de Archetype-aanpak (pleomorphs) van (o.m.) Arlow en Neustadt.

Ik ben nog lang niet klaar, maar dit is de eerste inventarisatie.

Ad 1. is de aanpak bruikbaar voor het maken van een analyse van een business-domein?
- REA: ja. Daar is de aanpak bij uitstek voor bedoeld. Het gehanteerde metamodel (REA, duality, conversion process, etc) is ook expliciet uit de abstractie van business-domeinen ontleend (mn uit accounting). De aanpak is compleet: elk business-domein wordt in principe volledig bestreken, zij het dat soms wat kunstgrepen nodig zijn. REA is ook alleen maar voor business-domeinen geschikt.

- colors: ja. De Domain Neutral Component (PPT, Role, Description, Moment/Interval) is een zeer abstract model, en eigenlijk een metamodel dat overal (niet alleen voor business-analyse) kan worden toegepast. Maar er zijn specialisaties mogelijk voor business-analyse, en Coad c.s. geven daarvan ook voorbeelden. De aanpak is compleet: elk business-domein wordt volledig bestreken.

- pleomorphs: ja. De aanpak biedt een set aan (samenhangende) analyse-patronen, die uitstekend geschikt zijn om een business-analyse te doen. Of elk business-domein compleet wordt afgedekt, betwijfel ik.

Ad 2. is de aanpak bruikbaar in een MDE-traject?

- REA: ja, mits verder uitgewerkt. Er zijn iig aanzetten voor MDA/MDE-achtige zaken, maar er zal wel nog het nodige meoten worden gedaan om eea te laten werken. Nadeel is wel dat de REA-aanpak niet uit de hoek van de software-ontwikkeling komt, waardoor de mapping van REA-concepten op bv componenten of classes nog wel eens lastig kan zijn (zie bijvoorbeeld het ontbreken van een Role).

- colors: ja, mits doorontwikkeld. Deze aanpak stamt van voor de MDA-hype, en dus zitten er geen expliciete aangrijpingspunten voor MDA of MDE in. Echter, de aanpak zit zo strak in elkaar als het gaat om de afleiding van modellen dat dit geen groot probleem zal zijn. (opvallend in dit verband is dat Coad c.s. de term "metamodel" niet gebruiken voor hun abstracte patronen, hoewel ze wel bij uitstek zo te gebruiken zijn).

- pleomorphs: ja. Is expliciet opgenomen, en er worden zelfs voorbeelden gegeven met ArcStyler als tool.

Ad 3. is de aanpak bruikbaar in een Service-oriented of SaaS-omgeving?

- REA: waarschijnlijk wel. Echter, de mapping van analyse concepten naar services is nog niet triviaal, mede omdat een REA-model puur op het punt van bv object-orientatie (cohesie interfaces, etc) nog niet helemaal klaar is.

- colors: ja. Weliswaar zitten services etc. niet in de aanpak, maar dankzij de strak uitgewerkte interfaces, de keurig aansluitende domein-concepten en vooral de roles die al in het model als koppeling optreden, is een mapping op een SOA niet moeilijk.

- pleomorhs: waarschijnlijk wel. Deze aanpak resulteert in goede OO-modellen, waaruit services normaliter makkelijk af te leiden zijn.

Ad 4. is de aanpak ingepast of inpasbaar in standaarden zoals UML, MDA, e.d.?

- REA: ja. Ik voorzie geen problemen.

- colors: ja.

- pleomorphs: ja, is er zelfs specifiek op gericht (compleet met voorwoord van de onvermijdelijke Richard Mark Soley, Ph.D.)

Ad 5. is de aanpak bruikbaar als heuristiek voor de analyse van bestaande softare (legacy)?

- REA: zeer twijfelachtig. REA is goed in het adhv de business analyseren van die business, maar is niet gericht op software. Ik betwijfel of dit werkt, al zullen proeven dat moeten uitwijzen.

- colors: ja, uitstekend. De top-down benadering helpt ook bij zeer rommelig in elkaar zittende legacy-software. Colors is eigenlijk een soort patroon-taal, en dat is hier een groot voordeel.

- pleomorphs: ja. Het opzoeken van de patronen is goed mogelijk, maar ze moeten wel al zichtbaar zijn.

Ad 6. leent de aanpak zich voor een koppeling met aspect-orientatie (tbv symmetrische en asymmetrische aspecten of deelmodellen)?

- REA: redelijk. REA gebruikt expliciet AO voor bepaalde vormen van gedrag (asymmetrische aspecten vooral). Om het echt in een MDE-aanpak te laten werken is nog wel wat werk nodig, maar het begin is er.

- colors: redelijk. Aspecten zitten er niet expliciet in, maar de aanpak (weer dankzij de roles) leent zich er goed voor. Om het in een MDE-aanpak te laten werken is nog wel werk nodig.

- pleomorphs: matig. Voorzover ik kan overzien is er geen rekening mee gehouden. Aan de andere kant; het zijn wel OO-modellen, dus het is er in te breien. Maar er zal meer werk voor nodig zijn dan bij colors.

Zo, dit is de eerste inventarisatie. Het is duidelijk: er is nog veel uit te zoeken. En er is ook nog veel meer te zeggen van deze aanpakken, de voor- en nadelen, enzovoort. Dat zal allemaal gebeuren.

De europese software-industrie

Gisteren schreef ik dit.

De stelling dat Europa achterblijft op het gebied van de software, komt vandaan bij Michiel van Genuchten. Ik denk dat hij in zijn constatering gelijk heeft, en ik vermoed dat een van de factoren daarbij de rigiditeit van de europese arbeidsmarkt is. Immers, ontwikkeling van software is (als hoofdactiviteit van een bedrijf) een riskante bezigheid, waarbij bovendien de arbeidskosten een zeer groot deel van de totale kosten uitmaken.

Het probleem met zo'n rigide arbeidsmarkt is dat het heel snel een "kop-ik-win, kruis-jij-verliest" markt wordt. Als het slecht gaat, blijft men schuilen onder de paraplu van de ontslagbescherming, gaat het beter, dan laat men zich wegkopen of gaat men freelancen. En de software-industrie is een erg volatiele bedrijfstak, met hoge toppen en diepe dalen.

Dat is een probleem voor alle bedrijven die aan software-ontwikkeling doen, maar in het bijzonder voor bedrijven die een software-rodukt ontwikkelen. Immers:
1. die ontwikkeling zelf is heel riskant. Het kan heel goed gaan, maar de kans is ook groot dat het heel slecht gaat. In het laatste geval is het moeilijk om tijdig werknemers te ontslaan, en dus is het riskanter om een produkte te ontwikkelen in Europa dan in de VS.
2. de investering bij software-ontwikkeling zit niet alleen in de ontwikkelde software zelf, maar ook (waarschijnlijk meer dan in de meeste andere takken, waar investeringen in machinerie e.d. een grotere rol spelen) in de kennis van de mensen. Die wil je graag houden, en hoge beloningen e.d. liggen dan voor de hand. Maar dan gaat die ontslagbescherming weer extra knellen....

donderdag 9 augustus 2007

Comparative advantage

Ik vond dit artikel van Alejandro Cunat en Marc Melitz. Voornaamste strekking: het overige gelijkblijvend, hebben landen met een flexibele arbeidsmarkt een comparative advantage. Dat is geen verrassing natuurlijk, maar zij voegen er aan toe dat landen met een rigide arbeidsmarkt van die rigiditeit minder last hebben in weinig volatiele bedrijven en bedrijfstakken. En kapitaalintensivieit vermindert het voordeel van flexibiliteit ook.

Maw: landen met een rigide arbeidsmarkt hebben een comparative advantage in statische en kapitaalintensieve bedrijfstakken. (Voor de duidelijkheid: in absolute termen hebben ze waarschijnlijk nog steeds een nadeel tov flexibele landen.)

En dat verklaart wellicht waarom continentaal Europa zo zwak is op het gebied van software-ontwikkeling. Want dat is bij uitstek een volatiele bedrijfstak. Je kunt natuurlijk wel weer SW-ontwikkeling devolatiliseren door het onder te brengen bij Grote Automatiseringsafdeingen, en bij detacheringshuizen. En dat is ook precies wat er (vooral) Europa is gebeurd. Maar dat brengt weer zijn eigen problemen met zich mede.

maandag 6 augustus 2007

Aspecten en archetypes

Het onderzoek naar Archetype-benaderingen vordert (zie ook hier). Wat wel duidelijk is: een koppeling van archetypes met aspecten (in de zin van Aspect-orientatie) is nodig. Immers: archetypes moeten aan elkaar gekoppeld kunnen worden. Als dat binnen hetzelfde "domein" is, is dat niet erg, al krijg je al snel een explosie van de mogelijke analyse-patronen.

Maar als de archetypes niet in hetzelfde domein liggen (en dat is bij asymmetriche aspecten al snel het geval: wie zit er te wachten op logging als je een business-model aan het bestuderen bent? Toch is logging nodig) dan is AO een geld middel.

Ik zal de aanpakken dus ook op dit aspect (grijns) beoordelen.

vrijdag 3 augustus 2007

SaaSaaS (2)

SaaS is dus heel mooi, maar er zijn een aantal problemen en obstakels. Ik heb hiervoor een aantal genoemd (zie hier):
- er zijn standaards nodig, zowel op technisch als op "semantisch" (dwz: vwb het probleemdomein) gebied
- er is een manier van beschrijven van systemen nodig die het uitbesteden van systeemontwikkeling en -beheer, bv via outsourcing of offshoring makkelijker maakt
- de wijze van specificeren moet ervoor zorgen dat de problemen voortvloeiende uit "glue code" zoveel mogelijk worden vermeden
- er moet een manier zijn om bestaande software (legacy) in de SaaS-opzet te betrekken.

Is dat mogelijk? Ja, ik denk het wel.

We zijn al een heel stuk verder als we een (abstracte) taal hebben, die het mogelijk maakt een probleem domein (bijvoorbeeld een business-domein) te beschrijven to the point en zonder redundantie. Voorts moeten we in staat zijn een beschrijving in die taal te gebruiken voor een implementatie, zonder dat nadere informatie nodig is. Je kunt een specificatie dan gebruiken voor een automatische implementatie, maar ook voor de specificatie van een extern (bv via outsourcing) te realiseren systeem. De taal moet dus onafhankelijk zijn van de wijze van implementatie, maar ook van het platform van implementatie. Zo wordt lock-in vermeden. En de taal moet geschikt zijn om bestaande legacy-software in te beschrijven, alsmede "semantische" standaarden bevatten of in ieder geval mogelijk maken.

Zo, dat is nogal wat. Maar het kan wel. We zijn er in ieder geval vlak bij.

Voor de domeinbeschrijving is het mogelijk om met OO en UML een heel eind te komen. Inderdaad, UML is niet helemaal niet compleet: de beschrijving van gedrag is moeilijk, en UML bevat ook veel overbodige onzin (use cases!), maar die hoef je natuurlijk niet te gebruiken. Maar de basis is er, en met goed gekozen aanvullingen is OO-UML bruikbaar.

Die aanvullingen liggen op de volgende gebieden:
- beschrijving gedrag. UML is hiervoor onvoldoende. Er is een Action Language (een soort pseudo-code) nodig om gedragsbeschrijvingen bruikbaar te maken. Een subset van een gewone programmeertaal (bv Java of Ruby) is afdoende.
- een standaard voor het koppelen van de domeinmodellen. Een aspect van een domein wordt apart beschreven (later daarover meer), maar om een domein compleet te beschrijven is in feite een soort "meta-taal" nodig die beschrijft hoe modellen met elkaar samen (kunnen) hangen. Aspect-orientatie, MDSM, MDE en ook technieken als UML with color bieden bieden hiervoor mogelijkheden.
- een standaard semantiek die de gebruikte concepten beschrijft op een dusdanige wijze dat ze over de (deel)domeinen hetzelfde zijn. Voor SaaS is dat utieraard cruciaal. Hiervoor zijn verscheidene aanzetten, waarvan sommige varen onder de prachtige vlag van de "web ontology". Schitterend buzzword. Het is verstandig om een schuin oog op deze ontwikkelingen gericht te houden, maar het is niet nodig om erop te wachten. In de prakiek zijn allen OO-standaardmodellen voor business-domeinen ongeveer hetzelfde, en iig makkelijk naar elkaar te transformeren.
- eventueel kunnen naast UML DSLs gebruikt worden voor specfieke deelterreinen, zolang de koppeling met UML maar te maken is. Een voorbeeld hiervan is BPMN voor het modelleren van processen.

Wat wel van belang is; als uitbreidingen worden gemaakt, dan is het wijs om daarbij binnen de grenzen van de MOF te blijven. Dan is de koppeling naar MDE en MDA betrekkelijk makkelijk te maken. En er moet voor gezorgd worden dat de gebruikte modelleertalen en -technieken open zijn, zodat de resulterende artefacten (de modellen dus) hun waarde behouden, en niet geboden zijn aan een of andere esoterische aanpak, die niemand meer snapt na het vertrek van de goeroe van dienst.

Datzelfde (vermijding van lock-in) is nog belangrijker als het gaat om de verwerking van die modellen. Dat kan grofweg op twee manieren; handmatig, of geautomatiseerd via de MDA/MDE-route. Of een combinatie.

Eigenlijk maakt het niet zoveel uit of hoe het gebeurt. Want in beide gevallen moet de specificatie precies en volledig zijn. Bij een automatsiche realisatie is dat evident, maar bij een handmatige is het ook essentieel, omdat die steeds meer elders (in India of waar dan ook) plaatsvindt. De dagen van de halfzachte analyse, waarbij een groot deel van de specificatie in de bouwfase werd gemaakt (met alle problemen van dien) zijn over. Dat stelt duidelijk andere eisen aan de wijze van specificeren en analyseren dan we gewend zijn.

Bij een automatische realisatie is het cruciaal dat de modellen NIET op het MDA-traject zijn toegesneden. Zijn ze dat wel, dan zijn ze in feite tool-afhankelijk geworden, waarmee toch lock-in het resultaat zou zijn. En dat mag niet. Het MDA/MDE-proces dient dus zo te zijn opgezet, dat de platform- en toolonafhankelijkheid van de domeinmodellen verzekerd is, terwijl ze wel compleet zijn. (Dit sluit in de praktijk en aantal MDA-tools uit, omdat daar de PSM gebruikt wordt zowel voor platformspecifieke zaken als voor detaillering van het business-domein. Dat is belachelijk, en die tools dienen vermeden te worden.)

In de praktijk zal de realisatie in een aantal transformatie-stappen plaatsvinden, volgens het DAI-principe (Domein, Architectuur, Implementatie). De MDSD-aanpak voldoet min of meer hieraan, en er zijn inmiddels ook verscheidene tools die een voldoende flexibele M2M transformatie bieden (Borland, OAW, MIA, ArcStyler nb lijken alle bruikbaar). Een van de lastige dingen is ongetwijfeld het noodzakelijke "weaven" van deel-modellen. In de meeste MDA-aanpakken zit dat (nog) niet verwerkt, maar het is wel nodig. Gelukkig biedt hier Aspect-Orientatie (AOP, AOSD) oplossingen, en AOSD moet ook in de MDE-techniek geintegreerd worden. (MDSD doet dat trouwens ook.)

De werkwijze en inrichting van het transformatieproces moet natuurlijk flexibel maar ook open zijn, dit laatste om portabiliteit van het ene naar het andere tool mogelijk te maken. Als een transformatieproces een balck box is, is dat natuurlijk heel lastig, maar als duidelijk is hoe het werkt, is een overzetting naar een ander tool wel haalbaar. Sterker: als de trnasformaties zijn beschreven in de QVT-standaard (als dat inderdaad de standaard wordt), zijn ze waarschijnlijk herbruikbaar.

Het doel is hier: zoveel mogelijk abstractie van de concrete tooling. De MDA-standaard zou dit mogelijk moeten maken, maar het zal nog wl even duren eer die MDA-transformaties echt een "commodity" zijn geworden, en de tooling er niet meer toe doet.

We zijn eruit: dit is de oplossing. :)

De volgende keer over de IT-organisatie, SaaS en SaaSaaS. En ik zal ook een aantal thema's die hierboven zijn aangeroerd, uitdiepen.
Bijvoorbeeld:
- hoe moet je domeinmodelleren om dit alles mogelijk te maken?
- wat zijn de mogelijkheden en onmogelijkheden van UML?
- wat moeten we met DSLs?
- past legacy hier wel in, en zo ja, hoe dan?

Dat komt dus nog.

donderdag 2 augustus 2007

Voelter's blog

En de blog van de onvolprezen Markus Voelter toegevoegd. Gelijk maar even een link naar een artikel van hem en Iris Groher over MDSD, AO, en PL.

SaaS en SOA, hypes die voorbijgaan?

Will SOA still be ‘SOA’ five years from now?

Nee, zegt Joe McKendrick. SOA zal alomtegenwoordig zijn, net als GUIs dat al zijn, en Webservices bezig zijn het te worden.

Hij heeft daarin gelijk, maar er is nog een andere reden waarom SOA snel weer hype-af zal zijn. De SOA hype is een interne IT-hype, eigenlijk alleen interessant voor software-architecten, developers, etc. SOA is een architectuur die "services" mogelijk maakt (en zelfs dat is niet helemaal waar: het is mogelijk services te leveren of zelfs te consumeren zonder een echte SOA). Maar een SOA brengt helemaal neit noodzakelijk gebruik of beschikbaarstelling van services as vanzelf met zich mee, laat staan dat dat zal leiden tot de business-voordelen die klanten wordt beloofd.

SOA is een enabler, meer niet. Het echte voordeel zit in SaaS: Software as a Service. Dat is veel nauwer verbonden met die business-voordelen dan SOA. (Je hoort ook wel dat een bedrijf dat een SOA implementeert de organisatie van de business moet veranderen, maar dat is natuurlijk onzin. Daarover een andere keer.)

SOA is eigenlijk het zoveelste voorbeeld waarbij een technische vernieuwing zonder meer als een business-voordeel wordt verkocht. De pretentie wordt natuurlijk niet waargemaakt, en vervolgens zijn we verbaasd als men cynisch wordt over de prachtige vergezichten die door de IT steeds worden geschilderd.

SaaS is een echte belofte, voor de business, en vooral voor de organisatie (en daarmee de kosten) van de IT. Om SaaS waar te kunnen maken, is er een SOA nodig. Dat is alles.

Link naar Phil Wainewright

Ik heb de blog van Phil Wainewright als link toegevoegd aan de link-lijst.

woensdag 1 augustus 2007

Is Web 2.0 eng?

William Davies heeft een aardig verhaal op The Register, over Web 2.0. Hij vergelijkt het met de "koude benadering" door o.m. Gary Becker van het niet-economische leven. Davies vindt het blijkbaar heel verkeerd dat Becker c.s. allerlei rationele (dwz; gedreven door eigenbelang) motieven onderzoeken in (ook) het sociale gedrag van mensen. Ik snap Davies niet zo: volgens mij heeft Becker gewoon gelijk.

Maar goed, Davies' waarnemingen over Web 2.0 snijden wel enigszins hout. Je ziet inderdaad niet alleen een technologisering van het sociale leven, maar ook een economisering. Alleen: ik denk dat dat niet erg is, omdat die economisering niet verder zal gaan dan hij eigenlijk toch al ging. Web 2.0 maakt het alleen expliciet en zichtbaar.