/dev/null

Elite is stupid. Back to the roots.

May 5, 2010

For sale: iPhone 3GS, 32GB, white

Tags: , , , — 15:08

Ever wanted to buy an iPhone 3GS without T-Mobile contract? Now you can buy mine on eBay! Starting at 1 EUR :)

So, why is that? I love to embrace change. I hate DRM, and I hate big companies that forget what innovation means, I hate company policies that prevent me from using the full potential of my computing device. Microsoft used to be the evil company number 1, but nowadays things change: I see Apple and Google right before Microsoft. They are the successful ones now, and they need to defend that position (I would do the same). They need to earn a lot of money for the share holders and they need to comply with a lot of different contracts they have with other companies. Probably, they can also not experiment anymore to the full extend. Whatever.

Apple products are still normal products, they don’t offer some kind of enhanced lifestyle experience. I am constantly confused when people start talking about their Apple products and how easy and irreplaceable  they are. It’s true, if you buy one Apple product, than you need another one so you don’t run into compatibility issues. Isn’t this exactly what Microsoft was blamed for?

Fact is: There are other good and quite usable smartphones beside the iPhone. Of course if you managed your whole Music library via iTunes, it’s hard to change. But why do I use iTunes? Right, because I bought an iPod once and then I was forced to use iTunes. Then I found out, that iTunes for Windows is somehow slow, so I had to buy the Mac Mini. Then I found out, that the PC keyboard layout is not really usable on a Mac, so I had to buy a Mac keyboard. Then my gray PC mouse was looking strange right next to the white keyboard, so I had to buy an Apple mouse. And so on. What kind of fucked up lifestyle is this?

I agree that Windows Mobile is crap, if you compare it with the iPhone. Not sure about the next version, but that’s not the point. I gave up waiting for the next Windows version many years ago. Fact is, that Windows devices are no option right now and it will probably still be hard to sync them with alternative operating systems or your Google account in the future.

Then there is Google with Android. I had an Android phone until recently, because I thought I might be interested in app development. I didn’t like the user interface (looks like the last 10 years didn’t happen), I don’t like Java. The music player is not what I expected. Then there are the OS update issues, everyone is talking about. Maybe Google learns how to handle that, maybe not. I don’t feel like that should be my problem.

The only remaining option is Palm. I thought they will simply run out of money. But now they were bought by HP. For now, I can trust them, if they commit themselves to WebOS. WebOS supports app development with standard Web technologies like JavaScript and HTML, which is exactly what a Web developer is looking for. So, because I embrace change, I ordered the new Palm Pre Plus last week. My first impression:

  • After entering my Facebook and Google account details, it already knows all my contacts, my email and my calendar out of the box. The iPhone has a lot of different apps (some cost extra), but the built-in functionality is still very basic.
  • It doesn’t wake me at night, just because a new email arrived. Still don’t know how to disable that vibrating alert during the night on my iPhone.
  • I can copy any music or video file directly via USB to the device without using iTunes (that means from ANY computer). How cool is that?
  • It’s black, features a modern user interface and multitasking. Wow!
  • No problems with battery life so far. About the same as my iPhone.

For that reason, I am going to sell the iPhone now. It’s not a bad product, but I don’t feel like it’s the best I can get. I feel like I am forced by Apple to buy things I don’t really need or want. I want my freedom back.

May 4, 2010

Day Against DRM

Tags: , , — 10:35

Well, I was just informed via email that today is the Day against DRM. Yesterday, I read that 1 million iPads and 12 million DRM protected iPad apps were already sold by Apple. So I don’t feel welcome starting that discussion again. I have an iPhone as well, to be honest. Even though my Palm Pre Plus arrives today. Let’s see if that works for me and if the device is less evil. Anyways:

I guess the thing is that there were always activists that bought their bananas and coffee in that special fair trade store a couple of miles away. And there are the “normal” people, that just don’t care and buy their stuff in the super market round the corner. Of course their bananas were sometimes full of poison and of course the coffee farmers in Africa were badly exploited. On the other hand, the bananas are looking nice and the coffee is cheap. You can’t do anything about it and if you do, you are treated like the enemy of the working class. Because, obviously, poor people don’t have the money to buy the expensive fair trade product and others just want convenience after their 14h working day. That makes the whole issue a bit more complicated.

So yeah, there we are. At least it’s time to think again, before we (who can afford it) decide to buy the next product that is defective by design like the Apple iPad. A lot has changed already, for example Amazon sells DRM-free MP3 files, which was unthinkable a couple of years ago. I really enjoy to buy my music there and IMO it’s a lot more user friendly than iTunes.

May 3, 2010

Ihr habt das Scrum falsch gemacht!

Tags: — 14:11

Das PHP BarCamp in Salzburg dieses Wochenende war super. Herzlichen Dank an Evelyne Selak, die scheinbar die Organisation zum Großteil auf sich gezogen hat. Ich könnte sowas nicht leisten und hätte Angst, dass Hotel & Sponsoren absagen und niemand kommt.

Nett fand ich mal wieder Sebastian Bergmanns Vorstellungen zu testbarer Software zu hören. Im Wesentlichen basierte seine Argumentation in letzter Konsequenz auch auf „man will ja dieses und darum muss man jenes so und so machen“. Finde ich nicht falsch und für mich gut verständlich. Nur: Wenn man das so einem normalen Entwickler erzählt, schaut dieser nur befremdlich und sagt dann, dass es anders doch auch geht und viel einfacher ist.

In der Praxis ist es so, dass man schon vor einer großen Herausforderung steht, wenn man Entwickler nur dazu bringen muss, nicht allen Code in eine Klasse zu schreiben. Von „Separation of Concerns“ haben gefühlte 30% der Entwickler schon was gehört. In Büchern wie „PHP Quick and Dirty“ wird es als tolle Idee angesehen, einen PHP-Interpreter herauszubringen der deutsche Keywords versteht, weil man Entwicklern nicht zumuten kann, Englisch zu lernen oder ein Wörterbuch zu verwenden. Alles Zeitverschwendung. In einem anderen Buch zu objektorientiertem PHP wird auf endlosen Seiten auf die Implementierung des Countable-Interfaces aus der SPL eingegangen um dann zum Fazit zu kommen: „Ohne Countable geht es nicht“. Damn, ich habe das in den letzten 10 Jahren nicht gebraucht.

Wenn man auf so ein BarCamp geht, entsteht der Eindruck, alle Anwesenden würden fast immer das richtige Design Pattern verwenden und streng nach Test-Driven-Development (TDD) und Extreme-Programming (XP) Grundsätzen arbeiten. Dass das nicht so ist, ist anzunehmen, zumindest hinterlässt meine berufliche Praxis ein schmerzhaft anderes Bild. Insbesondere problematisch finde ich solche in den Raum gestellten Statements, wenn der Source-Code (wie bei fast allen Web Anwendungen) nicht einsehbar ist. Lieber wird an Open-Source Projekten wie Zend Framework und Magento kleinteilig herumkritisiert. Bei Magento gibt es keine Tests, im Source sind dumme Fehler zu finden, langsam ist es eh und die meisten Zend Framework Klassen seien auch nur schnell zusammengehackt worden. Leider sind die meisten Closed-Source Anwendungen noch sehr viel schlimmer!

Um diesem Problem zu begegnen wird von verschiedener Seite „Scrum“ als Lösung propagiert. Insbesondere wird in dem Zusammenhang die niedrige Fehlerrate und der hohe Grad an Selbstorganisation, die durch Vertrauen und Eitelkeit ermöglicht wird, hochgehalten. Im Nebensatz werden dann noch schnell XP und TDD erwähnt, und schnell ist klar, dass es sich hier um ein Rezept für erfolgreiche Projekte handelt.

Zunächst einmal sollte man TDD, XP und das eigentliche Scrum-Projekt-Management auseinander halten. Das Tests die Qualität erhöhen, hat zunächst nichts mit agilem Projekt-Management zu tun. Häufig wird das in einen Topf geworfen, und dann heißt es pauschal, Scrum würde die Qualität erhöhen. Agiles Projekt-Management soll flexibel auf geänderte Anforderungen reagieren und daher in kurzen Iterationen arbeiten. Dabei sind Tests nicht nur hilfreich, sondern wegen der laufenden Refactorings dringend notwendig – deswegen wird beides zu Recht zusammen genannt. Nur Vertrauen alleine schafft noch lange keine guten Tests, selbst wenn ein Team tatsächlich schafft welche zu schreiben, was IMO auch eine Seltenheit ist. Ich kenne es auch so herum, dass die Entwickler vor lauter Eitelkeit in Panik verfallen und gezielt schlampig arbeiten, um am Iterationsende ein Stück schlechten Code mit schlechten Tests vorweisen zu können. Traut sich dann wirklich immer jemand die Wahrheit auszusprechen, die Arbeit von ein oder zwei Wochen zu verwerfen und neu anzufangen? Eventuell sogar den Mitarbeiter zu kündigen, obwohl seine Familie das Geld dringend benötigt, weil gerade Nachwuchs gekommen ist? Das ist doch so realistisch wie die freie Marktwirtschaft.

Formale Methoden verfolgen das gleiche Ziel der Fehlerfreiheit, werden jedoch oft gar nicht erwähnt oder auch nur in Erwägung gezogen. Weiter sollte es klar sein, dass es Entwickler gibt, die sich selbst organisieren können und andere, die mehr Unterstützung benötigen und nicht die Erfahrung haben um an allem arbeiten zu können. Man hat oft kein Team, das nur aus Senior Entwicklern besteht und selbst diese unterscheiden sich untereinander. Am Ende des Tages kommt es einzig und allein auf die Kompetenz der Projekt-Beteiligten auf allen Ebenen an und nicht so sehr darauf, welche trendige Management-Methode man angewendet hat. Siehe dazu auch Cargo Cult Software Engineering. Statt das anzuerkennen, wird gegenüber Scrum-Kritikern polemisch das Bild vom autoritären Chef gezeichnet, der boshaft Befehle verteilt, so dass dann natürlich nur die offensichtlich bessere Option der magischen Selbst-Organisation bleibt. Von eiserner Disziplin will niemand gerne reden, das wäre am Ende ja noch anstrengend und würde mit alternativen oder hybriden Ansätzen, die nicht der reinen Scrum-Lehre entsprechen, möglicherweise genauso gut funktionieren.

„Most teams purporting to be doing agile software development are not applying the level of technical rigor necessary to succeed at it. Most “agile” teams have actually only adopted Scrum’s project-management practices and have failed to effectively adopt “the hard disciplines” like test-driven development, refactoring, pair programming, simple design, and continuous integration.” Jean-Raymond Abrial, Faultless systems: Yes we can!, IEEE Computer 9/2009

Niemand ist ein Gegner von Vertrauen, Selbstorganisation, Selbstmotivation und Agilität. Soweit ich sehe funktioniert agiles Vorgehen gut in kleinen Teams mit sehr erfahrenen Entwicklern oder wenn die grundsätzliche Architektur zentral vorgegeben ist und nur noch konkrete Details von den einzelnen Entwicklern mit Hilfe eines bereits fertigen Frameworks implementiert werden. Zudem muss man gnadenlos konsequent sein, was je nach Team viel Kraft und Zeit kosten kann bis alles rund läuft. Was nicht geht, ist sich vorne hin zu stellen und zu erzählen, wie toll und einfach alles ist (“klar gibt es hin und wieder Probleme, aber dann redet man halt”). Diejenigen bei denen es wie zu erwarten nicht gut ausgeht, haben es dann einfach falsch gemacht. Solche Totschlag-Argumente erinnern einen an religiöse Gemeinschaften.

Powered by PHP, Memcached, Suhosin, MySQL and WordPress