Sunday, September 22, 2013

Tuesday, July 31, 2012

Your Brain at Work

A great book I just finished reading is David Rock's Your Brain at Work: Strategies for Overcoming Distraction, Regaining Focus, and Working Smarter All Day Long.

Here are my notes:

1. Problems and Decisions

  • The prefrontal cortex is the part of the brain which is responsble for high-level thinking and decision-making
  • Metaphor: the "stage" (of a theater)
  • Prioritizing is an energy-hungry yet crucicial task
  • Using visuals is often useful
  • Get things out of your head (e.g. to paper)
  • Schedule most attention-rich tasks to time slots with a fresh mind
  • Simplify, group big problems/tasks into chunks
  • Focus on only one conscious task at a time
  • Multitask only with embedded, automated routines
  • Stop external distractions
  • Veto internal distractions early on
  • Find zone of peak performance: right amount of stress
    • to increase stress: small does of fear (e.g. visuals), novelty, new perspective, humor
    • to decrease stress: activate other brain regions: walk, relax, music
  • To gain insights e.g. for creative tasks: take pressure off. do something fun, think of big picture instead of details.

2. Staying cool under pressure

  • Emotions are controlled by the limbic system
  • The limbic system connects emotions with thoughts, objects, people, and events
  • Over-arousal reduces performance
  • Once emotion kicks in, don't supress but apply
    • labelling (give names to emotions)
    • reappraisal  (reframe the situation)
  • Find ways to create choice and perceived autonomy
  • Four ways to practice reappraisal:
    • reinterpret (look from different angle, give situation a different meaning)
    • reorder values (e.g. value working with people higher than in the past)
    • normalze (look for an explanation)
    • reposition perspective (look through eyes of other person)
  • Set lower expectations and exceed them. Will trick brain into "reward" mode.
3. Social interactions

  • The one thing that makes people happy is the quality and quantity of their social connections
  • Social connections are actually a primary need, such as food and water at times
  • Healthy collaboration with others require safe connections.
  • Anytime you meet someone new, make an effort to connect on a human level as early as possible. 
  • In the absence of positive cues, people are classed as foes and not friends.
  • A sense of fairness can be a primary reward for the brain (and unfairness a thread).
  • Increasing perceived fairness can make you very happy, e.g. volunteer work, donating money
  • Status is a significant driver of human behavior. Sense of status going up activates reward circuits in brain. Similar, sense of status going down is perceived as threat.
  • Trick your own brain into "status rewards" by playing against yourself. E.g. improve your golf handicap, bet against yourself.
  • Reduce status threats by admitting mistakes, sharing humanity.
  • 5 major social domains = SCARF: Status, Certainty, Autonomy, Relatedness, Fairness

4. Change
  • Most people don't like "feedback" conversations.
  • Instead of suggesting people what to do, bring people to their own insights. Help them think about their thinking process.
  • Change in the brain is possible and can be permanent.
  • Focused attention is a good way to change the brain.
  • Move people to "toward" state and to focus on solutions instead of problems. Repeat.

Friday, February 24, 2012

Cool things I learned from the book "You are not so smart"

A pretty entertaining book I just finished reading is You Are Not So Smart: Why You Have Too Many Friends on Facebook, Why Your Memory Is Mostly Fiction, and 46 Other Ways You're Deluding Yourself by David McRaney.

In short, the book contains a collection of common misconceptions about ourselves, and what we can learn from them.

After reading, I felt like writing down some the key points, so I might as well share them in a blog post. The bullet points written in italic are my own 2 cents.

1. "Priming":
  • Most of the time, we are unaware that we are being influenced. Reason is that only a small fraction of our subjective experience happens at the conscious level, the rest happens on "autopilot" and is subject to influence without being noticed.
  • We can be more successful by taking this into account, in particular when we want to change our own behaviors ("prime ourselves"). E.g. by creating environments where we get desired stimuli even when our brain is on auto-pilot.
  • Alright, I'll add a few pictures of healthy food and people doing work-out to my desk.

2. "Confabulation":
  • We often create "stories" in our head to explain our own decisions and behaviors, and even our own history. In other words, we're lying to ourselves without being aware of it.
  • Keeping this in mind and acting on it can help us make better decisions. 
  • I guess this means we should be open to double-checking even those facts that we know "for sure", in particular when making important decisions.

3. "Confirmation Bias"
  • We typically like to be told what we already know or believe. 
  • To form well-rounded opinions, we shouldn't only look out for validation; but also seek evidence for what is contrary to our current point of view.
  • Ok - I'll watch "Fox News" once in a while from now on... 

4. "Hindsight Bias"
  • We tend to forget that we changed our mind. I.e. we sort of "edit" our memory and erase the parts where we didn't know something or had a different believe that we have today.
  • Knowing this, we should be skeptical when other people state that they've "always known" something. 
  • Also, knowing this will help us being more constructive in discussions and arguments - by keeping in mind that due to hindsight bias, the other person might really believe he/she is right and never was wrong in the past.
  • Makes sense to me, although I wonder how to argue with a person who is convinced to be right. Certainly I wouldn't wanna say "You're wrong! That's called hindsight bias!"...


5. The Texas Sharpshooter Fallacy

  • We tend to see patterns and meanings in purely random events.
  • Accepting that the world is full of random conincidences can help us focus on things that have real meanings.


6. Procrastination

  • We're often subject to the "present bias": we ignore that what we want now is different from what we will want later. 
  • To avoid procrastination, our "now-self" needs to outmaneuver our "future-self".
  • There's nothing wrong with admitting not to have a "strong will" when it comes to implementing resolutions. It's perfectly fine and actually a smart thing to do to trick our future-selves. Examples:  ask a friend to remind us to go to the gym; use software which disables internet access to spend less time at the computer. 


7. Normalcy Bias

  • In a disaster scenario such as an earthquake or plane crash, we tend to mentally "freeze". Instead of acting, we pretend everything is normal and do nothing. 
  • This can be avoided by thinking ahead about the necessary steps.
  • It can make sense to think of what we would do in certain emergencies. For example: what if a car accident happens right in front of us? what if we're in a building that's on fire? We think that we'll be able to quickly identify the right steps and act accordingly, but often that's not true. For example, building on fire -> right thing to do is "get out", but people will often do stuff like "shut down computer" first.

... will continue this later. The book has 48 chapters in total, many of them are pretty interesting.

Monday, May 30, 2011

Du-Reform auf Deutsch!

Wie wäre es, wenn wir das Siezen im deutschsprachigen Raum abschaffen?

Und uns einfach alle Duzen und mit Vornamen anreden, so wie im Englischen?

Meiner Ansicht nach hätte das enorme Vorteile - um nur ein paar zu nennen:

  • Gespräche sind offener und direkter. Muss auf Höflichkeitsfloskeln Rücksicht genommen werden, wird oft um den heißen Brei geredet. Unter Duzpartnern kann Klartext geredet werden.
  • Gespräche sind entspannter. Warum gelten Amerikaner als entspannter verglichen mit Deutschen? Der kumpelhaftere Umgang miteinander und die Anrede mit Vornamen spielen sicherlich eine Rolle dabei.
  • Keine Unklarheiten mehr über die richtige Anrede. Wer war nicht schon einmal in einer Situation, in der nicht ganz klar war, ob man sein Gegenüber nun mit "du" anreden durfte oder nicht? Besonders kompliziert kann es werden, wenn man versucht, die direkte Anrede ganz zu vermeiden. 
  • Keine Konflikte, wenn Meinungsverschiedenheiten zum Thema Duzen herrschen. Schon einmal vom Vorgesetzten abgewatscht worden, weil man dem Kunden das "du" angeboten hat? Solche Auseinandersetzungen sind zeit- und nervenraubend und vollkommen nutzlos.
  • Wenn auf Englisch und Deutsch kommuniziert wird, z.B. in internationalen Geschäftsbeziehungen, müssen keine unterschiedlichen Anreden mehr verwendet werden: "Herr Müller" auf Deutsch, "Peter" auf Englisch. Dies vereinfacht die Kommunikation erheblich.
Ohnehin ist man doch heutzutage mit vielen Mitmenschen bereits per du:
  • mit Familienmitgliedern und Freunden
  • unter Schülern und Studenten
  • unter jungen Leuten (ca. unter 35)
  • in vielen Firmen, als Teil der Unternehmenskultur
  • in einigen Parteien (SPD, Grüne), Gewerkschaften und Vereinen
  • in der Kneipe, auf Festen ...
Also - wozu noch das "Sie"? Meine Ansicht nach ist das ein alter Zopf, den wir in den nächsten Jahren abschneiden sollten.

Was ist mit den Vorteilen des Siezens?

Selbstverständlich hat das Siezen auch Vorteile. Die Anrede mit dem förmlichen "Sie" schafft eine respektvolle Distanz, die in manchen Situationen durchaus gewünscht sein kann. Beispiele sind: Arbeitskollegen, insbesondere Vorgesetzte; Polizisten, Lehrer, Richter. Eine Beleidigung rutscht nicht schnell heraus, wenn man per "Sie" ist. 

Stimmt alles. Aber- im englischsprachigen Raum geht das alles auch, und zwar ohne das "Sie". Ein Richter wird mit "Your Honor" angesprochen, im Deutschen könnte man weiterhin "Herr Richter" sagen. Bei einem Polizisten, auf englisch mit "Officer" anzusprechen,  wird es schon etwas schwieriger: "Herr Wachtmeister" ist etwas altertümlich, "Herr Polizist" etwas ungewöhnlich. Aber auch da würde sich sicherlich die eine oder andere Formulierung durchsetzen. 

Und wenn eine Beleidigung nur deswegen nicht ausgesprochen wird, weil man sich gerade siezt, dann ist das doch eher ein Indikator für ein tiefersitzendes Problem. Offene und direkte Kommunikation, wie sie das Duzen fördert, lässt die Gesprächspartner diese ansprechen und lösen.


Wie ließe sich das umsetzen? 

Vermutlich nicht durch Erlass von Oben. Man erinnere sich an den enormen und vielschichten Widerstand gegen die Reform der deutschen Rechtschreibung, welche im Jahr 1996 durch die deutsche Kultusministerkonferenz eingeführt wurde. Schwer vorstellbar, dass die Bevölkerung für eine weitere Sprachreform per Regierungsdekret zu begeistern ist. Von den enormen Verwaltungskosten ganz zu schweigen.

Mein Vorschlag ist daher, die Idee einer "Du-Reform" von unten zu verbreiten und für Zustimmung zu werben - zum Beispiel durch:
  • T-Shirts, Mützen, Tassen etc. mit einem Logo für die "Du-Reform". Ein einfacher Aufhänger für ein Gespräch, sei es mit Kollegen, in der Straßenbahn, im Café ...
  • E-Mail Signatur, auch und insbesondere in der geschäftlichen Korrespondenz. Zum Beispiel so: 
---
Peter Müller
Bereichsleiter Logistik 
- Ich befürworte die Du-Reform und lade meine Gesprächspartner ein, mich mit "du" anzusprechen. -

  • Verbreitung auf sozialen Netzwerken (Facebook, XING, StudiVz ...)
  • Ansprechen von Personen, die als Multiplikator wirken können: Schriftsteller, Journalisten, Lehrer, Professoren, Führungskräfte ...
Übrigens, die skandinavischen Länder Schweden, Dänemark, Finnland, Norwegen und Island haben eine Du-Reform in den 1960er und 70er Jahren erfolgreich durchgeführt.

Was hältst DU davon?

Feedback, bitte! Falls ich auf Zustimmung stoße, werde ich als nächsten Schritt eine Webseite www.du-reform.de einrichten und dann umgehend die erste Ladung T-Shirts und Tassen produzieren :-) . Ach ja, falls jemand künstlerisch begabt ist und ein Logo entwerfen will...

Also - Du-Reform, ja oder nein?






Saturday, January 15, 2011

Facebook Hacker Cup team: please read for your post-mortem

Facebook have launched their annual Hacker Cup programming competition, basically a clone of Google's code jam. The idea is: using any programming language of your choice, implement algorithms that solve a set of given problems, then run them on a set of test cases and submit the results and your source code. For example, one of the problem sets of last week's qualification round was called "Double Squares". In this simple problem, a test case consisted of a single integer number X, and the requirement was:
For each value of X, you should output the number of ways to write X as the sum of two squares.
Sounds easy? It is: just check each integer number M between 0 and sqrt(X) whether X-M*M is a square of another integer, and make sure not to double-count number pairs.

The real challenge is to spend the right amount of up-front thinking about the solution before diving into the implementation. Since Facebook will grade your submission not only based on correctness, but also on time, you'll want to start hacking as soon as possible. But without a clear plan on what you're doing, you might easily overlook the easiest approach. Or, even implement a non-optimal algorithm that doesn't perform well enough on larger input sets. I made both mistakes with "Double Squares": instead of spending a few extra minutes on up-front thinking, I immediately jumped into coding and started by creating an array of all square numbers up to X (of course I will need them!), and then got stuck in some kind of brute-force algorithm which would probably would have run for days .

Now, you really wanna make sure your algorithm works and performs well enough even for large input sets: Facebook won't give you the "real" test cases with the problem statement, just a few sample ones. Only once you're confident enough in your solution is when you should click the "download input file" link - a timer will start, and you have precisely six minutes to run your code against the test cases and submit the results.

A couple of things went wrong during the qualification round: for one thing, while the instructions mentioned the 6 minute time window, they were easy to overlook. So, according to the angry comments of many participants, a lot of people downloaded all the test cases up-front, only to find their time limit exceeded at submission time. Also, there were reports of technical problems, in particular from people using Chrome who weren't able to save the input file to disk.

Facebook responded in a reasonable way: after a couple of hours, they lifted the six minute limit and allowed all participants to submit their solutions, although with a hefty time penalty. Fair enough, since solving one of the problems was sufficient to succeed to round 1. Also, they promised:

We're aware that things haven't gone very smoothly during the qualification round, and we're sorry that some of you experienced some frustration. I wanted to let you know what we're doing to improve things from here on. (...) First off, we've compiled a list of bugs in the interface and things that people have been confused by. We'll address all of these points before the next round. 
The next round, which was supposed to consist of three different sub-rounds at different time slots, was announced for this weekend. But things didn't quite go as expected... while the risk of accidentally starting the six minute timer was mitigated by a confirmation popup (good job on that one), here are some of the problems that I and probably hundreds of others experienced:

  1. "After the Dance Battle" was a maze problem which required finding the shortest path from start to exit, with some obstacles such as walls and the ability to "warp" from one field to another one with the same color. Fairly easy to solve if you've ever done a breadth-first search on a graph.

    Problems: the example input had 5 test cases, the example output had 6. So this was already confusing. But to make things worse, the actual input file was inconsistent with the example input, and your code was likely to fail with something like an "index out of bounds" exception. Good luck fixing it within six minutes, and make sure not to panic..

  2. "Power Overwhelming" was basically a constrained optimization problem. Given a budget M and the cost of a warrior (W) and a "shield generator" (G), find the optimal number of warriors and shields to buy to maximize damage to an opponent. Damage created was the number of generators times the number of warriors.

    Problems: The original problem statement was wrong and asked to output the number of warriors for the optimal solution - which was inconsistent with the sample output. After about an hour, Facebook silently updated the page, which now asked to output the number of generators of the optimal solution. Wow. Now suddenly, my algorithm worked with the test input set and returned the expected results for all test cases - except one, which also turned out to be wrong.

  3. Submitting the results and source code would only work occasionally, mostly clicking the submit button would not provide any feedback to the user - while the six minute timer was running down to zero. Again, don't panic!

  4. Facebook realized that there were technical problems with the submission, and I can't believe what their response was: about 30 minutes before the end the round, they announced:
Given the high rate of submission failures we are experiencing, we are shutting down the first subround a little early.

Wow. I can only imagine the angry and frustrated faces of all the participants who, despite all the challenges,  managed to come up with a working implementation ready for submission - only to find the competition close prematurely...

 Anyways, here's my unsolicited advice to the team at Facebook who manages the Hacker Cup:


  • Minimize the risk of faulty problem statements by applying the same sound engineering principles used to write software: seek multiple peer reviews, ask people to "test" the problems (including the input/output data) end to end. As soon as there is a strong draft of a new problem, use version control (no kidding) and review every diff carefully and by multiple people. Once a problem is finalized, "ship" it. No more last-minute-changes!

  • Do a dry run of the competition. Simulate real load on your back-ends to minimize the risk of technical problems during submission. Also, make sure the UI is always responsive ("Submitting...").


  • No real-time changes after a round has started. Even if a problem statement is faulty, stick to it - figure out how to grade the submissions later. Don't change any other basic conditions, such as the end time of the round: it makes people angry and frustrated. Only exception: extending a deadline to compensate for technical problems is acceptable. But, don't make these decisions ad-hoc: think through possible scenarios up-front and have contingency plans available.


That all being said, I think the actual problems were pretty cool and if it weren't for all these difficulties, it could have been lots of fun. Given that my qualification remains valid and Hacker Cup doesn't get completely cancelled, I'm looking forward to the next round.

Saturday, September 18, 2010

Let Windows Azure update your Facebook status (part 1)

Wouldn’t it be cool to have a bot which automatically posts something to your Facebook profile for you? Imagine how much time you could save if you wouldn’t have to log on to your profile several times a day anymore to post something, but still get a steady stream of comments and responses from your friends!


For instance, the bot could automatically do the following types of Facebook postings for you:




  • “Hello world”: general statements like “Good morning everyone!”, or “Have a great weekend, everybody!”, based on current day / time. Could also mix with some feelings, such as “.. is tired .. looking forward to the weekend.”
  • News: post a link to a random news article, with a generic comment such as “This is interesting…” or “Wow!”. 
  • Humor: post a random link to a humor page (such as TheOnion.com, Dilbert.com), with a comment like “LOL” or “This is funny..”
  • Events: post a comment referring to a local event, e.g. “Is anyone planning to go to the Seattle Beer Festival on Sunday?”
  • Movies/TV: post a comment regarding a movie or TV show, like “Has anyone already seen ‘Twilight’? Is it really that good?!”
  • Countdown: counting down the hours or days until a specified event. Example: “5 hours left until my party starts - hope to see all of you guys tonight!”
Ok, seriously, probably that would be pretty useless. But I’ve been curious for a while now how hard it would be to implement at least a basic version of such a bot. Plus, I needed a reason to play with the set of new Microsoft technologies such as Windows Azure, SQL Azure, and the developer tools for Windows Phone 7 (RTM version has just been released yesterday) anyways.

So far, I see at least two key challenges:
  • Style and content of the automated posts need to vary.  Ideally, readers shouldn’t be able to distinguish bot-generated posts from human-written ones. A Facebook version of the Turing Test, so to say. ;-) This is probably a hard artificial intelligence (AI) / natural language processing (NLP) problem. For the V1 of the bot, a small set of patterns, repeated in a random fashion, would be sufficient.
  • The bot needs to be able to communicate with the Facebook APIs asynchronously, without requiring the user to be online. Authentication will be the biggest issue here. Therefore this is the problem I’d like to solve first.
So, since I’d like to use the Microsoft technology stack - what’s the best way to access the Facebook APIs in .NET? There is a Codeplex project Facebook Developer Toolkit which provides high-level wrapper classes (such as “User”, “Friends”) to access the Facebook API. However, after playing with it for a little while, it appeared rather buggy and unstable to me, which is consistent with the feedback from several other users (refer for instance to this stackoverflow discussion). Therefore, I’ll use Facebook’s C# SDK instead. It’s still only an alpha release and not much more than a lightweight wrapper around the REST API, but that’s good enough for now.

As a first proof of concept, I’d like to set up a simple ASP.NET web form, hosted in a Windows Azure web role, which takes a string as an input and immediately posts it to the user’s profile:



Only a few lines of code need to be added to the Page_Load method to immediately post the content of the text box to the user’s profile:

if (IsPostBack)
{
  Facebook.FacebookAPI api = new Facebook.FacebookAPI(token);
  Dictionary<string, string> postArgs = new Dictionary<string, string>();
  postArgs["message"] = TextBox1.Text;
  api.Post("/me/feed", postArgs);
}

That’s the easy part. However, note that the FacebookAPI class expects a “token” parameter, which is an access token string. If no such token is available from an earlier session, the page needs to redirect the user to a Facebook authentication form first.


Here's where we need to work around a quirk of Windows Azure: when redirecting to the Facebook authentication page, we need to pass in a redirect_uri parameter. It indicates the page the user needs to get redirected back after a successful login. Since want the user to be redirected to the current page after signing in, we'd usually want to use Request.Url.AbsoluteUri in ASP.NET for this purpose. In Windows Azure however, this will not return the URL of the original request (the one received by Azure's load balancer), but the one received by the actual web role VM handling the request. This "internal" URL contains a port number (:20000) only to be used between the load balancer and the VM.
This is a known issue and will be fixed in a future Azure release. Until then, we'll have to work around it by manually removing the port number :20000 from the URL:


string urlThisPage = Request.Url.AbsoluteUri.Replace(":20000",""); 

string urlRedirectAuthenticate = string.Format(




"https://graph.facebook.com/oauth/authorize?client_id={0}&redirect_uri={1}&scope=publish_stream",
_appId,
urlThisPage);

Page.Response.Redirect(string.urlRedirect);



Note the “scope=publish_stream” parameter: this is an extended permission the bot needs to be able to actually post to the user’s profile later.

Regarding the appId parameter: any connection to the Facebook API requires a (public) appID and a 128 bit private key, called the “App Secret”. Therefore, as a first step, it’s necessary to create an application in Facebook and point it to a valid URL: the page will be hosted in Windows Azure under http://maxifacebookbot.cloudapp.net, so Facebook needs to know about that.

After the user has signed in, Facebook does redirect the request to the original URL and adds a "code" parameter to it. The web server then needs to contact the Facebook API one more time to get it exchanged for the actual access token. Unfortunately, Facebook's C# SDK doesn't offer any help in doing this, but a HttpWebRequest to https://graph.facebook.com/oauth/access_token does the job. Note that this is where Facebook also requires the app secret to be passed in.





string urlExchangeCode = string.Format(
  "https://graph.facebook.com/oauth/access_token?client_id={0}&redirect_uri={1}&client_secret={2}&code={3}",
  _appId,
  urlThisPage, 
  _appSecret,
  Request.QueryString["code"]
);

HttpWebRequest request = WebRequest.Create(urlExchangeCode) as HttpWebRequest;
request.Method = "GET";
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
  StreamReader reader = new StreamReader(response.GetResponseStream());
  response = reader.ReadToEnd(); // contains "access_token=..."
}




Ok, let’s try it out: publish the web role to Windows Azure …







After opening http://maxifacebookbot.cloudapp.net, the app indeed redirects to the Faceboot login page. After logging in, the user has to confirm the special permissions requested by the application:




After “allow”ing, the web form shows up, and indeed, it does what it’s expected to do – nice!




Facebook is giving away that the post has been created via an application and not by the user. L So one of the things I’ll investigate later is whether there’s a way to authenticate with a real user session instead of “as an application”.

Anyways, since it turns out to be possible to do immediate wall posts from a Windows Azure web role process, I’m curious to find out whether this can also be done in a delayed/scheduled fashion from a Windows Azure worker process. One issue will be to hand over the access token: the user will still need to authenticate through a web form. Azure then needs to persist that token somewhere, maybe in a SQL Azure database. Also, it needs to make sure the token doesn’t expire – maybe sending dummy requests every few minutes will prevent a timeout.

Until then, have fun updating your Facebook status with MaxiBot! J


Thursday, September 16, 2010

Stuttgart 21 - welche Argumente überwiegen denn nun?

Auf der Webseite des "Bahnprojekt Stuttgart-Ulm e.V" (www.das-neue-herz-europas.de) ist mir heute das folgende Logo aufgefallen:
"Die guten Argumente überwiegen" .. hmmmmmmm. Ist das nicht schon rein semantisch fragwürdig, sollte das nicht wenn überhaupt heißen "Die Argumente dafür überwiegen"? Man mag mich hier der Haarspalterei veruteilen, aber ob ein Argument nun gut oder schlecht ist hat doch nichts damit zu tun, ob es ein Pro- oder ein Contra-Argument ist, oder?

Hier z.B. ein Pro-Argument von obiger Webseite:
Wegen der neuen Schnellfahrstrecke fährt der Großteil der Fernzüge nicht mehr durch das Neckartal. Die neue Trasse führt künftig vom Hauptbahnhof durch den Fildertunnel auf die Filder. Durch den Ringverkehr fahren die Züge künftig unterirdisch durch die Stadt. Das heißt: Mehr Schienenverkehr, aber weniger Lärm, weil mehr als 30 Kilometer der Strecke in Tunnels verlaufen.
Das ist ein gutes Argument. Wenn der Tunnel erst einmal fertig ist und die Züge da durch fahren, ist das für sich gesehen eine tolle Sache - das Argument selbst ist nicht angreifbar, statt dessen müssen Gegenargumente (und zwar ebenfalls gute) vorgetragen werden.

Hier dagegen ein Pro-Argument von der Webseite www.stuttgart21-ja-bitte.de:
Würde man Stuttgart 21 jetzt noch abwürgen, wären nicht nur die Kosten hunderttausender Arbeitsstunden sondern auch der Kaufpreis von 459 Mio. Euro für die Grundstücke - die ja dann nicht nutzbar wären - in den Sand gesetzt.
...
Es wäre ja auch das komplette Chaos und der wirtschaftliche Ruin, wenn man rechtmäßig getroffene Entscheidungen noch nach so langer Zeit wieder kippen könnte. Langfristiges zukunftsorientiertes Handeln wäre gar nicht möglich. An einem gewissen Punkt müssen demokratische Entscheidungen auch respektiert werden.
Das halte ich für ein schlechtes Pro-Argument. Die bisher investierten "Arbeitsstunden" und "459 Mio. Euro" sind sunk costs. Und es sollte ja wohl bitte zu jedem Zeitpunkt möglich sein, Entscheidungen zu revidieren, die sich nach erneuter Überprüfung als falsch herausstellen. Im Gegenteil, gerade bei langfristigen Projekten düfte eine regelmäßige Kursüberprüfung sinnvoll sein - z.B. könnten sich die Rahmenbedingungen geändert haben, früher getroffene Annahmen könnten sich inzwischen als falsch herausgestellt haben, Prioritäten könnten sich verschoben haben usw. Es ist daher gar kein Gegenargument nötig, das Argument hält bereits in sich einer genaueren Überprüfung nicht stand.

Bei schlechten Argumenten ist nebenbei gelegentlich Skepsis angebracht. Möglicherweise wurden diese wiederum von der Gegenseite ins Spiel gebracht, um sämtliche Argumente - auch die guten - in ein schlechtes Licht zu rücken ("Poisoning the well" Strategie).

Ein besonderer Fall von schlechten Argumenten sind solche, die nicht auf logischen Widersprüchen, sondern auf Halbwahrheiten oder Unwahrheiten beruhen. Hier z.B. ein weiteres Zitat von der Webseite des Bahnprojekt Stuttgart-Ulm e.V. - unter der Überschrift 21 gute Gründe für Stuttgart 21 wird behauptet:
Mit dem Bahnknoten Stuttgart und der Neubaustrecke nach Ulm wird das Reisen quer durch Europa schneller und bequemer. Die Züge müssen an der Geislinger Steige, dem größten Engpass des europäischen Schienennetzes, nicht mehr herunterbremsen. Von Stuttgart nach München dauert eine Zugfahrt nur noch gut eineinhalb Stunden.
Dies ist ein schlechtes weil irreführendes Argument: die Geislinger Steige ist Teil der Neubaustrecke Wendlingen-Ulm und hat mit Stuttgart 21 nichts zu tun, d.h. unter der genannten Überschrift hat das Argument nichts verloren. Hier werden ganz bewusst zwei getrennte Themenbereiche miteinander verbunden.

Nun mal ein Blick auf die Argumente der Gegenseite. Eines der wesentlichen Contra-Argumente sind die enormen Kosten des Projekts, verbunden mit einer möglichen weiteren Kostenexplosion. So wird z.B. auf der Webseite www.kopfbahnhof-21.de argumentiert:

Seit Beginn der Planungen kam es zu enormen Kostensteigerungen, scheibchenweise kommt die wahre Dimension ans Licht. Die für Frühjahr 2010 zugesagten Ergebnisse der Wirtschaftlichkeitsüberprüfung der Neubaustrecke Wendlingen - Ulm - und damit aktuelle und realistischere Baukosten - liegen immer noch nicht vor. Statt 6,5 Milliarden Euro werden Stuttgart 21 und die Neubaustrecke Wendlingen - Ulm mindestens 10 Milliarden Euro kosten und zum weit überwiegenden Teil aus öffentlichen Kassen finanziert. Über die Finanzierung dieser Mehrkosten wurde kein Einvernehmen hergestellt.

Eindeutig ein gutes Argument - vorausgesetzt die genannten Zahlen stimmen, ist es kaum angreifbar. Oder würde jemand argumentieren wollen, es sei doch ganz gut, die Öffentlichkeit lieber ein wenig im Unklaren über die Kosten des Projekts zu lassen? Wohl kaum.

Aber, gleich das nächste Argument auf der gleichen Seite erscheint mir schon nicht mehr so stichhaltig:

Bund, Länder und Kommunen weisen Rekordverschuldungen auf, die Regierung hat einen harten Sparkurs ausgerufen. Bereits vorher war der Verkehrsetat drastisch unterfinanziert. Wichtige Verkehrsprojekte werden dem Rotstift zum Opfer fallen. Die knapper werdenden Gelder müssen Projekten mit einem hohen verkehrlichen Nutzen, den weder Stuttgart 21 noch die Neubaustrecke aufweisen, zufließen. Jetzt gilt erst recht: Stuttgart 21 ist nicht zeitgemäß.

Naja. Sparkurs war immer, ist immer, wird immer sein. Aber wenn man den Befürwortern glauben schenkt, ist das Projekt ja eine Investition, das langfristig eine entsprechende Rendite abwirft - so behauptet z.B. die Stadt Stuttgart, langfristig mehr Steuern einzunehmen, als ihr Finanzierungsanteil kosten wird. Genausogut könnte man nun daher nun die ganze Argumentation auf den Kopf stellen und sagen, dass wir doch gerade in Zeiten knapper Haushalte unternehmerisch denken und öffentliche Mittel in Projekte mit entsprechender Rendite investieren müssten ... daher ist dies, meiner Ansicht nach, ein schlechtes Argument. Dieses Mal eins der Contra-Seite.

Wenn wir uns nun darauf einigen, grundsätzlich nur die guten Argumente zu betrachten - sowohl Pro- als auch Contra - welche "überwiegen" denn nun?

Meine Gedanken hierzu sind die folgenden:
  • Wirtschaftlich: ich weiß unterm Strich nicht, ob Stuttgart 21 eine gute Investition wäre oder nicht. D.h. ob die hieraus entstehenden Mehreinnahmen langfristig höher wären als die Kosten. Mangels Kristallkugel kann dies im Endeffekt niemand wissen, sondern nur auf der Basis von zahlreichen Annahmen schätzen.
    Das Problem ist, das es kaum noch möglich ist, den Verantwortlichen hier noch ein Wort zu glauben. Über die tatsächlichen Kosten und Risiken herrscht Unklarheit, fast täglich kommen neue Unstimmigkeiten ans Licht. Das Projekt ist offensichtlich politisch gewollt und wird schöngerechnet.
    Also? Es könnte trotzdem sein, dass Stuttgart 21 tatsächlich wirtschaftlich rentabel ist, aber ich halte es für unwahrscheinlich und glaub's jetzt daher einfach mal nicht.

  • Ökologisch: Über 200 Bäume im Stuttgarter Schlossgarten zu fällen .. das tut schon weh. Ansonsten, angeblich keine Gefahr für Mineralquellen und Grundwasser - aber wie gesagt, Thema Glaubwürdigkeit..

  • Bauzeit: seien wir realistisch, das ganze wird 10-15 Jahre dauern, bis es fertig ist. Ehrlich gesagt, wenn das wirklich durchgezogen wird, bin ich ganz froh gerade nicht mehr in Stuttgart zu wohnen.

  • Nutzen: also jenseits der Wirtschaftlichkeit aus Sicht des Steuerzahlers, was hätten wir davon als Besucher in Stuttgart und als Bahnkunde? Sicher, es wäre ganz nett, am Flughafen Stuttgart zu landen und gleich in den ICE zu steigen wie in Frankfurt. Aber im Gegenzug entsteht mit dem unterirdischen Hauptbahnhof doch ein neuer Flaschenhals - mit gerade einmal 8 Gleisen. Reicht das wirklich aus, langfristig? Klingt für mich eher nach mehr Gedränge, weniger Komfort, und keinerlei Möglichkeit, die Kapazität später zu erhöhen.

Gut, ich hab mir meine Meinung jetzt gebildet: ich bin für die Bahnstrecke Wendlingen-Ulm, aber gegen Stuttgart 21. Und jetzt kann ich auch ruhigen Gewissens der Facebook-Gruppe "KEIN Stuttgart 21" beitreten.

Und gegen die CDU war ich sowieso schon immer. :-)