Agile Testing Days Berlin, der zweite Tag

Key Note Lisa Crispin – Are Agile Testers Different?

Besucht und geschrieben von: Andreas & Thomas

Die Antwort auf die Fage aus dem Titel der Keynote lautet: Ja! Dabei hat Lisa auch wieder besonderen Fokus darauf gelegt, dass es in agilen Teams keine Silos gibt, sondern es darum geht gemeinsam die gestellte Aufgabe zu lösen. Hierzu sind (agile) Tester genauso wichtig wie (agile) Entwickler und alle anderen Mitglieder des Teams.
(weiterlesen…)

Thomas Jaspers

 

Agile Testing Days Berlin, der erste Tag

Der erste Tag der agilen Testtage in Berlin ist vorüber. Vor Wochen hatte ich die Konferenz noch als kleindeutsch abgeschrieben. Nachdem ich auf der Agile 2009 in Chicago aber von vielen gehört hatte, dass sie hier sein würden, hatte ich schon die Vermutung, dass sie größer und internationaler wird, als ich zuerst annahm. Diese Vermutungen haben sich heute bestätigt. Es haben sich viele interessante Gespräche und Kontakte ergeben. Zu der angenehmen Atmosphäre trägt mit Sicherheit auch das gut ausgestattete und architektonisch interessant gebaute Konferenzhotel bei.

Kleiner Wehrmutstropfen am Abend: die ganzen Sprecher haben sich zum “Speaker Dinner” verabschiedet. Die normalen Leute bleiben also unter sich, und Thomas und ich werden gleich mal sehen, wo wir noch andere Agile Tester zum Abendessen auftreiben.

Designing a Lean Software Development Process, von Mary und Tom Poppendieck

Besucht und geschrieben von: Andreas

Laut dem Abstract des Tutorials sollten Möglichkeiten aufgezeigt werden, die (stagnierenden) Produktivitätssteigerungen, die sich allein durch agile Softwareentwicklung ergeben, zu analysieren und Möglichkeiten zur Verbesserung aufzuzeigen.
(weiterlesen…)

Andreas Ebbert-Karroum

 

Schmelzende Eisberge, Teufelsenten and Epics – Agile 2009, Tag 2

War das gestern tatsächlich erst Tag 2 der Konferenz? Dann will ich mich beeilen meine Eindrücke festzuhalten, bevor der nächste Tag startet.

(weiterlesen…)

Andreas Ebbert-Karroum

 

Masti, Co-Creator, Pair vs. Review, Agile Spiele – Agile 2009, Tag 1

Wow, das Wochenende und auch der erste Tag in Chicago sind vorüber. Schon bevor die eigentliche Konferenz anfing, hatte ich die Gelegenheit viele mir bis dato nur aus Büchern oder Blogs bekannte Personen persönlich kennenzulernen. Am Samstag Abend, kurz nachdem ich im Hotel angekommen bin, hatte ich mich (über Twitter!) mit Scott Duncan (@softqual) und Bernd Schiffer (@berndschiffer) auf einen Drink verabredet. Wir trafen uns in der BIG Bar des Hyatts, von wo aus man eine spektakuläre Aussicht auf das nächtliche Chicago hat, und haben uns langsam für die Konferenz warmdiskutiert :)

Pizza, Chicago Style

Pizza, Chicago Style (pic by George Dinwiddie)

Nachdem ich mir am Sonntag Chicago näher angesehen habe (sehr zu empfehlen ist die Speedboat-Tour mit der Seadog!), und mir dabei sogar einen Sonnenbrand einfing, fand das Dinner schon in beträchtlich größerer Runde statt. Zusammen mit @lisacrispin, @HackerChick, @janetgregoryca, @softqual, @jurgenappelo, @bobfischer und vielen anderen haben wir uns an “Chicago Style Pizza” probiert, interessant aber ein wenig gewöhnungsbedürftig. Neben der Pizza wurden Themen wie Agiles Testen, Australische Musik, Faltfahrräder, Coaching und viele weitere diskutiert. Noch nie hab ich in einer (bislang) fremden Community und Stadt so schnell Anschluß gefunden!
(weiterlesen…)

Andreas Ebbert-Karroum

 

iCalender Dateiverarbeitung, Groovy!

Heute Nacht wollte ich eigentlich planen, welche Sessions ich auf der Agile 2009 besuchen möchte, die nächste Woche in Chicago stattfindet. I freue mich schon sehr auf die Konferenz und kann mich nur schwer zwischen den vielen Sessions entscheiden, weil ich so viele verpassen werde! Planung erfordert natürlich ein mindestmaß an Organisation. Auf der Homepage der Konferenz kann man sich durch das Importieren von iCalendar-Dateien die Termine der Sessions in den Kalender einpflegen. Eine großartige Idee … die leider nicht funktioniert, wenn man in einer anderen Zeitzone als Chicago lebt, oder Outlook als seinen Kalender benutzt. Meine Vermutung ist, dass eines der beiden Kriterien auf die meisten Benutzer zutrifft. Deshalb frage ich mich ernsthaft wie gut das Feature auf der Webseite getestet wurde. Naja, egal, mir hat es in den Fingern gekribbelt und ich habe einen Blick in dieSpezifikationen von iCalendar geworfen und ein kleines Groovy-Skript fabriziert, dass die bestehenden iCalendar-Dateien konvertiert.

>> Alle sessions sind konvertiert und können hier heruntergeladen werden. Fertig um in den Kalender importiert zu werden – auch nach Outlook.

Es gab mit den originären Dateien zwei Probleme. Hier ist eine Beispieldatei:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:Agile2009
METHOD:PUBLISH
CALSCALE:GREGORIAN
X-WR-CALNAME:Agile2009
X-WR-CALDESC:Agile2009
BEGIN:VEVENT
UID:1220
DTSTART:20090825T140000
DTEND:20090825T173000
SUMMARY:User Stories for Agile Requirements
LOCATION:Columbus IJ
URL;VALUE=URI:http://agile2009.agilealliance.org/node/1220
DTSTAMP:20090209T022940Z
LAST-UPDATED:20090723T173948Z
END:VEVENT
END:VCALENDAR

Zeitzonen

Die Start- und Endzeit beinhalten keine Information über die Zeitzone, also wird die lokale Zeit angenommen. iCalender spezifiziert, dass die Zeit UTC ist, wenn ein “Z” angehangen wird. Die Transformation ist also sehr einfach: fünf Stunden draufzählen um von Chicago zu UTC zukommen, und ein “Z” anhängen.

Outlook

Das zweite Problem wird offenbar, wenn man versucht mehr als eine Session in Outlook zu importieren. Beim ersten Mal erstellt Outlook automatisch einen neuen Kalender “Agile2009″. Cool. Bei der zweiten Session landet diese aber wieder in einem neuen Kalender “Agile2009 (1)”. Extrem uncool. Um das zu beheben, müssen die beiden Properties X-WR-CALNAME und X-WR-CALDESC entfernt werden. Dies scheint leider ein bekanntes Problem mit Outlook zu sein. Zum Glück lässt sich das ebenfalls einfach beheben.

Groovy

Um die Konvertierung zu automatisieren, habe ich ein kleines Groovy-Skript geschrieben, welches sich erst alle gültigen Session-IDs besorgt, dann die iCalendar-Dateien herunterlädt und die beiden Fehler behebt, und mir auch noch den Text ausgibt, den ich in unser Wordpress kopieren muss. Das Skript kann mit Sicherheit noch verbessert werden, aber es tut erstmal seinen Job. Was ich wirklich liebe an Groovy, ist die Möglichkeit Strings wie ein Array zu zerschneiden, und dabei mit negativen Indexen auch von hinten zählen zu können, sowie die Möglichkeiten durch das regex-Handling, das macht Aufgaben wie diese um ein Vielfaches einfacher :)

public class ConvertCalendar{
 
private static final String VCAL_TIME_FMT = "yyyyMMdd'T'HHmmss";
 
public static void main(def args){
// use the smartphone page to get all valid session numbers
// http://agile2009.pairwith.us/sessions
InputStream sessionStream = new URL("http://agile2009.pairwith.us/sessions").openConnection().inputStream
 
String sessions = org.apache.commons.io.IOUtils.toString(sessionStream);
 
List calList = new ArrayList();
 
// href="/sessions/5107"
sessions.eachMatch(/href="\/sessions\/\d{1,4}"/) {
	InputStream calendarStream = new URL("http://agile2009.agilealliance.org/session_ical/" + it[16 .. -2]).openConnection().inputStream
	String calendar = org.apache.commons.io.IOUtils.toString(calendarStream);
 
	File calendarFile = new File("./cals/temp - calendar.ics");
	def calendarFileWriter = new FileWriter(calendarFile)
	def calendarFileName = "";
	calendar.eachLine {
		def vCalLine = it;
		if (vCalLine ==~ /^X-WR-CALNAME:.*/ || vCalLine ==~ /^X-WR-CALDESC:.*/) {
			// ignore that line
		} else if (vCalLine ==~ /^DTSTART:.*/ ) {
			def origDate = Date.parse(VCAL_TIME_FMT, vCalLine[-15..-1])
			vCalLine = vCalLine[0..-16] + DateUtils.addHours(origDate,5).format(VCAL_TIME_FMT) + "Z";
			calendarFileWriter.write("${vCalLine}\n")
			calendarFileName = origDate.format("yyyy-MM-dd'T'HHmm");
		} else if (vCalLine ==~ /^DTEND:.*/) {
			def origDate = Date.parse(VCAL_TIME_FMT, vCalLine[-15..-1])
			vCalLine = vCalLine[0..-16] + DateUtils.addHours(origDate,5).format(VCAL_TIME_FMT) + "Z";
			calendarFileWriter.write("${vCalLine}\n")
		} else if (vCalLine ==~ /^SUMMARY:.*/) {
			calendarFileName = calendarFileName + " " + vCalLine[8..-1].replaceAll("[^\\w\\s]", "")
			println "Processing " + calendarFileName
			calendarFileWriter.write("${vCalLine}\n")
		} else {
			calendarFileWriter.write("${vCalLine}\n")
		}
	}
	calendarFileWriter.close();
	calendarFile.renameTo(new File("./cals/"+calendarFileName+".ics"))
 
	calList.add(calendarFileName+".ics")
	calendarStream.close();
}
 
println "Text to paste into Wordpress after uploading: "
println "<ul>"
Collections.sort(calList)
calList.each {
	println "<li><a href="\">${it}</a></li>"
}
println "</ul>"
 
}}
Andreas Ebbert-Karroum

 

(English) Agile 2009 calendar files for Outlook

This page lists all sessions from the forthcoming Agile 2009 conference, with a slightly modified calendar file to make them work

  1. If you live in another timezone than America / Chicago
  2. You happen to use Outlook as your calendar (and maybe sync that to your Smartphone)

For the technically inclined, more background can be found in the accompanying blog. Here’s the most important, the list of sessions, ready to be imported into your calendar. Let me know if it worked, or if you still have problems.

Andreas Ebbert-Karroum

 

Nächste Seite »