Dienstag 24.4. und Mittwoch 25.4. war ich in Düsseldorf auf der iqnite Konferenz.
Dort habe ich mein Tutorial "Komplexität in der Softwareentwicklung reduzieren" gehalten und mich auch selbst fortgebildet. Besonders spannend waren die Keynote Vorträge. Hier meine Key Learnings aus diesen:
- Harry Sneed ("40 Jahre Software-Qualitätssicherung im Rückspiegel: "Die Entstehung einer umstrittenen Disziplin") verkündet das Zeitalter der Tester. Die Zukunft gehört den Testern! Entwickelt wird heutzutage kaum noch, stattdessen werden vorgefertigte Komponenten integriert, z.B. Web Services. Anmerkung: Da mein Herz ja für das Requirements Engineering schlägt, möchte ich hinzufügen, dass natürlich vor dem Kaufen und Zusammenstecken von Komponenten das Requirements Engineering erfolgen muss. Requirements Engineering wird also auch wichtiger!
- Prof. Gunter Dück sprach über "Professionalität im digitalen Zeitalter". In der Zukunft werden alle Routinearbeiten und einfachen Probleme in die Cloud, an einen Automaten oder nach Indien geschickt und dort von Billiganbietern erledigt. Oder der Kunde hilft sich selbst, dank dem Wissen aus dem Internet. Dies führt zur zweiten Revolution im tertiären Wirtschaftssektor.
Ärzte, Apotheker, Professoren, Rechtsanwälte, aber auch Programmierer und Tester verlieren die gut bezahlte, leichte Arbeit und übrig bleiben nur noch die schwierigen Aufgaben und üblen Probleme. Das heißt, Dienstleister müssen in Zukunft richtig gut sein und sich auch mit exotischen Themen auskennen, wenn sie noch Geld verdienen wollen. Hinzu kommt, dass sie außer dem traditionell am höchsten gewichteten IQ noch weitere
Intelligenzen haben müssen, nämlich emotionale Intelligenz, Kreativität, Wille, Attraktivität, Sinn. Aber, so sagt Dück, 98% aller Menschen über 18 sind nicht mehr kreativ! Wir müssen uns also vollständig ändern oder untergehen, insbesondere im Vergleich zu einer jüngeren Generation, die bereits besser für die digitale Zukunft gerüstet ist.
- Joey Kelly ("NO LIMITS - Wie schaffe ich mein Ziel"): Um seine Ziele zu erreichen, selbst ganz hoch gesteckte Ziele, braucht man Biss, Disziplin, man darf nicht wehleidig sein und muss immer wieder über seine Grenzen hinaus gehen. Daraufhin habe ich meine Zieleliste für die nächsten Jahre nochmal um einige aberwitzige Ziele ergänzt. Es ist nicht völlig unmöglich, dass ich sie erreiche, aber der gesunde Menschenverstand würde mich für verrückt halten. Darum verrate ich sie auch erstmal nicht.
Und zu guter Letzt noch: J.K. meinte, dass er vielleicht irgendwann seine Deutschlandtour wiederholt. Wer mit will, solle sich melden. Er dachte wohl, wir sind alle abgeschlaffte Informatiker, die sich davor scheuen, in 17 Tagen Deutschland von Nord nach Süd zu durchqueren und nur das zu essen, was man in der Natur findet. Haha, nach dem Vortrag fragte ich J.K., ob er das ernst gemeint habe. Nee, war ein Scherz. Schade, ich wäre ernsthaft interessiert gewesen. Fasten kenne ich schon, das kann ich. Also, vielleicht mache ich demnächst meine Deutschlandtour ohne Joey. Schade ist nur, dass man über solche Wanderungen eigentlich kein Buch mehr schreiben kann. Selbst nicht, wenn man mit einem Kühlschrank reist!
AndreaHerrmann - 27. Apr, 19:46
Ooops, I am currently writing a publication about how to prepare and to perform a risk estimation workshop. I decided to replace my usual example of the power plant by a hospital example. I do this for two reasons. Firstly, I feel at awe to discuss about the cost of a power plant explosion. It feels like doing something nasty on a graveyard. (I think of Japan.) Secondly, I am not sure whether I am right with my argumentation.
This is what I wrote in an earlier publication:
"My favorite example of a risk event where the mere risk number does not make sense is the one of a severe accident at a nuclear power plant. Such an event´s probability is very low, but the damage can be so high that it cannot be quantified reasonably. When assuming numbers for probability and damage and multiplying them, you can obtain any arbitrary number, depending on the assumptions, and if you calculate that the risk is 1000€ per month, this is of no significance, because it is clear that such an accident must never happen, independent of whether the risk is 10€ per month or 1000€ per month. The argumentation of above works here also: If we knew for certain that a nuclear power plant explodes once a year, we would not build them."
Reads a bit like nonsense, because a lot of people still think that nuclear power plants are a safe (and cheap!) way of producing energy.
I know: Psychologists can explain this using terms like "risk perception" and "risk attenuation". It is known that risk perception is constructed by a social process, not by facts. Thinking about this is a bit scaring because this means that a lot of avoidable accidents happen while on the other hand people by risk amplification constrain their lifes and avoid doing things that are not so dangerous after all.
OK, I return to my numbers. They make feel safer, don´t they?
AndreaHerrmann - 1. Apr, 13:53
next shows:
organiser of the CREARE workshop (Creativity in Requirements Engineering) March 19
http://www.refsq.org/2012/workshops/
Tutorial "Komplexität in der Softwareentwicklung reduzieren" April 24, iqnite conference
http://www.iqnite-conferences.com/de/index.aspx
7-8 Mai Seminar "Entscheidungen im Software Engineering -
Systematisches und rationales Entscheiden" at SIGSDATACOM
9 Mai Seminar "Komplexität im Software Engineering" at SIGSDATACOM
AndreaHerrmann - 24. Mär, 23:36
Meine Vision
Software-Engineering-Methoden unterstützen...
- … Risiken zu kontrollieren, d.h. das Projektteam kann mit weniger emotionalem Stress bessere Software herstellen.
- … die Reduktion von Komplexität. Dadurch verringert sich nicht nur die Zeit für die Aufgaben (und folglich erhöht sich der Profit) und verringert die Anzahl an Fehlern, sondern vor allem vermeidet es den Schmerz der kognitiven Überlastung.
- … die Standardisierung oder sogar Automatisierung der Arbeitsprozesse des Teams. So werden die einfachen Aufgaben tägliche Routine und die Leute brauchen nur noch über die innovativen, riskanten und kreativen Teile des Projektes zu diskutieren und zu entscheiden. Kurz: Sie können sich auf das konzentrieren, das wichtig und interessant ist.
Dies sind die Themen meiner Schulungen:
- Requirements Engineering/ Anforderungsspezifikation
- Projektmanagement
- Zeitmanagement
- Komplexitätsreduktion in der Software-Entwicklung
- Entscheidungen in der Software-Entwicklung
Meine Kurse basieren auf Best Practices aus der Praxis, empirischen Forschung und meiner eigenen Vision. Ich bin spezialisiert auf kleine Projekte und leichtgewichtige Methoden.
Warum verwenden Praktiker oft Software Engineering Methoden nicht? "Das funktioniert hier nicht" ist nicht der wahre Grund. Dies kann durchaus sein, wenn Methoden oder Werkzeuge zu komplex für den Zweck sind oder einfach nicht passen. Was Praktiker aber wirklich brauchen, um ihre Software-Entwicklungs-Prozesse zu verbessern, ist:
- Die sanfte (allmähliche) Integration leichtgewichtiger Methoden in ihre aktuellen Prozesse. Auch während die Prozessverbesserung durchgeführt wird, müssen sie immer noch ihre tägliche Arbeit tun können. Jede revolutionäre Änderung hält sie nicht nur von der produktiven Arbeit ab, sondern bringt auch das Risiko mit sich, dass mit den neuen Methoden alles noch schlimmer wird als zuvor. Man schlägt sich lieber mit den bekannten Problemen herum als zu lernen, mit neuen Problemen umzugehen. Andererseits können mit einfachen Vorlagen, Checklisten oder mentalen Modellen bereits große Verbesserungen erreicht werden.
- Übersetzung von Forschungsergebnissen in die Sprache der Praktiker. Wenn ein Praktiker einen Forschungsartikel liest, fragt er sich hinterher: "Na und?", da Forschungsartikel üblicherweise nur sehr spezielle Fragen beantworten und einen inkrementellen Wissensgewinn darstellen, die für sich genommen keinen großen praktischen Nutzen haben. Um Nutzen daraus zu ziehen, müssen sie in den Zusammenhang mit dem Stand der Forschung gebracht werden, mit ähnlichen Forschungsergebnissen kombiniert und in praktische Best Practices übersetzt werden (wie: "Diese Forschungsergebnisse bedeuten, dass Sie nie mehr als 9 Aufzählungspunkte pro Folie haben dürfen.")
- Übersetzung von allgemeinen Modellen in Best Practices. Wenn ein Praktiker ein 300-Seiten-Buch liest, so kostet es ihn mehrere Stunden seiner Zeit, wiederholt aber nur dieselben abstrakten Grundkenntnisse, die er wahrscheinlich schon kennt. Um nützlich zu sein, muss abstraktes und allgemeines Wissen auf das Projekt angewendet werden, in dem man gerade arbeitet. Dies ist nicht einfach und verlangt ebenfalls einen Übersetzer.
- Sogar mit leichtgewichtigen Methoden fühlt man sich nur dann wohl, wenn man etwas Übung damit hat. Viele Leute lernen und werden überzeugt, indem sie Dinge anfassen oder tun, nicht dadurch dass sie einem Experten zuhören.
Darum besteht das Konzept meiner Schulungen darin, dass ich wissenschaftliche Forschungsergebnisse vorstelle und daraus praktische Schlussfolgerungen ziehe. Ich stelle leichtgewichtige, aber effiziente Methoden und mentale Modelle vor, und empfehle Best Practices. In den Übungen wenden die Teilnehmer die empfohlenen Methoden an und erhalten Vorlagen, Checklisten und andere einfache Werkzeuge, die mit nach Hause nehmen und bei ihrer täglichen Arbeit einsetzen können.
AndreaHerrmann - 24. Mär, 23:32
Viele Entscheidungen während der Software-Entwicklung verwenden Risikoschätzungen als Begründung/ Kriterium. Allerdings ist es gar nicht leicht, Risiken realistisch zu schätzen. Darum erforsche ich seit Jahren in einer Reihe von Untersuchungen, wie gut Menschen Risiken schätzen können. Ich möchte Sie bitten, den folgenden Fragebogen auszufüllen. Dies dauert nur 20 Minuten und leistet einen wichtigen Beitrag zur Erforschung der Risikoschätzungen. Sie brauchen keine Erfahrung mit der Entwicklung von Software zu haben. Bitte schätzen Sie spontan und ohne nach der richtigen Lösung zu recherchieren.
https://www.soscisurvey.de/risikoDelphi
Die Umfrage läuft noch bis Ende April 2012.
Ich sende Ihnen gerne im Juni die Ergebnisse der Untersuchung zu.
Herzlichen Dank!
Andrea Herrmann
AndreaHerrmann - 24. Mär, 22:53
Software Engineering methods allow to
- … control risks, what means to produce better software with less emotional stress for the project team.
- … reduce complexity. This not only reduces the time needed for specific tasks (and consequently enhances project profit) and reduces the number of errors, but first of all it reduces the pain that is caused by cognitive overload.
- …standardize or even automate the development team´s work processes, so the simple tasks become daily routine and people only need to discuss and decide about the innovative, risky and creative parts of the project. Simply: They can focus on what is important and interesting.
These are the topics of my trainings:
- requirements engineering
- project management
- time management
- complexity reduction in software engineering
- decision-making in software engineering
My courses are based on Best Practices from practice, empirical research results and on my vision.
I am specialized on small projects and light-weight methods.
I believe the reason why practitioners often do not apply software engineering methods is not “This does not work here”. This can be true when methods or tools are too complex for the purpose or simply do not fit. What practitioners need for improving their software engineering processes is:
- Smooth integration of light-weight methods into their current processes. Even while improvement takes place, they still must be able to do their daily work. Any revolutionary change not only keeps them from productive work but also entails the risk that with the new methods things become even worse than before. Managing the known problems is always preferred to learning to manage new problems. But with simple templates, checklists or mental models, much improvement can be achieved.
- Translation of research results into practitioner language. When a practitioner reads a research article, afterwards he asks “So what?” because research articles usually answer only very specific questions and present incremental knowledge gains which for themselves are of not much practical value. In order to make sense, they must be put into the state of the research context, combined with similar research results and translated into practical Best Practices (like: “These research results mean that you must never have more than 9 items on your slides.”)
- Translation of general models into Best Practices. If a practitioners takes his time to read a 300 pages book, this book although costing him several hours of his time, only repeats the same abstract basic knowledge that he probably already knows. In order to be useful, abstract and general knowledge must be applied to the project in which the practitioner works. This is not easy and might also demand a translator.
- Even light-weight methods need some experience in order to feel at ease with them. Many people learn and get convinced by touching things and by doing, not just by listening to an expert.
Therefore, the concept of my trainings is that I present results of scientific research and draw practical conclusions from them. I present light-weight but efficient methods and mental models, and recommend Best Practices. In the exercises, the participants apply the recommended methods and are provided with templates, checklists and other simple tools that they can take home and use daily.
AndreaHerrmann - 6. Mär, 19:24
Everything has a reason. The reason why this blog was so inactive the last months is that I realized that there are some reasons for not writing about the topics that are currently keeping me busy. Firstly, some topics are secret. I do not want that the public knows too soon what I am working on, BEFORE I publish my results. The topics on which I work for my employer are company secret anyway. Secondly, the human factor of software engineering is a topic that touches very personal and emotional questions and the answers on these are subjective, sometimes beliefs and mine are based on (Christian) moral premisses that not everyone shares. Software engineering partly is a social science and as such treats systems whose components are humans. Each human is a complex system, hardly describable by a limited set of variables. And a group of humans is a system with emerging properties that can not be derived from the properties of the individuals. A group can be more competent than the most competent member, but also more cruel than each group member alone. This complexity makes research about humans developing software a field where research is highly difficult. We can measure effects and statistically detect correlations among variables, but interpretation of research results involves beliefs and guesses.
Most of my work life, I have been employed for realizing my superiors´ visions. However, for three semesters, I was a university professor (on a vacant professorship) and tasted the liberty of realizing my own visions. I had returned from practice to science in order to do research which is relevant for practitioners, which makes work life easier. This was my vision, which I could not realize before I was my own boss. I miss this taste! Therefore, I will be my own boss again, starting 1st June 2012. So, if you like, you can hire me respectively my trainings!
AndreaHerrmann - 6. Mär, 19:22
I liked this article about medieval marketing:
http://www.colemanmgt.com/medieval-marketing/
AndreaHerrmann - 14. Feb, 20:56
Start June 1st, I will be my own boss. I will offer software engineering and management trainings. And I will finish several of my books. :-)
Andrea
AndreaHerrmann - 14. Feb, 20:54
Theresa A. Steinbach and Linda V. Knight in their article
"The Relevance of Information Systems Research: Informing the IS Practitioner Community; Informing Ourselves" discuss how software engineering research can become more relevant for practice. Several measures can contribute to this:
- develop closer relationships with practitioners (e.g. by research funding by industry)
- doing more relevant research (by topics and methods of higher relevance)
- changing faculty evaluation
- better dissemination
During my researcher time I often had discussions with others, because for them it seemed natural that each research institute - like each consulting company - needs to develop its own methods and never use those of others.
It is only since I am senior enough that I could choose as research topic rather fundamental questions which I investigate by empirical research, like "Which properties must a good method have?" or "Why is this software activity so difficult to perform?"
After my experiment series about risk estimation, I am currently gathering literature about complexity and will probably come up with the idea for a new experiment series about complexity reduction in software engineering soon. I think that this is rather what practitioners will help in their work, not the requirements engineering method number 215.
AndreaHerrmann - 3. Dez, 16:12
Just some few thoughts about the difference of the time management of a manager and of someone who does “real work”. You know what I want to say… In my work life, I have had both types of jobs, alternatingly. The really hard jobs are those where I am a manager and am expected to do real work. Because this in practice means that I am a manager as long as the sun shines and I am a worker during the night and week-ends. Without kidding!
The Manager
The manager is someone who is doing his work by communicating: listening to presentations, giving presentations, talking on the phone, reading and writing emails, publications, meeting protocols and press releases. His days are fully booked by several weeks in advance. One meeting follows the other and between the meetings does 5 minute tasks.
Such 5 minute tasks are phone calls, organizing something, reading or throwing away unread journals and emails, planning trips and sticking train tickets on paper.
This rhythm of work makes his time planning very predictable. His secretary always knows where he is and when he will be busy and when he can be called by phone.
Top managers even manage to be at two places the same time, i.e. they book several meetings for the same time and then just skip or two – or all of them, if something even more urgent pops up.
In fact, a manager´s stress is born by the fact that there is always more information crying for his attention then a human brain can take up, and there are always more meetings than he can attent.
Therefore, he needs a clear strategy and vision which helps him to decide what is important and what is less important.
But the good news is that many meetings can take place without him and he can do his job without having read all emails and all publications thrown onto him. Often, it is even not so important
whether he managed to bring all projects to fly because not starting a project is less a problem than not finishing a project.
Managers always are in hectic and must be well-organized, especially take good notes. As they do not work deeply in any project but instead supervise many of them, they easily get confused, start mixing up different projects and forget what they said yesterday, because they say so much. When I am a manager, I have 5-10 meetings/ phone calls a day and write 30-50 emails per day.
When a manager must do “real work” like reading a longer text or writing something or programming something (some managers do), he must sit on it late in the night because during the day´s hectic, between all these meetings and with the phone ringing frequently, he can not concentrate on anything for longer than 10 minutes.
Among the managers, there are not only those with a manager´s job title, but also secretaries, teachers, call center agents, doctors and hospital personnel, and many more.
Those who do the “real” work
Not everyone can organize and manage things, talk and listen. Some people must also do real work like writing text, programming software, building houses, baking break and all these basic activities where you must sit or and for a while and concentrate on something for a longer time. They all produce something and the more hours they work, the more they concentrate, the more the produce.
Often, they need some time until they have prepared the tools for their work and at the end of the work, they must clean tools, wash their hands, range material, park the tractor.
Many productive activities make no sense when you have only 20 minutes for them, especially complex knowledge work where you need 20 minutes until your brain is fully prepared for the task.
While some of the productive work can be boring, it is also relaxing and when you have routine, you can listen to music or feel the famous flow in your brain, you can become faster or better or try different variants of something. You become calm and beautiful results leave your hand like magic.
Meetings, phone calls, any disturbance keeps you not only from working and producing, but it also interrups your flow. Usually, the worker´s usefulness is measured by the number of products he produces, sometimes also by their quality. Therefore, these persons must be able to work under high concentration as long as they wish, without being disturbed.
When they work on innovative tasks, things always take 2-4 times as long as expected, and this can even happen for tasks which they have done before.
Often, there is a deadline until which things must be finished, and this is what causes the stress. The worked, too, always has more to do than he can do during your work day, but unlike the manager, no tricks are possible. Maybe, he can skip a meeting, but he can not skip or delegate his work. He must do it. He needs a clear strategy what to do in this case. Working more hours? Delivering late? Doing sloppy work and like this save time?
It is also an art to apportion large blocks of work on a longer period of time, like a marathon runner must apportion his forces.
Because of these differences between manager and worker, it makes not much sense when managers gives hints on good time management to their staff, because what works for the manager does not work for those who do the productive work.
AndreaHerrmann - 20. Nov, 20:03
As I love lists and statistics, I have counted how many books and articles I have read since 2004 about software engineering. They are 252 books and 2761 articles. :-)
Not counted are novels.
AndreaHerrmann - 12. Nov, 22:41