ZPress: Ich werde Geschichte schreiben

| 2 Kommentare

Vor ein paar Tagen habe ich den leicht ehrgeizigen Plan gefasst, ein Blog-System selber zu schreiben und es einfach ZPress zu nennen. Dem nicht genug, werde ich nun auch noch Geschichte schreiben. Ob mit ZPress ist ungewiss, aber zumindest dafür.

Bevor ich euch aber nun total verwirre, erzähle ich besser mal worum es geht.

Eine Anwendung zu schreiben ist, wenn auch nur zum Spaß, keine Kleinigkeit und bedarf einiger Organisation. Ich verwende dafür Mantis als Bugtracker bzw. Taskmanager, weil es recht einfach gehalten ist und für meine Anforderungen ausreicht.

Um nun alle Aufgaben möglichst effektiv abarbeiten zu können, werde ich sie in übersichtlichen Einheiten in sogenannten User Stories aufschreiben.

Das Prinzip ist relativ einfach, man geht hin und schreibt seine Erwartungen an die zukünftige Anwendung auf. Laut der Beschreibung sollte das der Kunde des Produktes machen. Da ich das hauptsächlich erstmal selbst bin, ist es wohl auch in Ordnung, wenn ich das schreibe.

Wie gesagt, es geht darum, die großen Aufgaben in mehrere kleine herunter zu brechen. Ich erkläre es vielleicht an einem bekannten Beispiel und eigentlich habe ich das sogar schonmal gemacht als ich die Artikel über das Custom_Model geschrieben habe.

Die Hauptanforderung war “eine Klasse, die einen einfachen Datenzugriff ermöglicht”. Das wäre ansich schon eine Story mit der man arbeiten könnte, jedoch ist diese noch nicht wirklich präzise.

Weitere Anforderungen waren z.B. “die Klasse soll sich wie ein Array verhalten”, “es soll möglich sein alle Felder in einer Schleife zu durchlaufen” oder “wenn sich der Objektzustand verändert, sollen andere Objekte benachrichtigt werden”.

Mit diesen Anforderungen im Gepäck lassen sich die Aufgaben von ganz groß bis ganz klein sehr gut in einer Hierachie im Taskmanager abbilden und abarbeiten. Sind alle kleinen Aufgaben fertig, ist auch die jeweilig höhere erledigt.

Dadurch steigt auch die Motivation, da man sich nicht mehr einem riesigen Berg an Arbeit gegenüber sieht, sondern auch mal Kleinigkeiten in einer halben Stunde zwischendurch fertig machen kann.

Ein weiterer Vorteil ist auch die Testbarkeit und genauere Zeitplanung. Durch die Stories sind konkrete Erwartungen an die Software und die Komponenten vorgegeben, die dann durch Tests geprüft werden können.

Für mich sieht das erstmal nach einer guten Strategie aus.

2 Kommentare

  1. Hi,

    das ist auf jeden Fall ein guter Ansatz. Wichtig ist aber beim schreiben, und das ist die Schwierigkeit, dass du es als Kunde schreibst. In dem Fall bist du zwar der Kunde, aber du solltest dich nicht verhalten, als wenn du “Du” bist, sondern als ob du ein Kunde bist, der mehr oder minder keine Ahnung von Softwareentwicklung hast.

    Ich denke das Problem von vielen die so etwas machen ist, dass die beim schreiben aus Kundensicht bereits Gedanken zur technischen Umsetzung haben und dadurch wird das Resultat verfehlt.

    Danach kann man das ganze ja immer noch mal in einer Form abfassen, basierend auf dem untechnischen schreiben, wo die Umsetzung in Form der Software berücksichtig wird.

    Das ganze kostet dann zwar mehr Zeit, wird sich aber definitiv lohnen.

    Gruß Sebastian

  2. Da hast du Recht. Das Wissen über die technische Umsetzung auszublenden wird sicher eine der schwierigeren Aufgaben.

Hinterlasse eine Antwort

Pflichtfelder sind mit * markiert.


Schlagwörter: A/B-Test, AbstractType, Adapter, AddOn, Administration, Ajax, Amazon, Animation, Annotations, Anonyme Klasse, Ant, Apache, API, Array, ArrayAccess, Attachment, Auftrag, Ausbildung, Auswertung, Authentifizierung, AutoLoader, AWS, Bedienung, Bedingung, Benchmark, Berechtigung, Berlin, Bildbearbeitung, Bildschirmfoto, Blog, Blogroll, BOM, Bootstrap, Bot, Browser, Bugtracker, Byte Order Mark, Bücher, Cache, CakePHP, Call-Center, Callback, CamelCase, Canvas, Captcha, CDN, Cheatsheet, CLI, Clickout, Closure, Cloud, CodeSniffer, Collection, Community, Comparator, Config, Contest, Controller, Converter, CouchDB, Countable, Cronjob, CRUD, CSS, CSV, CustomLibrary, Custom_Model, Daemon, Data Mapper, Datei, Datenbank, Datenstruktur, Datentypen, Dating, Datum, Debug, Decorator, Dekorierer, Design, Design Patterns, Doctrine, Dokumentation, Dump, Duplikat, each, EC2, Eclipse, Email, Entwicklung, Entwurfsmuster, Enum, Erweiterung, Event, Eventhandling, Exception-Handling, Extension, Facebook, Factory, Fallback, Fehler, Fehlermeldung, Filter, Firefox, Flash, flexigrid, Foreach, Formatierung, Formular, Framework, FTP, Funktion, Futon, ga:pi(), Getter, Google Analytics, Hash, Hash-Bang, Header, htaccess, HTML5, htpasswd, HTTP, HTTPS, IDE, If, Implementierung, InnoDB, Interceptor, Interface, Internet Explorer, isset, Iterator, Java, JavaScript, Job, jQuery, Kommentar, Konfiguration, Konsole, Kontrollstruktur, kopieren, kostenlos, Kundenbetreuung, Late Static Binding, Layout, Links, Linux, Listeners, Lizenz, Logging, Löschen, Magento, Magic Methods, Manual, ManyToMany, Marketing, Methode, Model, Monolog, MVC, MySQL, NetBeans, Network, Nirvanix, Objekt, Observable, Observer, OneToMany, Online Tool, OOP, Open Source, Operator, OR-Mapper, Order, ORM, O’Reilly, Parameter, Partnersuche, Passwort, Performance, PHP, php.ini, PHP hates me, phpMyAdmin, PHPUnit, Plugin, Popup, Proxy, Prüfsumme, Prüfung, QR-Code, Qualitätssicherung, Query, Queue, Redesign, Refactoring, Reflection, Request, Response, Responsive Design, Rest-API, Rockstar, Rollback, Routing, S3, Samba, Scheifen, Schleife, Schutz, Screenshot, Secure Shell, Selbstreferenz, Server, Setter, setTimeout, Shop, Sicherheit, Sicherung, Sichtbarkeit, Singleton Pattern, Skin, SOAP, Social Network, Software, Sortierung, Sourcecode, Spam, Speicherproblem, Spickzettel, SPL, Splittest, SSH, SSL, Stammtisch, Statement, static, Statistik, Status, Stellvertreter, Strategy Pattern, Stream, String, Stuttgart, Stylesheet, Subversion, Sun VirtualBox, Support, SVN, Switch, Symfony, Symfony2, Symfony Live, Tag, Template, Template Method, Ternär Operator, Testing, Theme, Thumbnail, Tool, Tour, Tracking, Twig, Twitter, Type-Cast, Ubuntu, Umwandlung, Underscore, unset, Update, Upload, Url, User Story, Validierung, Vererbung, Versionskontrolle, Versionsnummer, Verzweigung, Video, Videospiel, Virtualisierung, Visitor Pattern, Vorschaubild, walk, Warteschlange, Webserver, Webservice, Weiterleitung, Werkzeug, Windows, WindowsAzure, WordPress, Wrapper, Writer, XML, Youtube, Zeitschleife, Zeitsteuerung, Zend Framework, Zend_Application, Zend_Cloud, Zend_CodeGenerator, Zend_Http_Client, Zend_Reflection, Zend_Service, ZPress, Zugangskontrolle, Zugriffsmethode