Programmierer

Wo finde ich meinen Nerd? – Wie Du Programmierer für Dein Projekt findest

Sebastian FahrenkrogDies ist ein Gastbeitrag von Sebastian Fahrenkrog. Sebastian hat viele Jahre als Freelancer in einem Team von Entwicklern gearbeitet. Nebenbei entwickelt er eigene Apps und Dienste. Sebastian hat viele Teile seines Unternehmens automatisiert. In diesem Artikel erklärt Sebastian, wie Du einen Programmierer für Dein Projekt findest, wenn Du selbst nicht programmierst. 

Enter Sebastian: Programmierer sind eine komische Sorte Mensch. Ich darf das sagen, weil ich selber einer bin. Seit vielen Jahren fungiere ich in meinem kleinen Team als Dolmetscher zwischen dem Kunden und den Programmierern.

Viele Programmierer sind kundenscheu (telefonieren z.B. nicht gerne), trinken viel Cola und verfügen über einen merkwürdigen Humor. Wenn sie etwas erklären, dann verstehen viele Nicht-Techniker nur Bahnhof oder Chinesisch. Hier sei auf Blumentopf und das “Nerds”-Lied verwiesen. (Liebe Kollegen: Ich meine natürlich nicht euch, sondern die anderen).

Früher oder später kommst Du wahrscheinlich an einen Punkt in Deinem Business, wo Du einen Programmierer brauchst. Vielleicht ist Dein Projekt gewachsen (Du hattest Erfolg: Glückwunsch!) oder Deine Idee übersteigt Deine technischen Fähigkeiten (man kann nicht alles selber machen).

Jetzt hast Du zwei Möglichkeiten: Selber lernen (kann bei einigen Themen ganz schön schwierig werden) oder Dir einen Programmierer suchen.

Anforderungen und Projektplanung

Als Erstes musst Du wissen: Es gibt für jede Projektart verschieden spezialisierte Programmierer. Du musst also erst mal herausfinden, was für einen Du brauchst und was dieser können muss. Das richtet sich natürlich nach Deinem Projekt und den daraus resultierenden Anforderungen.

Das ist vergleichbar mit einem Handwerker: Ein Klempner ist meistens nicht die beste Wahl um Deinen Boden zu verlegen.

Zuerst: Jeder Programmierer spricht nur eine bestimmte Anzahl von Programmiersprachen.  Wenn du z.B. ein Webprojekt umsetzen willst (sprich: eine Webseite mit einer Funktion XY), dann wäre PHP eine gängige Sprache. PHP alleine würde aber mittlerweile nicht mehr reichen, um ein Projekt umzusetzen. Dazu nötig sein sollten noch Fähigkeiten in MySQL, JavaScript und HTML/CSS. Man kann das Gleiche statt mit PHP aber auch mit .NET, Perl, Ruby oder Node.js umsetzen.

Das ist vergleichbar mit einem Redakteur: Wenn Du eine spanische Webseite betreiben willst, dann bringt Dir ein Redakteur, der fließend Finnisch spricht, wahrscheinlich nicht so viel.

Wenn es um die Einschätzung geht, welche Programmiersprachen bzw. Fähigkeiten dein Programmierer mit sich bringen können muss, können Dir vielleicht Freunde bei der Formulierung der technischen Anforderungen helfen. Gegebenenfalls kannst Du auch einen Programmierer freundlich um seine Einschätzung bitten.[1]

Typen von Programmierern

Es gibt verschiedene Programmierertypen: Den Software Architekten, den Anwendungsentwickler, den „Frontendler“ und den Allrounder.

Der Software-Architekt entwickelt die Architektur von komplexen Systemen und legt das technische Fundament. Ihn brauchst du (primär) bei großen komplexen Projekten (Beispiel: du möchtest eine Plattform entwickeln wie Facebook). Wenn Du einmal an den Punkt kommst, wo Du mehrere tausend Benutzer hast und Du an Deine Kapazitätsgrenzen stößt, dann solltest Du mindestens einen guten Software Architekten haben. Oft finden sich Software Architekten auch in der Rolle des Projektmanagers wieder. Sie programmieren meistens nur noch wenig, bzw. evaluieren eher Anforderungen und erstellen Grundgerüste.

Der Frontendler setzt einfach gesagt Dein Layout um. Er erstellt grafische Benutzeroberflächen und sorgt dafür, dass bei deinem (Web)projekt alles so aussieht wie in deinem Layout und macht das ganze Projekt hübsch. Ein guter Frontendler hat meistens einen grafischen Background, kann also mit Grafik-Programmen umgehen und auch (kleinere) Grafiken (Buttons, Banner etc) selber erstellen. Oftmals sind Frontendler Grafiker die sich HTML, CSS und JavaScript beigebracht haben. Man spricht hier auch vom Webdesigner (wobei das auch manchmal nur einen Grafiker beschreibt der Layouts für das Web erstellt).

Der Anwendungsentwickler (im amerikanischen manchmal als Code Monkey bezeichnet) ist das fleißige Bienchen bei Projekten. Er füllt das Projekt mit Leben, erstellt Formulare, liest Werte aus der Datenbank aus und übernimmt den täglichen Support. Oftmals sind Frontendler und Anwendungsentwickler nahe beieinander bzw. übernehmen die gleichen Bereiche.

Der Allrounder ist eine Mischung aus allen genannten Bereichen. Viele Freiberufler sind Allrounder, ganz einfach weil der Kunde es fordert. Vergleichbar mit einem Hausmeister, der sich um die Heizung kümmert, die Tür repariert und auch Wände streicht. Es liegt in der Natur der Dinge, dass hier nicht alle Bereiche in der gleichen Qualität abgedeckt werden können. Bei vielen Webprojekten klappt das aber erstaunlich gut.

Die Vorbereitung

Als erstes unterscheidet man zwei Fälle: Du hast ein Budget oder Du hast kein Budget. Mit Budget ist es natürlich einfacher, denn für Geld arbeiten viele Leute einfach lieber.

Ohne Budget musst Du den Programmierer von deinem Projekt überzeugen bzw. begeistern. Bitte habe Verständnis dafür, dass nicht jeder Programmierer direkt alles stehen und liegen lässt für Deine Idee. Die meisten Entwickler werden im Laufe ihres Berufslebens überhäuft mit Anfragen von kleinen Startups oder Leuten mit großartigen Ideen, wie man das nächste Google oder Facebook macht (Suche mal nach „Clients from hell“). Übertrieben gesagt ist es ein bisschen wie eine Liebesbeziehung. Du musst um den Programmierer werben und ihm deine Idee präsentieren. Das ist die gleiche Situation wie bei jedem Pitch für dein Projekt: Du musst zeigen warum dein Projekt so cool ist.

Mich persönlich schrecken hier Floskeln oder allzu generelle Aussagen ab. Hebe die Vorteile und die Alleinstellungsmerkmale Deiner Idee heraus. Vielleicht zeigst Du eine kleine Präsentation oder ein Video von Deiner Idee.

Dann solltest Du auch klar sagen, was Du dafür bereit bist zu geben. Ein Weg wäre zum Beispiel, dass du dafür eine Dienstleistung von dir anbietest. Das ist aus meiner Sicht besser, als direkt mit Firmenbeteiligungen zu werben (außer Deine Idee ist schon erfolgreich und hat bewiesen, dass sie funktioniert). Wenn Du an einem coolen Ort lebst (oder eine Ferienwohnung dort hast) kannst du ja vielleicht auch einen Aufenthalt gegen Programmierleistung tauschen. Ich hatte mal das Angebot 4 Wochen nach Afrika zu reisen, in einem Appartment am Strand zu wohnen und mit dem Kunden zu Surfen, gegen die Erstellung einer Typo3 Extension[2]  (Apropos: Das wäre mal ein gutes Projekt).

Du solltest auch Deine zeitlichen Vorstellungen kommunizieren und fragen ob diese machbar sind. Gerade bei Projekten ohne Budget muss der Programmierer ja die Arbeit in seiner Freizeit realisieren und auch noch Geld für seinen Lebensunterhalt verdienen. Programmieren ist eine anstrengende Kopfarbeit und meistens sind Entwickler von ihrem normalen Tagesjob schon ziemlich ausgelaugt.

Egal ob Budget oder kein Budget, wichtig ist vor allem, Deine Planung vorab. Ein Programmierer nimmt Dir nicht die Konzeption der Anwendung ab. Am besten erstellst Du mit Powerpoint oder einem ähnlichen Tool ein sogenanntes Wireframe deiner Anwendung. Das ist eine Art Skizze von den verschiedenen Ansichten deiner Anwendung. Hier gibt es auch freie Online Editoren. Such einmal nach „Online Wireframe erstellen“ bei google. Zu jedem Wireframe gehören dann noch ein paar erklärende Sätze für die jeweilige Ansicht.

Je genauer Du hier arbeitest, umso besser kann der Entwickler die Arbeit und nötige Zeit für die Realisierung abschätzen. Zudem verkürzt Du die spätere Realisierungszeit, weil du so schon früh konzeptionelle Fragen klärst.

Solltest du planen deine Anwendung im Ausland zu entwickeln, dann ist diese Vorbereitung noch wichtiger, weil noch eine Sprachbarriere dazu kommt.

Idealerweise ergänzt Du Deine Wireframes mit grafischen Layouts. Also Ansichten wie das ganze nachher wirklich aussehen soll. Je nach der Größe deines Projektes kann es sinnvoll sein, direkt die ganze Ansichte zu layouten.

Bei einem Shop ist es zum Beispiel nicht sinnvoll, vorher alle Ansichten als Wireframes zu skizzieren, da hier bei den meisten Shops doch eine große Ähnlichkeit besteht.

Der Pitch – “Wo finde ich meinen Nerd?”

Nachdem Du Deine Unterlagen vorbereitet hast, Dein Angebot formuliert und Deine Sätze überdacht hast geht es jetzt auf die Jagd.

Eine gute Stelle sind natürlich Veranstaltungen wie die Startup-Games. Die hier anwesenden Programmierer haben auf jeden Fall durch ihre Teilnahme schon eine gewisse Aufgeschlossenheit demonstriert und auch Lust auf neue Projekte. Hier kannst Du ggf. auch wertvolles Feedback aus Entwicklersicht bekommen.

Eine detaillierte Recherche kannst Du auch bei Xing machen. Hier musst Du ein Premium Mitglied sein, um die entsprechenden Suchaufträge starten zu können und Leute anzuschreiben. Achte bei deinem Profil auf ein nettes Foto und halte Dein Anschreiben persönlich und auf die Person zugeschnitten. Bitte schau Dir auch vorher das Profil des jeweiligen Entwicklers an. Gegebenenfalls stehen hier schon Sachen, die er nicht möchte (wie zum Beispiel ein Angebot für eine Festanstellung).

Bei der Suche solltest Du als Filter Deine Region einstellen und nach den technischen Begrifflichkeiten suchen, die Dein Projekt erfordert. Bei einem WordPress Projekt solltest Du also nach “Wordpress” suchen, bei einem Typo3 Projekt nach „Typo3 Entwickler“ etc.

Ich persönlich bevorzuge Kunden, die direkt zur Sache kommen und nicht erst mal unverbindlich eine Kontaktanfrage stellen. In Deiner Anfrage sollte dein Anliegen stehen, ein grober Umriss des Projektes und die Frage ob da Interesse besteht. Bitte erwähne direkt ob Du dafür Budget hast oder nicht. Möglicherweise hat der Entwickler keine Zeit, aber ist bereit Dir eine Einschätzung zu geben oder einen Kollegen zu empfehlen.

Als weitere Kontaktmöglichkeiten bieten sich Programmierer-Foren an oder Outsourcing-Plattformen (Odesk oder Freelance zum Beispiel). Foren haben manchmal eine durchwachsene Qualität. Hier braucht man Zeit um ein Forum mit guten Entwicklern bzw. freundlichen Entwicklern zu finden.

Die letzte Möglichkeit ist die klassische Empfehlung. Einen großen Teil meiner Kunden habe ich durch Weiterempfehlung kennengelernt. Hier gibt es oft direkt ein Anfangsvertrauen, da man einen gemeinsamen Bekannten hat.

Bei Xing kann man zum Beispiel speziell nach Kontakten meiner Kontakte suchen und diese bitten, den Kontakt herzustellen.

Beurteilung der Leistung

Es ist für einen Außenstehenden Nicht-Programmierer oft schwer die Qualität eines Programmierers abzuschätzen. Trotzdem gibt es einige Kriterien an denen Du aus meiner Sicht erkennen kannst, ob ein Programmierer etwas von seiner Arbeit versteht oder nicht.

Zuerst einmal: Guck nicht auf Studienabschlüsse. Fakt ist: Im Studium (egal ob FH oder Uni) lernt man kein Programmieren. Es ist bei weitem nicht genug Bestandteil des Lehrplans. Die Leute die Informatik (zu Ende) studiert haben, mögen mir hier verzeihen. Wobei es in anderen Berufen hier sicherlich auch nicht anders ist. Einer der besten Programmierer die ich kenne, hat eine normale Ausbildung durchlaufen, als Fachinformatiker.

Frag lieber nach Referenzen und schaue Dir einige Projekte an, die der Programmierer Deiner Wahl erstellt hat. Frag nach und lass Dir von dem Projekt erzählen, von eventuellen Problemen oder ob er noch mit dem damaligem Auftraggeber zusammen arbeitet. Je ähnlicher die Referenzprojekte zu Deinem Projekt sind, umso besser.

Aus meiner Sicht sind auch langjährige Geschäftsbeziehungen zu Agenturen oder anderen Programmierern ein gutes Zeichen. Hier stimmte anscheinend in der Vergangenheit die abgelieferte Qualität und Leistung.

Was am Ende auch zählt: Fühlst du dich verstanden und kann dein Gegenüber technische Sachverhalte so erklären, dass du sie verstehst? Entwickelt er im Gespräch ein Verständnis für dein Projekt und schlägt ggf. andere Lösungswege vor, um problematische Stellen zu umgehen?

(Gute) Programmierer sind sehr gefragt. Ein Kriterium könnte also auch seine verfügbare Zeit sein. Wobei ich auch genug exzellente Programmierer kenne, die sich lausig vermarkten und daher immer wenig zu tun haben.

Die Umsetzung

Vor der Umsetzung solltest du die Aufwände geklärt haben. Wenn du ein Budget hast, lässt du dir am besten ein Angebot erstellen, über die Projektrealisierung. In dem Angebot solltest du dein Projekt “wieder finden”. Das Angebot sollte auf Basis deiner Wireframes erstellt sein.

Wichtig sind die Materialien die von dir geliefert werden müssen (zum Beispiel bei einem Webprojekt ein Layout im Photoshopformat und den richtigen Pixeldimensionen) und der Realisierungszeitraum.

Es sollte klar sein, das Projektänderungen auch Budgetänderungen mit sich bringen (können). Dazu sollten die Kosten für außerhalb des Angebots liegende Arbeiten definiert sein (Stundensatz).

Du solltest kleine Projektteilschritte definieren und diese zusammen mit dem Programmierer abnehmen, um ein Gefühl für die Fortschritte zu bekommen.

Am besten definiert ihr auch zusammen Realisierungszeiträume (man spricht hier auch von Milestones), an denen eine Aufgabe fertig wird.

Bei der Projektkommunikation hilft dir das Benutzen von einem Projektmanagement-System. Empfehlen kann ich zum Beispiel Active Collab (kostenpflichtig) oder ein System wie Basecamp. Damit kannst du Aufgaben sammeln, zuweisen und bearbeiten, ohne die Übersicht zu verlieren und das auch in einem Team von mehreren Entwicklern.

Ich kann dir nur empfehlen den größten Teil der Kommunikation in schriftlicher Form zu führen. So gehen wichtige Informationen oder Absprachen nicht verloren. Nichts ist schlimmer als spätere Diskussion, ob bei einem Telefongespräch irgendwas besprochen wurde oder nicht.

Das Testing

Manchmal sieht man den Wald vor lauter Bäumen nicht. Das gilt auch für den Programmierer. Nach der Fertigstellung bzw. bei erreichen von Teilschritten solltest du die Sachen gut testen. Das beinhaltet alle Funktionen und auch das bewusste Falschausfüllen von Masken.

Bei jedem Projekt sind noch Fehler bzw. Bugs vorhanden. Der Entwickler ist hier oft betriebsblind durch die Umsetzung. Deshalb beschäftigen große Firmen auch eigene Testabteilungen.

Häufige Fehler

Ich führe hier die häufigen Fehler auf, die bei der Kommunikation Entwickler vs. Kunde entstehen können. Diese sind natürlich rein subjektiv aus meiner persönlichen Erfahrung und aus der von Kollegen.

  • Projekte sollten nicht zu eng geplant werden und eine Testphase vorsehen!
  • Du solltest klar definieren und visualisieren was du willst. Vorstellungen oder Annahmen, dass man “etwas immer so macht”, wie du es dir vorstellst, sind gefährlich!
  • Je größer das Projekt, um so unwahrscheinlicher, dass ein Programmierer es ohne Budget fertigstellt. Unterteile dein Projekt daher in funktionierende Teilprojekte mit überschaubarem Aufwand. Kommuniziere trotzdem, was du mit dem Projekt irgendwann einmal erreichen willst, damit der Entwickler es bei der Wahl seiner Struktur berücksichtigen kann!
  • Je mehr Mühe du dir bei der Vorbereitung gibst, um so besser für dein Projekt. Alles andere wirkt so, als ob du faul bist und du die Arbeit abwälzen möchtest!
  • Sei vorsichtig mit Schuldformulierungen. Bemühe dich eher um ein Verständnis für auftretende Probleme und deren Lösung. Du solltest ein Grundverständnis haben für die technische Seite deines Projektes!
  • Akzeptiere Kompetenzgrenzen. Wenn du mit deinem Entwickler z.b. über den Sinn von Html Validität diskutieren willst, dann mach das nur wenn du auch die Thematik verstehst!

Ich hoffe diese Tipps und Hinweise helfen Dir in Zukunft Programmierer für Deine Ideen und Projekte zu finden. 

Falls Dir der Artikel gefallen hat, freue ich mich über Dein ‚Like‘ oder Teilen des Artikels. 

Sebastian

Bild: hackNY

The following two tabs change content below.