Nun ist es offiziell. Das BIP ist um 5% geschrumpft.
Hier nochmal der erste Absatz meines Postings vom 6. Februar:
"Zur Zeit überbieten sich die Wirtschaftsforscher mit Negativprognosen. Während vor einem halben Jahr für 2009 noch 1,5% Wachstum in Deutschland vorhergesagt wurde, liegen wir im Moment schon bei -2,5%. Extrapoliert man das Q4 2008, dann wären auch -4,8% möglich."
Na bitte.
Nur so nebenbei: da steht auch "DAX 3.500". Das war bei einem Stand von 4644. Einen Monat später war dann das Minimum bei 3666.
Gar nicht so schlecht für'n Techie.
_happy_forecasting()
16. Januar 2010
Metaprognose Fazit 2009
Labels: Metaprognose
9. Januar 2010
Blizzards Next MMO
The next game will be a cross over between MMORPG, Adventure, and the Sims in a futuristic cyber punk world with space flight and also dark corners. Here is why:
What's next?
There was always the question what would be the next big thing. But until recently the industry was too busy creating Everquest clones with many different skins. The main movement in the MMO space was to duplicate the success of WoW. We saw very successful games by 2004 standards, which are now regarded as complete disappointments because they failed to reach WoW numbers.
Now is the time to go one step further. The blog-chatter about what's next is ramping up. More and more people are talking what could be next. Blizzard started hiring for the next game some time ago, hinting at a "different massively multiplayer experience". Clearly, the concept of monster beating with the tank-healer-DPS trinity will not be enough for the next generation of games. Repeating the same in a steam punk or wild west universe won't do.
To call it the next generation there must be something really new and different. On the other hand, Blizzard does not primarily innovate. Blizzard perfects. So, we have to look for existing trends which can be pushed to the next level by extensive polishing.
Crossover and Integration
I believe that crossover and ubiquity are the key motives. Not the ubiquity of augmented reality. That will be left for the 2025 generation. The next MMO will break out of platform restrictions and single operation models. The next generation will span multiple platforms, integrate different play styles and address diverse audiences in one game.
We already see many of these developments. CCP is very successful with EVE-Online (by 2004 standards :-). They lead the way into new territory with a console game that is separat from EVE, but still integrates with the PC game. Public character profiles outside of the game client where once a "great" feature. They combine the game world with the Web and are now taken for granted. Some publishers successfully integrated the mobile platform with PC games. Virtual goods and social games made a remarkable splash last year and are expected to explode in 2010/11. Virtual goods are a great way to address multiple platforms at once and integrate casual gaming with hard core play style. Social networks are sometimes regarded as virtual worlds. Not in the 3D sense, but in the sense, that people and all of their friends live there.
200 Million Dollar Production
There is a company that managed to perfect trends so well, that it produced the leading game in 3 genres. Blizzard also is the only company that dares to invest a lot of money into an MMO. After the perceived failures between 2005 and 2008 investors shy away from MMOs. Blizzard surely believes in its own capabilities having proven them 3 times in a row. And we are talking about a lot of money. Not the $ 60 Mio. price tag of WoW. We can expect the next generation to cost as much as a big movie production. Something like $ 200-300 Mio.
Casual and Extreme
So here is my take: Blizzard needs something that captures the masses. For the next thing they need a larger audience than WoW. A demographics like Facebook is the goal and Facebook numbers would be cool. This means normal people. Not only hardcore gamers but average people. Normal people, especially women want to live, not slay monsters. They want to live a life, tend their stuff, socialize, and care for others. Micro-managing a farm or a fish pond is currently big. Micro-managing also has been very successful with women earlier. That's the Sims aspect of the new game: housing, living, socializing. Yep, Sims online failed, but nobody knows why. This time the concept will succeed as part of something larger.
Adventure and Social
There must also be adventure. Story is an emerging trend. Blizzard will capture adventurers with better quests and story driven soloing: a Longest Journey aspect instead of the kill-ten-rats grind. Raiding and end game is and will be important. There must be dungeons. That's the easy part: the WoW aspect. Of course, it's not a sharded server. Everyone will live in the same huge universe. That's a requirement of the Facebook aspect. It is free to play with virtual items driven premium features covering casual and power gaming styles.
To capture the masses, the game will not be limited to a genre. Genre can scare off customers. It won't be pure fantasy, not SciFi, not just underworld darkness. Not Starcraft, not WoW, not Diablo. It will be a new setting. The Sims aspect needs a big bright world. The Longest Journey works well modern setting. However, the WoW aspect needs dungeons and mystery. And when you enter a space ship then you are clearly SciFi.
Cyber Punk and Monsters
Fortunately they can all be combined. Imagine a futuristic city with player housing. This is where you live. The normal game life happens in a hyper developed privileged world, surrounded by technology and lifestyle with current western and Asian street trends. Starting in this futuristic environment players would adventure in the "upper world", uncover conspiracies and safe the world (see The Longest Journey). They could easily switch to cyberspace (Otherland) for parts of the quests. My own wishful thinking would add space travel and combat a la EVE-Online or SWG, including an Elite universe.
And where there is light, there is also shadow. The underworld of the distant future is big, dark and old. It is a perfect environment for a World of Darkness where technology meets arcane arts and monsters. Vampires? no problem: a product of criminal bio engineering or uncontrolled nanotech. Or they just developed over thousands of years in kilometers deep dungeons of a planetary megalopolis. Monsters have been gengineered or imported over thousands of years. The perfect setting for an embedded RPG shooter. But "underworld" does not imply darkness. Future tech will supply lower levels with a virtual sky and enough light, if needed. It's just not as civilized as the upper world.
Genre scares off customers. The basic system will be genre free with a slight twist towards hyper modern reality. Other genres will be embedded. Genre embedding is already happening. We stopped wondering a long time ago about the gnome steampunk embedded into Tolkien-fantasy WoW.
Combat and Farming
Of course adventures in both worlds will have combat with the full range of skills, guns, quests, shooting, nano and bio weapons, field effect, casting, regeneration, healing, vicious enemies, robots, cyberspace hacking, monsters. But also character development, tending the garden, arranging player housing and meeting friends. A world where the whole family can live, do their preferred activity (dad: adventure, mom: sims, son: shooter, daughter: social) and meet for diner. A single access point for an online life accessible from different media like PC, console, mobile, browser.
EVE, Second Life, Sims, Facebook, Zynga: watch out.
Sounds too much? we are talking about a product life cycle from 2015 to 2030, about 64 core CPUs, full body gesture controlled Sims and friends who join your family in their virtual living room with ambient 3-D proximity voice and video. It will be futuristic ... and polished.
_just_guessing()
Update:
Just minutes after I posted, I saw this Massivly article in the feed reader. Massively posted 5 hours after I started writing. What a coincidence. Especially since I copied large parts of the text from my 2 years old "suggestion" to CCP. @CCP: it's not too late.
Labels: EVE, MMORPG, Second Life, WoW
20. Dezember 2009
Neue Wege im IT-Management: Artikel im VentureCapital Magazin 12/2009
Im aktuellen Heft vom VentureCapital Magazin ist mein Artikel über Scrum erschienen (Volltext wegen Copyright nicht frei verfügbar).
Keywords: IT-Management Agile Entwicklungsmethoden Investoren Internet-Startups Softwareentwicklung Pitch Projektsteuerung Scrum Cloud-Computing Open Source Kapitalgeber Time to Market Scrum eliminiert Unproduktivität "The Mythical Man-Month" Frederick Brooks wenige Funktionen Output mit Scrum verbessert Scrum-Prinzipien doppelte Geschwindigkeit Games- und Internetbereich Microsoft, Intel, Yahoo, Accenture, Adobe und GE Healthcare Enfant Terrible Mainstream Jeff Sutherland OpenView Venture Partners Venture Capitals Erfolgschance Investments Qualität Effizienz Due-Diligence Prüfung Impediments Hindernisse Heiner Wolf Gründer CTO virtuelle Welt weblin 3 Mio. User Chief Scientist Open Virtual World Projekt Social Games und Virtual Goods
26. November 2009
IT-Projekt der Bundeswehr in der Krise. Wie dumm kann man sein?
Die neue Nachricht: "beim IT-Projekt Herkules der Bundeswehr ufern die Kosten aus".
Eigentlich nicht ganz so neu. "Bereits im Juni hatte ein interner Bundeswehr-Bericht dem Projekt eine verheerende Bilanz ausgestellt".
Aber: Herkules kam in diesem Blog schon vor 5 Jahren vor: Grosse Softwareprojekte in der Krise.
Besonders interessante Fakten:
- IBM, Siemens und der Bund haben für das Projekt ein Joint Venture gegründet
- Seit 5 Jahren ist das Projekt in der Krise, aber Führungskräfte haben auch dieses Jahr Boni bekommen
- Der Bund hat nichts zu sagen, da er nur 49 % der Anteile hält
- Das Projekt "lässt sich inzwischen nicht einmal mehr kalkulieren"
- Ministerium: Grund für steigenden Kosten ist fehlender Wettbewerb
Der Auftraggeber hat den Dienstleistern gestattet, eine Abwicklungsfirma zu gründen. Wahrscheinlich hat jemand das dem Bund empfohlen, "um alles zu bündeln". Aber die wichtigste Eigenschaft dieser Firma ist, dass man sie einfach dicht machen kann, falls etwas schiefgeht. Der Bund kann dann nicht mal gegen den Auftragnehmer klagen. Der ist ja dann gelöscht. Siemens/IBM sind fein raus. Eine speziell gegründete GmbH ist DIE Methode, um Verantwortung abzustreifen. Das weiss doch jeder.
"Der fehlende Wettbewerb lässt die Kosten explodieren", hä? Was erwartet man denn, wenn man eine Firma mit der Abwicklung von mehreren Milliarden Euro beauftragt. Wo soll der Wettbewerb denn herkommen?
Wer hat eigentlich diesen Vertrag verhandelt? Das ist ja nicht nur Dummheit, sondern Untreue. Vielleicht sollte man sich mal anschauen wo das Management vorher gearbeitet hat. Ob da nicht jemand aus dem Ministerium rüber gewechselt ist und jetzt gut verdient.
Wie wäre es mit einer parlamentarischen Anfrage: Arbeitet jemand, der auf Seite des Bundes den Auftrag verhandelt hat, jetzt beim Joint Venture oder bei IBM/Siemens?
_happy_moneywashing()
Labels: Project Management, Wirtschaft
21. November 2009
Integration Tests are a Superset of Unit Tests
The agile world is unit test crazy. That's ok. But it is not enough. Integration tests are a much under valued species. I like unit tests. I need unit tests. I do not know how we could ever build software without unit tests. But pure unit tests jump too short. We need more.
I am talking about unit test frameworks like NUnit. You just write the test function, add an attribute and the framework finds the function and adds it to the test list. Your test function tests a real function. Hundereds of those make a complete test set. Great, but not enough. What is missing?
You are supposed to write unit test code, which tests only single functions and methods. The idea is to isolate functionality and test isolated. I know the theory: Interfaces are contracts. There are unit tests for every behaviour. Even failures should be verified. TDD (test driven develpment) write the test as specification. I know all that bloat.
Fact is: these tests are important, but they ignore reality. Most problems result from interdependencies and side effects. In theory, there are no side effects. In reality they are there. Unit testing reduces them. Unit testing gives complex systems a chance to work. Chance is not enough. We must make sure, that systems work, not only functions. That's the part of the integration test.
Integration tests verify complex operations. Example: assumed I have a typical cached business object. An integration test would check the complete process:
- fetch the object from the cache,
- if it's not there, construct it from the DB,
- put it in the cache and
- return it at the same time.
- communication with the DB includes a
- web service interface and 2 layers of
- storage driver and
- SQL access code.
In contrast: unit tests would test everything isolated:
- does the cache access work? with a simulated in-memory cache. Beware of the network inside of unit tests.
- does the database access work? using a fake DB, because relying on a real DB server is uncool, not "isolated" enough
- would the webservice return the correct data? using a mock request object and fake data.
- does the webservice format correctly? again: fake data
- everything tested with made up configuration data and carefully constructed dependency injection.
We need integration tests anyway. And integration tests are in the real system. They are live. Unit tests are in a separate project and can not be live. Two separate test sets. Too many for me. There is no reason to split testing into 2 test sets, which are operated very differently. You run the test project from time to time and you are happy about the green bar. I run the real project all the time. Why should I run the test project from time to time, when I can run tests in the real environment with just one click.
Integration tests can be written to test isolated functions. They are a superset of unit tests. My interation tests check isolated functions PLUS vertical functionality PLUS live system health.
Unit test frameworks jump too short. They help, but ignore reality.
Get real. Switch to integration testing.
Update:
Changed the title from "Superior to" to "a Superset of".
_happy_testing()
3. November 2009
mod_mono Control Panel Extension
Just added a list of URLs to the mod_mono Control Panel (CP).
The Apache module mod_mono has a small control panel. The CP has some (actually very few) control features. You can see how many requests are currently processed, how many are waiting and you can restart the server process (the mono worker process, not the web server).
It can be enabled by
- <Location /mono>
- SetHandler mono-ctrl
- </Location>
So, I extended the CP to show a simple list of currently processed and waiting URLs.
- First column is the request serial number.
- The second colum is the processing time in seconds.
- The third column is the URL with query.
All data is stored in a shared memory segment.
BTW: mod_mono is programmed in C with not too much structure. No offense guys. I am very thankful for it. Great work. I know, it's open source. I should not complain, but improve it (which I did).
Why did I extend it? 2 reasons:
- I believe that an operator of a real service needs more information about what is going on than just the number of requests. We used apache server-status heavily. This is the same for mono.
- Flooding the server with dozens of integration tests, which spawn 200 backend requests each, stalled the server. I was afraid, that mon_mono has a problem under high load.
All slots are occupied by requests which wait for completion of backend requests, which do not find a free slot. Not a mod_mono issue. The situation has been resolved by splitting frontend and backend into separate mono applications. This is the normal configuration of a real multi-tier system, anyway.
The patch:
- % cd mod_mono-2.4.2/src
- % wget http://wolfspelz.de/download/mod_mono-2.4.2.patch
- % patch < mod_mono-2.4.2.patch
Update: the patch has been integrated into mono 2.6
Labels: C#, Code, mono, Web Server
29. Oktober 2009
How to Reactivate Weblin with 2 XML Files
In the forum of the Open Virtual World project someone posted a way to reactivate Weblin. Based on this information and after my own tests I can confirm, that it works.
It is even simpler and works without programming. All you need is a Web space to put some files.
You create a Jabber account on a public Jabber server, (e.g. http://register.jabber.org). Then put some files on your Web space and configure Weblin to use them. You need 2 XML files and an image as avatar. If you want an animated avatar then you need an additional XML and some animated GIFs.
Quick Try:
Enter in the Windows registry ...
[HKEY_CURRENT_USER\Software\zweitgeist\Firebat\2.0.0\Config\Operation]Restart Weblin .. and you are Planta. But, we do not want to be Planta, therefore to create your own...
PlatformLoginURL=http://ydentiti.org/test/Planta/login.xml
HowTo:
The 2 most important files are login.xml and identity.xml. I have put both as examples on my web server:
http://ydentiti.org/test/Planta/login.xmlIn login.xml is the URL of identity.xml and you have to enter the Jabber account: Jabber passwort ("secret"), Jabber user name ("planta") und Jabber server ("jabber.org").
http://ydentiti.org/test/Planta/identity.xml
In identity.xml is a link to the avatar image:
http://ydentiti.org/test/Planta/still.gifNow you tell Weblin to use login.xml at startup. You set the registry key like this:
[HKEY_CURRENT_USER\Software\zweitgeist\Firebat\2.0.0\Config\Operation]Of course, that's the URL of your web space.
PlatformLoginURL=http://ydentiti.org/test/Planta/login.xml
Where do you get the software from? Just copy the folder "C:\Program Files\weblin" from a friend. There is no installer required.
For Advanced Users:
Because the PlatformLoginURL is public, anyone can use this avatar (and the Jabber account). The Weblin login screen requests a password. It sends the password, but your web space probably returns the login.xml without checking the password. If you want to protect your login.xml, then you must create a login.php instead of the login.xml. Your login.php can check the HTTP Basic Authentication. You could also protect the login.xml with .htaccess. Attention: .htaccess protects the entire folder. Do not accidentally deny access to the other files. Anyone must be able to fetch your identity.xml and avatar image. You can put login.xml into a separate folder and set PlatformLoginURL accordingly.
For Advanced Users:
identity2.xml has an additional link to an animation file:
http://ydentiti.org/test/Planta/avatar.xmlwhich links to animated GIFs. This provides your weblin with actions and animations.
Required:
<config xmlns="http://schema.bluehands.de/character-config" version="1.0">For the start copy this file and use your own GIFs. The XML and the GIFs are cached by the client. If you change something, you have to delete the client cache (C:\Documents and Settings\%USERNAME%\Application Data\zweitgeist\cache).
<sequence group="idle" name="idle1" probability="1000" type="status" in="standard" out="standard">
<animation src="still.gif" />
</sequence>
<sequence group="moveleft" name="moveleft1" probability="1000" type="basic" in="moveleft" out="moveleft">
<animation dx="-100" src="left.gif" />
</sequence>
<sequence group="moveright" name="moveright1" probability="1000" type="basic" in="moveright" out="moveright">
<animation dx="100" src="right.gif" />
</sequence>
</config>
avatar.xml format in short:
- <config> has multiple <sequence>
- <sequence> has one <animation>
- <sequence> has an attribut "group". This is the action, walk, stand, sleep, wave. If there are multiple actions in the same "group", then Weblin searches a <sequence> randomly controlled by the relative "probability".
- <sequence> has an attribut "name". Must be unique, but can be anything.
- <sequence> has an attribut "probability": relative frequency of the <sequence> in a "group"
- <sequence> has an attribut "type" with values "status", "basic", "emote". "emote" appear as actions in the avatar-menu.
- <sequence> attributes "in" and "out" can be ignored. They are for advanced uses with automatic selection of transitions between actions.
- <animation> has only the attribut "src". An animated GIF URL absolute or relative the XML file
_happy_reviving()
Labels: weblin