by:

Ich habe immer wieder Ideen, die darauf warten umgesetzt zu werden.
Damit diese Ideen nicht nur Ideen bleiben, möchte ich diese fortan mit euch teilen und vielleicht auch mit eurer Hilfe verwirklichen. 

Meine erste Startup Idee: Die immer scharfe Rasierklinge. 
Die Industrie hat viel Zeit und Geld investiert eine Metalllegierung zu entwickeln, die nach dem ersten Gebrauch unscharf wird. 

Nach dem zweiten Mal rasieren könnte ich meistens schon eine Rolle im nächsten Horrorstreifen übernehmen. 
Daher die Idee eine Legierung zu finden die möglichst lange seine Form behält
und dauerhaft eine Horrorfilm freie Rasur gewährt. 

Was denkst du darüber, würdest du so einen Rassierer kaufen ?


Kommentare

by:

Mir ist aufgefallen das moderne IDE kaum Ahnung von dem Model hinter dem ORM haben, 
Sie kennen zwar die Methoden vom ORM selber get, find, update, delete, save.. 

Aber haben keine Ahnung von den Properties des Datenmodels, gerade beim Abfragen
oder beim Ausgeben wäre es doch wünschenswert wenn die IDE die Variabeln des 
Models kennt. (Siehe die Variabel publish_status vom Model Post)

Das liegt natürlich an der Komplexität und Flexibilität moderner Frameworks,
und daran das die IDE "intelligenter" werden müsste, denn Sie müssten nicht nur die Syntax kennen, sondern auch den Code verstehen und interpretieren.. 

Ich vermute das in Zukunft nicht mehr so sehr die Programmiersprache selber über die Akzeptanz Endscheiden wird, sondern die Tools, wie die IDE, Debuger, Profiler etc. 

Nachtrag:
Auslöser für diesen kurzen Rant war eigentlich das ich mit Pycharm probiert habe ein kleines Blog für mein Unternehmen zu schreiben. 
Das ganze wird vorraussichtlich auch in den nächsten Tagen Online gehen, denoch ärgere ich
mich immernoch das die IDE meine Template Variabeln nicht kennt, und
das der ORM mapper keine Ahnung hat, welche Properties mein Model hat,
aber vieleicht hat das auch was gutes. So muss ich mir das Eben selber
merken und laggere nicht mein gesamtes Gedächnis auf die Kiste vor mir aus :) 


Happy Hacking

Andreas


Kommentare

by:

Kommentare

by:

Ich habe viele Jahre überlegt mich selbstständig zu machen. Die brennendsten Fragen, die dabei immer im Vordergrund standen, waren:

Woher bekomme ich meine Kunden?
Geht sich das ganze auch finanziell aus?

Was ich nach ca. 2 Jahren sagen kann, ja das sind wichtige Fragen aber du wirst bald merken:
a) Es gibt viel mehr und auch viel wichtigere Fragen und Entscheidungen zu bewältigen.
b) Die Antwort auf die Fragen kann man nur durch ausprobieren herausfinden.

Nun ja, eine der größten Hürden am Anfang ist, seine eigene Angst zu überwinden. Ich habe mit der Zeit realisiert, dass die Wahrscheinlichkeit sein Baby (das Startup) an die Wand zu fahren genauso groß ist, wie die Wahrscheinlichkeit, dass mein Arbeitgeber Konkurs anmeldet, ich gekündigt werde oder what so ever.

Um genau zu sein, hat man bei seinem eigenen Unternehmen sogar noch mehr Möglichkeiten. Man kann das Ruder selbst in die Hand nehmen, man ist im Fall der Fälle wenigstens Kapitän auf der Titanic und nicht nur Passagier. Somit bedeutet das aber auch, man muss selbst Verantwortung für sein Handeln übernehmen und sich im Zweifel eingestehen, dass man selbst Schuld ist wenn das Boot dann in den Fluten versinkt.

Office Sektor 5

Wer mit Fehlschlägen und Existenzängsten nicht gut umgehen kann, sollte besser kein Startup gründen, denn gerade am Anfang gibt's einen ganzen Haufen davon, Kunden zahlen nicht oder bleiben ganz aus, Buchhaltung und Versicherung treiben einen in den Wahnsinn, Wochenenden nimmt man nur noch wahr, weil man am Sonntag beim Brötchenkauf plötzlich vor verschlossenen Supermarkttüren steht und die liebe Familie steht einem auch noch kritisch gegenüber.

Hätte ich von Freunden oder der Familie jedes Mal einen Euro bekommen für Fragen wie: "Warum machst du das eigentlich?" oder "Warum suchst du dir nicht lieber einen Job, zumindest halbtags..." - ich bräuchte keine Kunden mehr.

Ich für meinen Teil kann sagen, ich glaube nicht, dass ich schon über den Berg bin, die größten Hürden liegen vermutlich noch vor mir, aber ich habe einiges über mich, meine Freunde und mein Leben gelernt.

Da man aber scheinbar die ganzen Fehler selber machen muss, versuch ich mich mit guten Ratschlägen zurückzuhalten!

Würde ich es wieder machen?

Ja klar!!!

Was würde ich anders machen?

So manches.

Es gibt einige Dinge, die ich falsch eingeschätzt habe. Das Verhältnis von administrativen Tätigkeiten (Buchhaltung, Kundenaquise/betreung, Marketing) zur eigentlichen Tätigkeit (Entwicklung/Programmierung) zum Beispiel.

Und - weil ich es eben doch nicht lassen kann - doch noch ein paar Tipps am Ende: Solltest du mit dem Gedanken spielen dich selbstständig zu machen, such dir Mitstreiter, versuch nicht jeden Menschen als deinen Kunden zu sehen, spezialisier' dich, sei Kritik gegenüber offen aber lass dich nicht verunsichern, triff Leidensgenossen, geh in ein Co-Workingspace oder auf Meetups.

An dieser Stelle auch nochmal Danke an den Sektor 5 (Co-Workingspace) in Wien, ich habe hier einen Ort gefunden, an dem ich mich austauschen kann, an dem man Ideen teilt und ausprobiert, neue Menschen kennenlernt und gemeinsam eine tolle Zeit verbringt. DANKE!


Happy Hacking,

Andreas


Kommentare

by:

Nachdem ich gebeten wurde die Arbeit von einem Kollegen zu bewerten, habe ich mir Gedanken gemacht, wie man möglichst objektiv die Qualität von Software und Dokumentation beurteilen kann.

Hierzu hab ich eine Checkliste erstellt die ich euch nicht vorenthalten möchte.
Ich hege natürlich keinen Anspruch auf Vollständigkeit, freue mich über jegliche Verbesserungsvorschläge, Fragen und/oder Kritik!

code review

Dokumentation

Gibt es eine Technische- und eine Anwenderdokumentation?

Ich glaube es sollte schon bei der Auftragsvergabe über den Umfang, die Zielgruppe und den konkreten Inhalt der Dokumentation diskutiert werden.
Bei der NASA wird angeblich, zuerst jede Funktion dokumentiert, um danach implementiert zu werden, dies hat den Vorteil, das sich die Beteiligten schon im Vorfeld sehr konkrete Gedanken machen müssen.

Quelltext

MVC

Wurde die Darstellung, Businesslogik und das Datenmodel getrennt?
Das Konzept von MVC ist nicht neu, die Segmentierung von gewissen Teilen des Quelltextes ist gerade bei größeren Projekten unumgänglich und sollte von Beginn an berücksichtigt werden.

Framework

Wurde ein Framework verwendet?
Frameworks können dazu beitragen dass der Quelltext in einer gewissen Struktur vorliegen muss.
Sie ersparen außerdem oft Zeit, da gewisse Funktionalitäten bereits abgebildet sind (z.b. Benutzerverwaltung, Sicherheitsüberprüfungen)

Coding Guidelines

Gibt es Coding Guidelines und wurden diese eingehalten?
Die meisten Frameworks haben Coding Guidlines oder Best Practice Beispiele,
die definieren, welche Formatierung, Ordnerstruktur und Namenskonventionen eingehalten werden sollte.

Performance (Benchmark / Profiling)

Alle Programmiersprachen haben Tools, die Aufschlüsse darüber geben, wie oft eine Funktion aufgerufen wird, wie viel Speicher und Zeit sie dabei benötigt, kurz wie viel Ressourcen sie für eine gewisse Aufgabe benötigt.
Ich empfehle grundsätzlich jedes Projekt zu profilen um mögliche Schwachstellen frühzeitig zu erkennen.

Debugger

Ein Debugger sollte zum Werkzeugkasten eines jeden Programmierers gehören und eigentlich selbstverständlich sein.
Ich habe es aber auch schon erlebt, das "Entwickler" noch nie ein Breakpoint oder Observer verwendet haben bzw. von deren Existenz gewusst haben.

Unit Tests

Werden dazu verwendet einzelne Funktionen der Software zu testen.
Ich selber schreibe viel zu selten Unit Tests, halte es dennoch für eine wichtige Aufgabe eines jeden Software Entwicklers.

Statische Codeanalyse

Die statische Codeanalyse kann dazu beitragen das typische Fehler früh erkannt werden, außerdem kann Sie gewährleisten, dass eine gewisse Formatierung und Namenskonventionen eingehalten wurde. 

Peer Reviewing

Beim Peer Reviewing werden weitere Entwickler um ihre fachliche Meinung zum Quelltext gebeten. 
Ich musste leider oft feststellen, das Programmierer Angst haben, Ihren Quelltext von Dritten begutachten zu lassen, obwohl hierfür kein Grund besteht, immerhin machen wir alle Fehler und dies ist der beste Weg um sich und die Qualität der Software zu verbessern. 

Organisation

Versionskontrollsystem

Ein Versionskontrollsystem hilft dabei, zwischen Versionen zu wechseln, Konflikte zu erkennen und die Übersicht zu behalten.
Es wird z.B. erfasst, wer, was, wann geändert hat, des weiteren kann man jede Änderung wieder rückgängig machen.
    
   
Zu den einzelnen Punkten kann man ganze Bücher schreiben, mir ging es hier in erster Linie
darum, einen Überblick zu geben.

Wie schon erwähnt würde ich mich über Feedback sehr freuen,

Happy Hacking

Andreas

 

Weiterführende Links:

 

http://de.wikipedia.org/wiki/Smell_(Programmierung)
http://www.linux-magazin.de/Ausgaben/2012/08/Statische-Analyse

 


Kommentare


Seiten: