Besserer labview softwareentwickler

Hier sind aus meiner Sicht die wichtigsten Tipps um ein besserer Labview- Softwareentwickler zu werden:

Labview- Programmierer und Labview- Softwareentwickler

Unterschied: Programmierer und Softwareentwickler

In meiner Praxiserfahrung habe ich festgestellt, dass es große Unterschiede gibt zwischen Labview- Programmierer und richtig guten Labview- Softwareentwickler. Und zwar unabhängig davon wie lange derjenige oder diejenige diesen Beruf ausübt. Was meine ich damit?

Programmierer sind für mich Fachkräfte die eine oder mehrere Programmiersprache gelernt haben und mit dieser Fähigkeit setzen sie Ideen, funktionale Anforderungen in Quellcode um. Dabei können sie durch die lange Berufserfahrung sogar auf den ersten Blick richtig Produktiv sein. Den sie sind schnell und haben nach kurzer Zeit schon eine funktionierende Anwendung auch bei weiteren Anforderungen können sie diese in super Geschwindigkeiten implementieren.

Perfekt? Aber es täuscht.

Man merkt mit der Zeit wächst die Anwendung und die Komplexität. Die Anwendung wird nicht mehr händelbar, denn jede weitere Änderung dauert solange, dass das Ganze nicht mehr wirtschaftlich ist und man muss ein Refactoring durchführen oder sogar die Anwendung neu schreiben.

Softwareentwickler versuchen einen möglichst hohen Wert zu schaffen indem sie die Software nachhaltig mit hoher Qualität entwickeln. Heißt, sie liefern Softwarelösungen die Lesbar, Wiederverwendbar, Wartbar, Austauschbar, Testbar …. sind.

Das Ganze ist nur meine Ansicht. Kommentiere gerne wenn du gleiche oder andere Erfahrungen gemacht hast. Ich freue mich auf deine Kommentare!

Besserer Labview Softwareentwickler

Motivation

Bist du intrinsisch motiviert bei dem was du täglich tust? Hast du Spaß bei deiner Arbeit? Hast du Spaß ständig was Neues zu lernen?
In der Softwareentwicklung ist alles sehr schnelllebig. Konzepte, Frameworks, Technologie und Prozesse ändern sich ständig.
Als guter Softwareentwickler solltest du dafür brennen und Spaß dabei haben, ständig Neues zu lernen. Den nur so kann man mit der Technologieentwicklung mithalten.

Das Ganze ist nur meine Ansicht. Kommentiere gerne wenn du gleiche oder andere Erfahrungen gemacht hast. Ich freue mich auf deine Kommentare!

Große Ganze

Versuche das große Ganze der Softwareentwicklung zu verstehen bevor du dich in den Details verzettelst.
Wie setzt sich die Softwareentwicklung zusammen? Welche großen Bereiche gibt es?
DevOps(plan, code, build, test, release …)
Entwicklung (frameworks, sdk, business logic …)
Usability (useful, usable, findable …)
Operation Management (Anforderungsmanagement, Storage, Infrastrucktur)
Testing

Nicht alle Bereiche muss man in seinem Softwareentwicklungsprozess einführen aber man sollte wissen, dass es gibt und bei Bedarf dann einführen oder falls bereits eingeführt ausweiten.

Das Ganze ist nur meine Ansicht. Kommentiere gerne wenn du gleiche oder andere Erfahrungen gemacht hast. Ich freue mich auf deine Kommentare!

sOFTWAREQUALITÄT

Versuche möglichst hohen Wert zu liefern!
Die meisten Anforderungen, die von den Product Owner kommen, sind funktionale Anforderungen. Wenn man diese umsetzt ohne sich Gedanken um die Qualitätsattribute (Lesbar, Wiederverwendbar, Wartbar, Austauschbar, Testbar … ) zumachen, steht man als Entwickler kurzfristig zwar gut da (schnelle Umsetzung der Anforderungen).
Allerdings wird es auf lange Sicht für die gesamte Applikation gefährlich!
Den es ist nur eine Frage der Zeit bis die Software nicht mehr wartbar und nicht mehr erweiterbar wird.
Man sollte also seinen Focus von den funktionalen Anforderungen auf die nicht funktionale Anforderungen verlagern. Gerade die Umsetzung der nicht funktionalen Anforderungen sagt aus wie gut ein Softwareentwickler ist.

Das Ganze ist nur meine Ansicht. Kommentiere gerne wenn du gleiche oder andere Erfahrungen gemacht hast. Ich freue mich auf deine Kommentare!

Konzepte verstehen

Konzentriere dich nicht auf bestimmte Technologien sondern auf die Konzepte dahinter!
Technologien sind flüchtig. Die Frameworks die heute gehypt werden sind Jahre später nicht mehr aktuell, sind nicht mehr gefragt und werden nicht mehr eingesetzt.
Deshalb versuche die Konzepte hinter diesen Technologien zu verstehen. (zB wie wird eine Applikation mit diesem Framework aufgebaut, wie werden die Daten innerhalb der Applikation ausgetauscht, warum wird die eine oder die andere Methode zum Austausch der Daten verwendet …)
Wenn man dann eine neue Technologie erlernen muss, fehlt es einem wesentlich leichter wenn man schon die Konzepte dahinter kennt.
Das Ganze ist nur meine Ansicht. Kommentiere gerne wenn du gleiche oder andere Erfahrungen gemacht hast. Ich freue mich auf deine Kommentare!

Soft skills

Klischee: „Wir Softwareentwickler sind introvertierte Kellerkinder und Nerds“
Sicherlich passt es nicht zu allen Softwareentwicklern aber ich denke pauschal kann man das schon so sagen und da ist sehr viel Wahrheit dran. Als Softwareentwickler haben wir großen Spaß uns mit neuen Technologien und technischen Dingen zu beschäftigen. Und zwar so viel Spaß, dass wir andere Kompetenzen komplett vernachlässigen. Somit haben wir oft in Verhandlungssprächen oder anderen Diskussionen einen Nachteil.
Deshalb gehören zu einem erfolgreichen Softwareentwickler unbedingt auch die ausgeprägten Soft Skills dazu (persönliche Weiterentwicklung, Teamfähigkeit, Führungskompetenzen, Menschenkenntnis, Verhandlungstechniken …)
Das Ganze ist nur meine Ansicht. Kommentiere gerne wenn du gleiche oder andere Erfahrungen gemacht hast. Ich freue mich auf deine Kommentare!

deinen Wert steigern

Versuche jeden Tag etwas besser als den Tag davor zu sein!
Es heißt nicht, dass du nicht gut genug bist so wie du bist. Hierbei geht es um deinen wirtschaftlichen Wert (welchen Wert lieferst du für dein Unternehmen)
Achte drauf, wo du täglich dran arbeitest. Macht dich das zu einem besseren Softwareentwickler, weil du neue Konzepte erlernst oder deine Arbeitsweise (bzw. Prozesse) verbesserst. Kannst du dadurch deinen Wert als Softwareentwickler steigern?
Ich habe in meiner Praxiserfahrung festgestellt, dass viele Entwickler sich jahrelang mit alten Technologien oder internen Softwaretools beschäftigen und merken es nicht das sie praktisch von den Unternehmen ausgebeutet werden. Den wenn sie sich anderweitig bewerben müssen, stellen sie fest, dass diese Kenntnisse auf dem Arbeitsmarkt nicht gefragt werden. Somit haben sie jahrelang ihren Wert als Softwareentwickler nicht gesteigert.
Falls du in so einer Situation bist und merkst du wirst in deinem Unternehmen nicht richtig gefördert. Dann versuche dich nach Alternativen Arbeitsstellen umzuschauen. Es gibt so viele tolle und interessante Projekte, die man mit seinen Fähigkeiten voran treiben kann.


Das Ganze ist nur meine Ansicht. Kommentiere gerne wenn du gleiche oder andere Erfahrungen gemacht hast. Ich freue mich auf deine Kommentare!

Feedback einholen

Um guter Softwareentwickler zu werden muss man viel Erfahrung sammeln. Mit jedem weiteren Projekt bekommt man etwas Erfahrung.
Viele Projekte = viel Erfahrung.
Aber wie kann man diesen Prozess beschleunigen um, mit den Projekten die man durchführt, noch mehr Erfahrung zu sammeln?
Reflektieren und Feedback einholen
1. Am Ende eines Projektes reflektieren. Sich überlegen: Was ist mir besonders gut gelungen? Was ist schiefgelaufen? (Wie kann man es in zukünftigen Projekten vermeiden?)
2. Gehe mit deinen Kunden in Austausch und hol dir Feedback über deine Arbeit. Beim Feedback genau analysieren: Was kritisiert mein Kunde? Was ist für den Kunden wichtig? Wie kann man dem Kunden noch mehr Wert liefern?…
3. In Austausch mit anderen Softwareentwicklern gehen und von ihrer Erfahrung profitieren. Diskutiere über Konzepte, Frameworks und Softwarearchitekturen. Zeige denen Code und hole Kritik (vor allem bei den erfahrenen Softwareentwicklern) ein.
4. Lerne von den Open Source Projekten. Analysiere und bespreche Open Source Projekte und Best Practices mit anderen Entwicklern


Das Ganze ist nur meine Ansicht. Kommentiere gerne wenn du gleiche oder andere Erfahrungen gemacht hast. Ich freue mich auf deine Kommentare!