Posts in category podcast

Grand Unified Theory of Programming?

Das höchste Ziel in der Physik ist alle Kräfte durch eine Formel auszudrücken bzw. sie in Beziehung zueinander zu setzen. Maxwell zum Beispiel gelang das für elektrische und magnetische Felder - und dafür ist er noch heute berühmt.

In der Software-Entwicklung gibt es so etwas bisher nicht. Klar, es gibt Daumenregeln, so wie:

Aber, und das ist der wichtige Teil: diese Daumenregeln sind keine Unifikation die die verschiedenen Probleme beim Programmieren abwägen und in Beziehung setzen.

Daher finde ich  Jim Weirichs Vortrag  The Building Blocks of Modularity sehr spannend - denn da stellt er den Ansatz der  Connascence vor (ab Folie 35).

Das ist letztlich eine Klassifizierung welche Art von Abhängigkeit man sich durch welche Programmiertechnik einfängt - und damit kann man 'normales' Refactoring anwenden um von problematischeren Connascence's (?) zu weniger problematischen zu kommen.

Ach ja, ursprünglich kommt das aus dem Buch  What every Programmer should know about Object Oriented Design. Davon kann man aber Getrost nur noch den dritten Teil lesen (über Connascence) - der rest ist nach 15 Jahren einfach veraltet. :)

** Niemand sagt das so gut wie Kent Beck: "Lots of little pieces - Good code invariably has small methods and small objects. Only by factoring the system into many small pieces of state and function can you hope to satisfy the “once and only once” rule. I get lots of resistance to this idea, especially from experienced developers, but no one thing I do to systems provides as much help as breaking it into more pieces."

SOLID object oriented design

Ein Vortrag von der  GORUCO - sehr zu empfehlen.

Besonders gefallen hat mir ihr Fazit dass man mehr als nur  DRY als Prinzip beim Refactoring anwenden soll um bei gutem Code anzukommen.

Sandy Metz empfiehlt das man sich an den 'Grünen' Stellen des Red/Green/Refactor Zyklus für jedes Objekt diese Fragen stellt:

  • Is it DRY?
  • Does it have one responsibility?
  • Does everything in it change at the same time?
  • Does it depend (only) on things that change less often than it does?

Und bringt das auch an einem ordentlichen Beispiel auf den Punkt.

Alles in allem: Ein Vortrag der zum Nachdenken über den eigenen Code-Stil einlädt. Empfehlenswert!

Here be electric dragons

Ich vertrete ja schon länger den Punkt dass ein Grundeinkommen eine Notwendigkeit sein wird in einer Gesellschaft in der Maschinen uns alle physischen Arbeiten abnehmen können.

Well, jetzt habe ich endlich jemanden gefunden der dieses Argument auch vertritt.

Auf dem 26C3 im Vortrag  Here be electric dragons

Sehr sehenswert!

Mal auf den Punkt gebracht

Volker Pispers hat eine wunderschöne Sendung auf dem Deutschlandfunk gehabt. Und die ist  jetzt bei YouTube

Hier etwas zum Anfixen:

"Unter Hitler hatten wir auch den Fingerabdruck im Personalausweiß. Haben die Mütter und Väter des Grundgesetztes abgeschafft. Die haben wörtlich gesagt: Der deutsche ist kein Verbrecher. Das wissen Schilly und Schäuble natürlich besser.

Man kann Menschen nicht daran hindern von sich auf Andere zu schließen."

 Hier auf Youtube

Ken Schwaber in Action

Ich muss sagen, er spricht wirklich gut - seine Erklärung von Scrum ist jedenfalls wirklich gut verständlich.

 Hier auf YouTube

Ein paar interessante Punkte zu seinem Vortrag:

  • Keine Folien - er hällt den Vortrag komplett frei
  • Kein Verkaufsgespräch - er nimmt klar in den Mund welche Probleme durch Scrum sichtbar werden (und natürlich ist das eine ganz hervorragende Verkaufstaktik)
  • Alle Graphen / Schaubilder malt er on demand an die Tafel - einfach und effektiv.

Kent Becks keynote auf der Railsconf 08

Und er erzählt dabei ein paar Geschichten. Ohne einen Punkt.

Das ist ein ganz interessanter Rückblick auf seine Vergangenheit, seine Meinung und Art wie er spricht.

Das Beste ist aber die Fragerunde am Schluss - in der wird es nämlich auf einmal richtig Politisch:

How is it, that the thing that I could do could contribute the most possible. I'ts gonna take getting involved with the people whose lives are affected by the programs that I write. Whether they're dockworkers, or policemen or whoever. They have to gain power in that process.

One of the Principloes that I've used always, always, is the principle of mutual benefit

I try to finde a way where everybody can do better out of the activities that I'm involved in. I fall short of that at times, but I'm always looking for that.

And I think software as an industry falls short of that. There are winners and losers in software development. And I think thats really too bad, because I think it's mostly a choice.

And I'd love to find a way to get past that.

Schaut euch den Kontext um dieses Statement an - es lohnt sich!

 Hier gibt's den Vortrag

"What Killed Smalltalk Could Kill Ruby, Too"

Mit dieser These ist Robert Martin auf der RailsConf 09 aufgetreten - und hat ganz ohne Powerpoint in einer hoch spannenden Stunde diese These erklärt und hervorragend vertreten.

Ganz nebenbei liefert er dabei noch die beste Motivation für  Test Driven Development die ich bisher gesehen habe.

 unbedingt anschauen!

Agil ist so eine Sache

jeder will es sein, und fast niemand ist es wirklich. Zumindest ist das meine Beobachtung.

Um so besser dass es einige Firmen gibt die versuchen ihre Prozesse transparent zu machen und herzeigen wie sie Arbeiten.

 Hashrocket hat z.B.  einen Vimeo Channel auf dem sie immer wieder Videos veröffentlichen.

 Besonders spannend finde ich das Video über ihren Daily Standup. Details wie der "Speakers-Ball" find ich einfach klasse. Sehenswert!

Javascript - the good parts

Beim Schimpfen über Javascript vergisst man immer gerne dass da doch relativ viel von Scheme drin ist.

Zum Glück gibt es Douglas Crockford - und der hat  bei Google darüber gesprochen was die guten und schlechten sachen sind.

Sehenswert wenn man mit Javascript arbeitet / arbeiten muss.

p.s. Er hat auch  JSLint geschrieben.

Ruby Videos

Während meinem Urlaub habe ich mir eine Menge Videos angesehen - so viel Zeit hat man ja sonst nicht. Allerdings nicht irgendwas. (OK, etwas  Daily Show war auch dabei :)

Diese Videos haben mir besonders gut gefallen:

  •  Jive Talkin: DSL Design and Construction From a creator of many DSLs a short overview over the specific techniques and how he goes about doing them. (Test driven of course)
  •  Improving the usuability of your Ruby on Rails application A nice talk about website usability and very specific things that you can do to enhance it (with a great example)
  •  Tourbus A really nice talk about how to optimize ruby on rails applications (but really it's more general and can be used for anything). He especially talks about how you can easily get one to two orders of magnitude speed improvements on the first optimization pass of an app.
  •  BDD with Cucumber A talk about how Behaviour Driven Development works in practice and how it can be used to drive development - from a guy at Thoughtworks who gives very practical examples.
  •  La Dolce Vita Rubyista A talk about how agile development should be - shown in a series of short movies which are quite funny.
  •  Testing as Communication How Programmer Testing can be used to achieve better communication with your customers.
  •  Aristotle and the art of software development A talk about three major currents of philossophy - and how they may relate to software development and which programming language to choose.
  •  Using Metrics to take a look at your code Talk about possible code metrics and how to use them to discover and keep an eye on bad parts of your code.
  •  Effective and creative coding Talk of a psychologist about directed attention and how to recharge it to be a more effective and creative coder
  •  The Grand Unified Theory... ... of Programming. In this talk, Jim Weirich talks about Connescance as a guide to how to determine what is good and what isn't good programming.

Und auf diese Tools bin ich dabei noch mal gestoßen - dabei sind wirklich ein paar sachen die extra cool sind:

Rollen im Software-Bauen

Der Podcast "Software Engineering Radio" hatte zwei sehr gute Folgen  Roles in Software Engineering ( fortsetzung). Der Anfang ist zwar etwas langsam, aber dann wird es sehr schnell hochinteressant wenn die Rollen und deren Mindset gegeneinander Abgrenzt werden.

Vor allem das Mindset als definierender Punkt hatte ich so klar bisher noch nirgends gelesen. Schade nur dass es genau diese Sammlung an Mindsets nicht dort als Text gibt.

Mal schauen - das war so gut, dass ich es mir eigentlich mal aufschreiben möchte.

Warum setzt Sun auf Open Source?

Neulich habe ich einen  spannenden Pocast mit einem Interview von Simon Phipps gehört. Das Thema: Warum setzt Sun so auf Open Source wie sie es tun?

Das ganze Interview war spannend - vor allem weil Simon neben dem Marketting-Speak von Sun auch tatsächlich etwas interessantes zu seinen Ansichten über die Gesellschaft gesagt hat. Und das finde ich "spot on".

Hier ein paar ausschnitte.


Why should a company like Sun be at all concerned about open source?

The key thought is anchored in looking at thrends in society. If you look at whats happening in societies around the world, ever since the internet became indemic, there has been a topological shift in the structure of society. Society used to be structured on a hub and spoke basis. With people controlling communications and rare resources at the hub and citizens and employees and consumers at the spokes.

What the pervasive nature of the internet made happen, was that the topology of society gradually changed from hub and spoke to mesh. As that's happened, the way that the business interests are being conducted has gradually migrated from a world of secrecy giving confidence and security to a world with transparency with privacy giving confidence and security.

We have looked at that trend - and we are absolutely convinced that if we are going to be a leading technology company in the 21st century, we have to adapt the company to live in that meshed society and to fit in with the emerging norm of transparency with privacy.

Do other companies see the world as you do?

I think that it is pretty slow spreading. One of the problems that you have as a business is that you get trapped in what I call the success trap. There's a book from Richard Dawkins called "Climbing Mountain Probable" where he talks about the success trap - how organisms can only evolve to a pinacle of quality. And they can never evolve to a higher pinacle if the route to that higher pinacle if the route to that higher pinacle involves degrading the organism. They can never go down to a valley to reach a higher peak. And it's the same with businesses. A business that is successfull and profitable, cannot afford to become unsuccessfull and unprofitable in order to become better.

Companies have to exploit their fallow periods. IBM did this very successfully by using it's failure to reinvent itself. I believe that that is what Sun has been doing at the beginning of this decade as well. It was using a period of failure and unprofitability to transform itself. Other companies which did not have this blessing of failure (which is a funny word - but still true), will indeed find themselves in a really tough place as we move into the society that is based on a mesh culture and that values transparency with privacy.

You could look at the dilemma that the music industry has got. Still making lots of money, a lot of that money is based on a paranoia around keeping secrets and keeping control. The're going to have a hell of a time transforming into an industry for the networked society. Guess what: We're beginning to see the symptoms of that as they attacked their customers and as they try and protect outdated business models.

...

This is what absolutely fascinates me. I think that what we're seing here is a meta-effect in action. I think that by introducing the web browser and providing a really good reason why the world wanted to get wired, Tim Berners Lee has triggered an epochal change in the structure of society. And that's going to work itself out in all sorts of ways.

...

I was having a conversation with a customer a little bit earlier on, talking to them about the stages that businesses go through as they become open source businesses. I definitely see an evolutionary cycle in becoming an open source business.

So the first step is to make it free as in beer. No charge.

I think there's a stage before there. The Instinct to keep secrets is so strong in most software companies that the first stage that they go through is the willingness to collaborate with their friends and partners. That's Microsoft shared source for example. Every business that has depended on secret software and secret source goes through that first stage of wanting to open up but retain control and boundaries.

They then go on to a stage where they realize that they can be completely open but under the terms of a license. That's the stage where companies are busy nitpicking over every line in every license and are trying to work out the perfect licenses. It's that stage of maturity that lead to license proliferation at OSI and it was inevitable in my view.

The stage beyond there is where they begin to realize that code is king. And that the license doesn't matter so much as long as the code gets written and gets written fast and well.

And then there's a stage beyond that, where people begin to realize that community is king and that actually you don't have to write all the code and you don't have to control all the code. It's actually the community where all the benefits that make you successful are gonna come from.

I see businesses gradually moving along that maturity timescale. Going through each of the phases and believing that it's the endpoint. It may be that there's a point on after communities that I haven't seen yet.

Kathy Sierra - Didaktik für Reiche

… und wem es reicht, von Lehrenden ständig für dumm verkauft zu werden.

Endlich mal jemand, der das, was wir aus Computerspielen und Psychologie gelernt haben, zu einem schlüssigen Didaktik-Konzept zusammenbringt und auf ernsthafte Themen anwendet!

Und das beste - sie bringt ihre Theorien und deren Anwendungen in diesem wundervollen Podcast (von der OOPSLA) auch noch auf den Punkt!

Yeah.

 download - mp3

p.s.:  Kathy Sierra hat nicht nur die  Head First-Serie bei O'Reilly mitgestaltet, sondern auch einen  Blog den sie leider aufgegeben hat, nachdem ein paar Idioten sie auf ihrem Blog aufs Korn genommen haben - bis hin zu äusserst graphischen Drohungen. :-(

Hoffentlich fängt wieder zu Bloggen an - und ich bin sicher, dass jede e-mail hilft!