Archive for juni, 2013

The Emperor’s New Software

lørdag, juni 22nd, 2013

Many years ago there lived an Emperor. He was so fond of new clothes that he spent all his time and all his money in order to be well dressed.

Apparently, today we have a lot of ‘emperors’ so fond of new software that they spend all their time and all their money in pursuit of software solutions.

Visitor arrived every day at court and one day there came two men who called themselves weavers, but they were in fact clever robbers.

They pretended that they knew how to weave cloth of the most beautiful colors and magnificent patterns. Moreover, they said, the clothes woven from this magic cloth could not be seen by anyone who was unfit for the office he held or who was very stupid.

The Emperor thought: “If I had a suit made of this magic cloth, I could find out at once what men in my kingdom are not good enough for the positions they hold, and I should be able to tell who are wise and who are foolish. This stuff must be woven for me immediately.”

And he ordered large sums of money to be given to both the weavers in order that they might begin their work at once.

The hype curve of the potential usages of the product is as clear today in software as they are in this story.

The Emperor sends his old minister to check up on the weavers’ progress. The minister can’t see any product, but will not attest to the possibility that he is unfit for his job or very stupid, thus he expresses the wonders of the cloth.

The story repeats itself with other officials all claiming to see the wonderful product. Finally the Emperor is presented with the ‘cloth’ - and he too is too proud to admit that there is nothing there.

Getting dressed up in the makebelieve clothes, the Emperor starts off on a procession throughout the fair city. Everyone passed speak wonders of the cloth until a little child says: “But he hasn’t anything on.” Resounding throughout the crowd.

I’m not saying that software developers are swindlers - far from it, though there are less than adequate developers for some tasks. What I am trying to say is that people would rather try to keep up a facade of understanding than ask questions.

As Groucho Marx said: ‘It is better to remain silent and be thought a fool, than to open your mouth and remove all doubt.’

Silence is golden - unfortunately it is the price of silence, not the reward.

Software is not incomprehensible magic. If the solution you get is nothing like the solution you wanted, then most likely there have been communication issues.

If there is no executive support, no user involvement in the process, then you - the customer - will suffer. Whether this is due to failed projects, cumbersome work processes, or brittle solutions, you are partly responsible.

While H.C. Andersen might have had other reasons for writing The Emperor’s New Clothes, my parallel is the IT-illiterate decision makers out there. I’m not saying that everyone must speak IT, I’m saying that you should know your limits, and if you don’t know stuff you have to do, you should ally yourself with someone who can bridge the gap. But you should not be any less engaged in the production.

If you order a steak, medium-rare, at a restaurant, you would complain if you get a boiled steak, a well-done or a bleu steak. And rightly so. In software it seems you would not complain, just assume that you misunderstood the term, and the production facility - the kitchen and the waiter - performed their magic par excellence.

But this is just when it doesn’t go too bad. Quite often the parallel would be you ordering lemon sole (the fish), and getting the sole of a boot with a lemon on top. Paying the restaurant for their services, leaving the establishment still hungry, and returning the next day for another order of misconceptions.

Example: USAF wasting $1 billion on failed ERP project







“The Emperor’s New Clothes’ is a short tale by Hans Christian Andersen

The Essence of Software Engineering: Applying the SEMAT Kernel

tirsdag, juni 4th, 2013

The book, “The Essence of Software Engineering: Applying the SEMAT Kernel”, is written by Ivar Jacobson, Pan-Wei Ng, Paul E. McMahon, Ian Spence, and Svante Lidman. Published by Addison-Wesley, January 2013, ISBN: 978-0-321-88595-1

I am a bit confused. I had the notion that this was about improving software quality through the application of a rigorous set of rules. Section 1.1 “Why is developing good software so challenging?” seems like we’re on the right track. But I find that it has not that much to do with Software, nor Engineering. It seems it is a method for applying rules and visual indications for the progress of tasks by people for people. Which means that to me at least, this book is more about general project management than anything near software or engineering.

I found the tone of the book to be rather preaching and praising of this new found holy grail, the Kernel, all praise the Kernel, apply it to anything and everything. A common phase throughout is: “How can the kernel help you.” The kernel consist of just about 57 cards, but can be extended. Seems like the marketing managers choice for gamification Yu-gi-oh!-style.

I’m all for simple and concise ways of working. I do believe that visual aids can support collaboration and communication as well as bring a quick overview, and that these are needed for projects to succeed, but they are not all which is needed.

I believe in the “as simple as possible, but no simpler.” - as Einstein put it. As well as Antoine de Saint-Exupéry’s “You have achieved perfection not when there is nothing left to add, but when there is nothing left to take away.”

Throughout the book the Kernel will simply help do everything, it’s a veritable Swiss Army knife. I don’t think I’ve seen any professional choose the Swiss Army knife above their own set of tools. While the Kernel is lightweight - at least compared to RUP - then there are alternatives, which are even more lightweight, e.g. Impact Mapping.

To me it seems that applying the Kernel kind of looks like Kanban with a “work in progress”-board. But then it also looks a bit like a concurrent waterfall, which could be due to the fact that I read RUP and UML into the stuff that Ivar writes. Both of which were praised. In my opinion wrongly so. UML is great for back of the napkin illustration of concepts, a variant worked wonders in the Design Patterns book, but UML in the latest incarnation seems overly verbose as a modelling language - under the notion that a model is a simplified abstraction of the real thing.

Perhaps Ivar is biased from electronic engineering with all their symbols and glyphs (Try looking for IEC 60617 on Google). But what he fails to realize is that those symbols are really their programming language. For software development, we have our own programming languages, and we don’t need a modelling language to go into minute details - at least not as a document. If you generate the model from the source code you can apply as much details as you want, but believing that a change is applied both to the model and to the source code is betting against the DRY principle: Don’t Repeat Yourself.

Why do have a sense of concurrent waterfall? Well, the cards follow 7 aspects, called alphas: Opportunity, Stakeholders, Requirements, Software System, Team, Work, and Way of Working. While I agree to these, and their connections noted in the graphs, e.g. Figure 2-1 on page 15 (not shown here), then there is a notion of the 5 or 6 steps, and seemingly you can only progress, e.g. from Opportunity :: Identified to Opportunity :: Solution Needed. And while that might be true for opportunities, then I don’t see why Way of Working :: Working Well will stay there until the project is done.

Some of the praise in the book is from academia, and while it is easier to teach a rigorous system, it may still not be the right thing to do - at least it hasn’t helped adding UML, RUP, etc. to the curriculum.

In the praise section, Ed Seymour notes that: “This book represents a significant milestone in the progression of software engineering.” I’m sure that any book is a milestone in its domain, I just feel that this book is a milestone along a different road going in the, not quite right, not quite wrong, direction.

Uncle Bob - one of the three to write a foreword - wrote: “After reading the book, I found myself wanting to get my hands on a deck of cards so that I could look through them and play with them.” I felt the same at the beginning of the book, but now I’m thinking more about which game to play, and how many expansion packs will be published in the future.

All in all I’m quite disappointed with the contents of the book, though I’m sure it’ll get wide adoption, and we will be off course for another 10 years. Some of the contents is true and solid, the rest - apart from the intentionally left blank pages (all 34 of them approximately 10% of the book) - seems to me to be more of an academic solution to something which is only half the problem. It is easy to prove me wrong though - apply the Kernel to 12 or more different and average teams and have them develop successful software solutions on time and on budget for projects around the $5-10 million budget. Public projects seem to fare really poorly, that would be an interesting case to follow. If more than 1 project fails, then the Kernel is not the holy grail, depending on the success rate, we could argue whether or not the method is helpful at all.

I’m more disappointed with this book than I was reading Impact Mapping, which at 86 pages is about 25% of The Essence of Software Engineering, but with more information about applying the method, which is far easier if you can remember the correct order: Why, Who, How, What.

Resources

IT-Branchens manglende eksperter

lørdag, juni 1st, 2013

”Hver fjerde it-virksomhed kan ikke skaffe medarbejdere” (Pressemeddelelser, 2013)

Det er jo en trist titel, når man som it-arbejder ikke uden videre kan finde ansættelse i en it-virksomhed.

Nu er jeg sikker på, at problemet ikke blot drejer sig om, at der skal være lige så mange ledige, som der er stillinger, der skal besættes. På det plan er en it-arbejder ikke en ressource, men et selvstændigt individ med viden indenfor et specifikt område eller måske flere distinkte områder.

En af problemstillingerne er at matche, hvad virksomheden ønsker, med det de potentielle kandidater tilbyder. Det er som regel klart for fagmanden, at kunden ikke helt kan forklare, hvad de vil have, fordi de ikke har fuldt kendskab til det domæne, de ønsker noget i. På samme måde er det svært for kandidaterne at præcist profilere, hvad de kan, hvorfor det er en gevinst for firmaet, og hvad de ønsker.

Når dette så er sagt, så kunne det være interessant at vide, hvor mange ledige, der egentlig er i branchen, hvor mange ledige stillinger, der er, og hvilke områder det drejer sig om.

”Ifølge EU Kommissionen vil EU-lande frem mod 2015 komme til at mangle op mod 900.000 it-eksperter”

900.000 det er godt nok mange. Lad os kikke på nogle tal for at danne et overblik.

Iflg. It-branchen (It-branchen i tal), så var der i 2010 82.649 fultidsansatte i It-erhvervet. Kikker man derimod på Statistikbanken (RASA11: Beskæftigede (arbejdssted) efter område, branche (DB07), socio-økonomisk status, herkomst, alder og køn), så er tallet 47.704 det giver grund til forundring om, hvem der har ret, men det hører til i en helt anden diskussion.

For at ekstrapolere til resten af EU, så antager vi løseligt, at den samme procentsats af arbejdsstyrken arbejder i it-branchen.

Statistikbanken fortæller os, at der i 2010 var en arbejdsstyrke på 2,7 millioner WolframAlfa siger 2,9 mio. i 2011 (Labor Force European Union). Sammentæller man de 27 nationers tal opnås en samlet arbejdsstyrke på 245 mio.

Lidt matematik fortæller os, at it-branchens ansatte udgjorde 47.704 / 2.700.000 = 1,8% af den samlede arbejdsstyrke i Danmark i 2010.

Nu er it-branchen heldigvis i fremdrift, i hvert fald hvad angår beskæftigelse, kikker vi på Statistikbankens tal ser det ud til, at der
fra 2010 og frem er en year-on-year growth rate på 2%.

Bruger vi disse tal, så var der i 2011 ca.102% * 1,8% * 245 mio. = 4,5 mio. It-folk i EU.

Det giver os at der i 2015 - 4 år fra 2011 - vil være omkring: 102%^4 * 4,5 mio. = 4,9 mio.

De 900.000 eksperter antages at skulle være indeholdt i disse 4,9 mio. hvilket betyder, at eksperterne udgør: 900.000 / 4.900.000 = 18% dvs. et sted mellem hver 5. og hver 6. plads mangler en ekspert i 2015.

Benytter vi It-branchens tal, 82.649, i stedet når vi frem til 11% eller hver 9. plads i EU.

Hvad er en ekspert?

Hvis der er behov for eksperter, hvad er så en ekspert, og er domænet IT måske lidt for bredt til, at man kan danne sig et godt billede af, hvor det ville kræve en indsats, og hvad den indsats bør fokusere på.

Niels Bohr

Niels Bohr har engang sagt: ”En ekspert er en person, som har begået alle de fejl, som er muligt at begå inden for et begrænset område.” (Bohr) Jeg går ud fra, at Niels Bohr mente, at personen så også havde lært af sine fejl og ikke følte trang til at forsøge disse igen. I princippet kunne man sige, at denne person havde brute force gennemprøvet samtlige kombinationer i domænet.

Givet denne definition, ja, så er der ingen it-eksperter. Måske er IT for stort et domæne, og det vokser ganske hurtigt.

10.000 timer

Malcolm Gladwell foreslår 10.000 timers reglen i sin bog Outliers (Gladwell), hvilket nogle finder en rimelig regel (Antonio, 2009), og andre ikke (Why Gladwell’s 10,000-hour rule is wrong, 2012).

Hvis vi nu benytter denne regel og kobler den med et mandår på 1920 timer - lad os for nemheds skyld benytte 2000 timer/år - så vil en ekspert blive skabt ved 5 års dedikeret arbejde på det aktuelle domæne.

Det betyder, at en 5-årig universitetsuddannelse ikke kan klare at undervise bredt indenfor et smalt felt, f.eks. i datalogi lære de studerende om mere generelle ting, som: Abstrakte datastrukturer, algoritmer, analyse, design, og databaser. Men derimod ville være nødt til at presse de studerende til at tage et entydigt karrierevalg allerede på første studiedag.

Desuden vil det tage underviserne 5 år at blive eksperter på et enkelt nyt område, og først derefter vil de være klar til at undervise, hvilket giver en lead time på 10 år før de første studerende bliver eksperter. Dvs. vil ville se de første iPhone eksperter i 2017, hvis underviserne startede ved lanceringen i 2007.

Da it-branchen har en noget hurtigere produktionstid af nye teknologier og koncepter, så lader det ikke umiddelbart til, at vi skal sætte vores lid til, at universiteterne skal uddanne eksperter - i hvert fald ikke indenfor et snævert domæne. De skal derimod danne eksperter i at lære og at tænke selvstændigt med fokus på forskellige generelle domæner, således at de studerende bliver rustet til livslang selvstændig læring.

Måske er det ikke denne definition på ekspert, der er tale om. Om ikke andet, så er 2015 ikke 5 år væk, men 1½, hvilket vil betyde, at man bør starte i dag og de næste 78 uger arbejde dedikeret på et emne 128 timer om ugen. Dvs. omkring 5 timers søvn alle ugens 7 dage, og stort set resten af tiden fokuseret på emnet.

Andre definitioner

Wikipedia foreslår flere muligheder i forbindelse med ekspert.

Klog af erfaring

Denne minder meget om Niels Bohrs version, dog behøver man ikke at have begået alle fejl, men det betyder så omvendt, at hvis man blot har arbejdet med IT og gjort sig nogle erfaringer, så er man ekspert. Jeg mener ikke, at jeg bliver skatteekspert ved at have gjort erfaringer med min selvangivelse, så umiddelbart virker denne definition meget vag.

Selv om den ligner Niels Bohrs definition, så er resultatet helt modsat, nu er alle eksperter.

Klassifikation

En specialist kan løse opgaver, en ekspert kender til løste opgaver, en lægmand kender ingen løsninger, og en tekniker kender til nogle løsninger.

Umiddelbart finder jeg at vi så alle tilhører alle 4 grupper på én gang, når IT er domænet. Det at man kan løse en opgave i bedste Storm P. stil gør jo ikke en til en specialist, og slet ikke indenfor en anden gren af IT.

Arthur Mellen Wellington

Arthur Mellen Wellington har udtrykt noget i stil med: ”Kunsten at gøre godt med en dollar, hvad enhver klodrian bruger 2 dollar på tilnærmelsesvist at lave.” (Wellington) Det drejede sig dog om ingeniørfaget.

Umiddelbart ser en sådan definition jo god ud for forretningen, men den er nok ganske svær at måle, og givet erfaringen fra det virkelige liv, så lader det til at vi mangler mange eksperter og har manglet dem de sidste 20 år.

Børneopfattelsen

Jeg spurgte en 13-årig dreng: ”Hvad er en ekspert?” Til hvilket han svarede: ”Det er en, der ved alt om noget, kender alle reglerne, og kan alt (med den ting).” Hvilket måske er den bedste definition, jeg har hørt.

Relativ ekspertise

Egentlig kan alle disse forklaringer på, hvad en ekspert er, være lige gode, hvis man antager at det er relative termer frem for en universel uddybende term. Altså at man kan påtage sig ekspert titlen, hvis man blot ved alt det, de andre i nærheden ved, og lidt mere til. Givet Google og andre søgemaskiner, så er ”i nærheden” efterhånden blevet meget bredt, men nu er det jo ikke alt på nettet, der er lige sandt.

Fremtiden

Det kan være ganske fint at filosofere over, hvad en ekspert er, og hvordan det relaterer sig til hele it-branchen. Men på den teknologiske forkant, hvordan ser tingene så ud, hvad er det, der formentlig kommer til at ske i den nærmeste fremtid, som vi skal være opmærksomme på.

McKinsey & Company har for nyligt fremlagt Ten IT-enabled business trends for the decade ahead (Ten IT-enabled business trends for the decade ahead, 2013) som omhandler:

  1. Joining the social matrix
  2. Competing with ‘Big Data’ and advanced analytics
  3. Deploying the Internet of All Things
  4. Offering anything as a service
  5. Automating knowledge work
  6. Engaging the next 3 billion digital citizens
  7. Charting experiences where digital meets physical
  8. ‘Freeing’ your business model through Internet-inspired personalization and simplification
  9. Buying and selling as digital commerce leaps ahead
  10. Transforming government, health care, and education

Gartners forudsigelser ligger pudsigt nok ganske nært (Top 10 Strategic Technology Trends for 2013):

  1. Mobile Devices Battles
  2. Mobile Apps and HTML5
  3. Personal Cloud
  4. The Internet of Things
  5. Hybrid IT and Cloud Computing
  6. Strategic Big Data
  7. Actionable Analytics
  8. Mainstream in-memory computing
  9. Integrated Ecosystems
  10. Enterprise app stores

De stillingsopslag, jeg har set, ligger ikke særlig tæt på bare en enkelt af disse fremtidstrends. Det kan jo betyde, at disse stillinger allerede er besat af eksperter og specialister. Mit gæt er dog, at vi stadig er forankret i 2001-mindsettet, hvor det hele drejer sig om den enkelte forretning, og at kunder bare skal acceptere one-size fits all samt integrationsmulighederne/mash-ups er så godt som ikke eksisterende.

Set i det lys, så er de 900.000 manglende eksperter sikkert et meget godt bud, altså underforstået at op mod 20% af it-branchen vil i 2015 være beskæftiget indenfor områder, de ikke før har berørt, herunder de 10 McKinsey visioner, men om de er Bohr-eksperter eller blot relative eksperter, det vil fremtiden vise.

Når jeg ser på, hvilke produkter vi, i it-branchen, leverer i dag, så kunne det se ud til at vi mangler mere end 900.000 eksperter allerede i dag. Se evt. Rigsrevisionens beretning om POLSAG (Beretning til Statsrevisorerne om politiets it-system POLSAG, 2013) eller Bonnerup rapporten (Erfaringer fra statslige IT-projekter - hvordan gør man det bedre?, 2001) og 10 års indsigten (Bonnerup-rapportens ophavsmænd 10 år efter: Ingen er blevet klogere, 2011)

De personer, der i dag formentlig har mest kontakt med kommunerne, de ældre og de svage, bliver til næste år ramt af Lov om digital post (Lov om digital post ). Det er rigtigt, at de kan fritages, men skal vi ikke allerede nu gætte på, at det kræver en digital ansøgning? Vi bliver formentlig klogere, når virksomhederne fra 1. september i år kommer på den løsning.

Konklusion

Når man, som jeg, er ledig, og har indblik i de ovenstående ting, så synes jeg det er trist at se en udmelding om at hver fjerde it-virksomhed ikke kan skaffe kvalificeret arbejdskraft. Gad vide, hvor mange it-eksperter, der er, som ikke kan finde kvalificeret ansættelse.

Den nærmeste fremtid skulle gerne bringe en enorm omvæltning, hvor hverken COBOL, C#, Java, SOAP, XML, RUP, etc. er de dominerende termer indenfor seriøse brugervendte løsninger. Hvor Apache og IIS forsvinder fra markedet, og NGINX og lignende 10k webservere bliver betragtet som de sløve men bredt accepterede. En fremtid, hvor man arbejder med den anvendte teknologi frem for imod den, dvs. man ikke benytter PDF og Word dokumenter som web kommunikationsmedie. En verden, hvor der står Gb på datatransmissionshastighederne og ikke Mb.

Betragter jeg så mig selv som ekspert? Nej, jeg vil hellere forvanske den engelske talemåde ’Jack of all trades, master of none’ til ’Jack of many trades, master of some’ og så evigt lærende. Men jeg ved, at i nogle lægmænds øjne betragtes jeg som ekspert i IT. Det fortæller mig blot, at vi stiller store krav til resten af befolkningen, når vi siger, at de alle skal være web kyndige i morgen.

Til trods for det, så går jeg ud fra, at jeg stadig er anvendelig i it-branchen, hvor mine styrker kan anvendes sammen med andres til at lave noget større, end vi havde formået alene.

Bibliografi

Erfaringer fra statslige IT-projekter - hvordan gør man det bedre? (03 2001). Hentede 31. 05 2013 fra tekno: http://www.tekno.dk/pdf/projekter/p01_Rapport_it_proj.pdf

Bonnerup-rapportens ophavsmænd 10 år efter: Ingen er blevet klogere. (08. 12 2011). Hentede 31. 05 2013 fra Version2: http://www.version2.dk/artikel/eksperter-intet-nyt-under-solen-efter-10-aar-med-it-fadaeser-33115

Why Gladwell’s 10,000-hour rule is wrong.(14. 11 2012). Hentede 31. 05 2013 fra BBC Future: http://www.bbc.com/future/story/20121114-gladwells-10000-hour-rule-myth

Beretning til Statsrevisorerne om politiets it-system POLSAG. (03 2013). Hentede 31. 05 2013 fra rigsrevisionen: http://www.rigsrevisionen.dk/media/1812345/9-2012.pdf

IT-Branchens Pressemeddelelser. (23. 05 2013). Hentede 31. 05 2013 fra IT-Branchen: http://www.itb.dk/Everest/showdoc.asp?type=doc&id=130523065738

Ten IT-enabled business trends for the decade ahead. (05 2013). Hentede 31. 05 2013 fra McKinsey & Company: http://www.mckinsey.com/insights/high_tech_telecoms_internet/ten_it-enabled_business_trends_for_the_decade_ahead?cid=disruptive_tech-eml-alt-mip-mck-oth-1305

Antonio, V. (2009). Expert Level - The 10,000 Hour Rule. Hentede 31. 05 2013 fra Victor Antonio: http://www.victorantonio.com/malcolm_gladwell_10000_hour_rule

Bohr, N. (u.d.). Hentede 31. 05 2013 fra http://www.citatlisten.dk/citat.asp?tekst=Niels%20Bohr&valg=find

Ekspert. (u.d.). Hentede 31. 05 2013 fra Wikipedia: https://da.wikipedia.org/wiki/Ekspert

Expert Contrasts and comparisons. (u.d.). Hentede 31. 05 2013 fra Wikipedia: http://en.wikipedia.org/wiki/Expert#Contrasts_and_comparisons

Gladwell, M. (u.d.). The 10,000 Hour Rule. Hentede 31. 05 2013 fra Gladwell.com: http://www.gladwell.com/outliers/outliers_excerpt1.html

It-branchen i tal. (u.d.). Hentede 31. 05 2013 fra http://www.itb.dk/site.aspx?p=655

Labor Force European Union. (u.d.). Hentede 31. 05 2013 fra WolframAlfa: http://www.wolframalpha.com/input/?i=labor+force+european+union

Lov om digital post . (u.d.). Hentede 31. 05 2013 fra borger.dk: https://www.borger.dk/Sider/Lov-om-digital-post.aspx

RASA11: Beskæftigede (arbejdssted) efter område, branche (DB07), socio-økonomisk status, herkomst, alder og køn . (u.d.). Hentede 31. 05 2013 fra http://www.statistikbanken.dk/ILON2

Top 10 Strategic Technology Trends for 2013. (u.d.). Hentede 31. 05 2013 fra Gartner: http://www.gartner.com/technology/research/top-10-technology-trends/

Wellington, A. M. (u.d.). Arthur Mellen Wellington. Hentede 31. 05 2013 fra Poem hunter: http://www.poemhunter.com/arthur-mellen-wellington/