maandag 30 juli 2007

Wat is software-ontwikkeling?

Een collega vroeg me laatst eens te kijken naar een leerboek over "software-ontwikkeling". Het was een aardig boek, ongeveer langs de lijnen zoals die boeken tegenwoordig worden geschreven; vrij veel OO en UML, maar verder het nodige over architecturen (J2EE, Corba, etc), wat over UIs, wat over projectaanpak (RUPachtig), etc. Ik vind dat toch wel raar. Want Sw-ontwikkeling is een "proces" met heel veel totaal verschillende
activeiten en deelgebieden erin.

Van oudsher werd het grootste deel overzien door de 'analist-programmeur'. Die deed een soort halfwas IA, hij ontwierp het systeem in techische zin, en programmeerde ook vrijwel alle aspecten; het "echte" programma, detransactiehandling, de JCL, de files, het scherm als daarvan sprake was. En hij organiseerde ook zijn eigen "project".

Ik ben nog zo opgeleid, maar dat begon toen al een beetje onzin te worden. Iig dreven informatie-analyse en min of functioneel ontwerp weg van het meer technische deel. En dat wegdrijven is alleen maar verder gegaan. "Business modeling" is een aparte tak van sport geworden, "architectuur" ook. DBA is al lang apart. GUI-design wordt door specialisten gedaan, en het resultaat wordt weer door andere specialisten
gebouwd. Etc, etc.

Bovendien: als die activiteiten nog in 1 hand vallen, is dat een probleem, want het resultaat zal suboptimaal zijn. De Programmero Universalis is dood.

En dan hebben we het nog niet over allerhande projectaanpakken, met bijbehorende pseudo-specialismen (agile, RUP, spiral, etc, etc).De nieuwe ontwikkelingen (SOA, SaaS, MDA/E, offshoring/outsourcing, enz) versterken dat alleen maar.

Dat zo zijnde: wat heeft heeft het dan voor zin om een "allesomvattend" verhaal te schrijven over software-ontwikkeling? Of het als 1 onderwerp te doceren, for that matter?

Die leerboeken leggen dan ook sterk de nadruk op OO en UML, maar ze durven zich er niet toe te beperken. Maar wat doen al die verhalen over Corba, RMI, J2EE, er dan toe? Waarom geen Flex, of C#, of VB, of voor mijn part Cobol en CICS? En waarom een of andere RUP-variant, en niet AD? Waarom geen verhaal over SaaS en de consequenties
daarvan?

En door al die aandacht voor die zaken er omheen, zal het OO-design verhaal ook de kern missen, denk ik. Want de grap is natuurlijk dat je OO moet gebruiken als een platform- en aanpak-onafhankelijke "taal" geschikt voor analyse en design, meer niet.

Ik denk dat het niet veel zin heeft om software-ontwikkeling, met alle aspecten die daarbij horen (van requirements gathering tot versiebeheer, en van testen tot design patterns) als 1 discipline te beschouwen. Dat is het niet meer, en dat is maar goed ook. Nu de leerboeken nog.

1 opmerking:

Anoniem zei

Yes undoubtedly, in some moments I can phrase that I approve of with you, but you may be inasmuch as other options.
to the article there is still a question as you did in the downgrade issue of this request www.google.com/ie?as_q=kristanix software button shop 3.06 ?
I noticed the phrase you suffer with not used. Or you functioning the dark methods of promotion of the resource. I take a week and do necheg