Inhaltsverzeichnis:
Funktioniert Ihre Softwareentwicklungsorganisation ordnungsgemäß? Es gibt immer Raum für Verbesserungen, aber einige Organisationen benötigen mehr Hilfe als andere. Überall dort, wo Sie sich auf dem Kontinuum befinden, ist es wichtig zu ermitteln, wohin Sie müssen und wie Sie dorthin gelangen, da Unternehmen eine klare Vision benötigen, damit alle in die gleiche Richtung fahren können. Wir sollten unsere Prozesse, Technologie, Produktlinie, Dokumentation, Kultur und unsere Mitarbeiter selbst bewerten. Aber womit bewerten wir sie? Wie messen wir unseren Fortschritt? Ich glaube, es gibt drei wichtige Messstäbe für die Bewertung eines Teams oder einer Organisation, und wenn wir diese Dinge im Fokus behalten, wird die Produktivität in die Höhe schnellen.
- Qualität
- Effizienz
- Balance
Schauen wir uns jeden einzelnen genau an.
Qualität
wie man das Geschäft verbessert
Pixabay
Qualität ist für jedes Unternehmen von entscheidender Bedeutung. Dieses Wort gilt für alles, was wir tun, nicht nur für die Anzahl bekannter Fehler in unserer Software. Stellen Sie sich vor, was Sie mit 40 hochwertigen Stunden erreichen können - möglicherweise müssen Sie sich keine Nächte und Wochenenden ausleihen, um eingeholt zu werden. Wenn Sie einen automatisierten Test schreiben, machen Sie ihn zu einem guten Test, der einen Mehrwert bietet. Warum sollten Sie sich sonst die Mühe machen?
Zusammenarbeit ist der Schlüssel zur Erzielung einer qualitativ hochwertigen Leistung, da unsere Kollegen Dinge sehen, die wir nicht sehen. Wenn etwas gut gemacht werden muss, insbesondere wenn es dem Kunden zugewandt ist, ist es ratsam, zusätzliche Augen darauf zu werfen. Wenn Autoren wissen wollen, ob ihre Artikel von hoher Qualität sind, bitten sie um Kritik, weil sie verstehen, dass Zahlen Stärke haben. Ob es sich um Codeüberprüfungen, Paarprogrammierung oder einfach um "Hey, können Sie sich das ansehen?" Handelt, die Nutzung der zusätzlichen Augenpaare um uns herum hilft uns, auf dem Laufenden zu bleiben.
Bei dem Versuch, die Softwarequalität zu verbessern, glaube ich, dass das wichtigste das automatisierte Testen ist. Manuelle Testfälle sind billiger zu erstellen als automatisierte Testfälle. Die Ausführung manueller Tests ist jedoch viel teurer, insbesondere wenn Sie zahlreiche Durchgänge durchführen müssen, um alles in mehreren Browsern, Betriebssystemen und Gerätetypen zu testen. Entwickler sollten umfangreiche Tests mit Karma, Spock oder JUnit durchführen, aber es sollten auch Funktionstests mit Selen, SOASTA oder Gurke durchgeführt werden. Was Sie bei all dem wirklich suchen, ist die frühzeitige Fehlererkennung, denn je weiter Sie vom Schreiben des Codes durch den Entwickler entfernt sind, desto mehr Arbeit ist erforderlich, um ein Problem zu beheben. Es ist viel einfacher, einen Fehler in Code zu beheben, den ich gestern geschrieben habe, als in Code, den ich vor 3 bis 6 Wochen geschrieben habe.
Effizienz
Verbesserung von Geschäftsprozessen
Pixabay
Wenn Sie sich auf Effizienz konzentrieren, können Sie Ihr Unternehmen rationalisieren und den Aufwand für die Ausführung der einzelnen Aufgaben minimieren. Wiederholbare Prozesse, die zur zweiten Natur geworden sind, erfordern viel weniger Aufwand. Die Automatisierung spielt auch eine wichtige Rolle für die Effizienz, da sich die Mitarbeiter auf Aufgaben konzentrieren sollen, die sich nicht wiederholen und Gehirnarbeit erfordern (Schreiben, Codieren, Entwerfen, Planen usw.). Sobald der Code fertig ist, sollte die Automatisierung übernommen werden, damit der Code automatisch erstellt, getestet und bereitgestellt wird. Der gleiche automatisierte Bereitstellungsprozess sollte für jede nachfolgende Umgebung einschließlich der Produktion gelten. Einfache Bereitstellungen ermöglichen häufigere Lieferungen an die Produktion, sodass Sie viel besser auf die Anforderungen des Unternehmens reagieren können.
Es ist wichtig, dass jeder in der Organisation bewertet, welche Art von Dingen er manuell ausführt. Können diese Dinge rationalisiert oder automatisiert werden? Wenn Sie viel tun, ist es wahrscheinlich ein guter Kandidat für die Automatisierung. In einigen Fällen müssen wir nur unsere Prozesse neu definieren, um unnötige Schritte zu vermeiden. In anderen Fällen müssen wir bessere Tools identifizieren, die mehr von dem, was wir jeden Tag tun, automatisieren oder beschleunigen.
Ticketmanagement-Tools wie Quality Center oder Jira sollten ebenfalls evaluiert werden. Welche Metriken verfolgen Sie? Welche Berichte erstellen Sie? Verbringen Sie jede Woche viel Zeit in Excel, um die Nummern zu erhalten, die Sie an das Führungsteam senden müssen? Wie berechnen Sie für agile Teams die Geschwindigkeit Ihres Teams? Erledigt Ihr Werkzeug das für Sie? Suchen Sie nach Tools, die Ihnen Mühe sparen (z. B. Version 1), anstatt nur das zu tun, was Sie wissen.
Balance
Software-Prozess
Pixabay
Balance ist ein entscheidender Bestandteil der Effizienzsteigerung in Ihrem Unternehmen. Sie können sich Ihre Organisation wie ein Segelboot vorstellen. Wenn das Boot nicht ausbalanciert ist, tritt Luftwiderstand auf, wodurch es im Wasser langsamer wird. Außerdem funktioniert das Ruder möglicherweise nicht richtig, was das Drehen des Bootes erheblich erschwert. Wenn Menschen Fehler machen, kompensieren sie dies oft, indem sie auf die „gegenüberliegende Seite des Bootes“ eilen. Wenn Software-Unternehmen Schmerzen und Leiden erleiden, weil ihr Produkt ohne ausreichende Tests oder Planung aus der Tür ging, laufen sie häufig schnell und wütend auf Schwergewichtsprozesse, Zulassungstore und Analyse-Lähmungen. Sie rennen von einem Problem in die wartenden Arme eines anderen.
"Wie viel Dokumentation sollte erforderlich sein?" Schreiben Sie nur, was erforderlich ist, damit die Benutzer verstehen, was zu tun ist. Wenn Dokumentation geschrieben wird, um ein Genehmigungsfenster zu erfüllen oder ein Kontrollkästchen zu aktivieren, sollten wir wahrscheinlich innehalten und überlegen, ob dies erforderlich ist oder nicht "Wie viel Prozess ist erforderlich?" Gerade genug. "Wie viel Zeit sollte für Architektur und Design aufgewendet werden?" Gerade genug. Während Nacharbeiten sicherlich ineffizient sind, ist es manchmal besser, die eigentliche Lösung zu verschieben und eine schnelle Lösung zu implementieren, um dies zu tun Reagieren Sie auf die dringenden Bedürfnisse Ihrer Kunden. Das Leben ist ein Balanceakt. Dies gilt für alles, was wir als Unternehmen tun. Goldlöckchen suchten verzweifelt nach Gleichgewicht. Vielleicht sollten wir es auch.
Bei der Entwicklung besser werden
Wir alle wollen, dass unser Leben besser wird. Wir wollen einfachere Lieferungen, reibungslosere Übergänge, glücklichere Teams und zufriedene Kunden mit minimalen Schmerzen und Leiden. Wenn wir beginnen, unsere Organisation durch diese drei Linsen zu betrachten, können wir Änderungen bewerten und priorisieren. Es konzentriert unsere Aufmerksamkeit auf die Arten von Änderungen, die der Organisation tatsächlich zugute kommen und zu einem reibungslosen Ablauf beitragen. Sie werden schlanker und gemeiner, sodass mit der Zeit die Produktivität steigt, während Stress und Frustration abnehmen.
Qualität, Effizienz und Ausgewogenheit führen letztendlich zu etwas, das jedes Unternehmen anstrebt: Geschwindigkeit. Wir wollen eine schnelle Markteinführung, Reaktionsfähigkeit gegenüber unseren Kunden und die Möglichkeit, einen Cent einzuschalten, aber dies zu erreichen, ist nicht intuitiv. "Lass uns einfach mehr Leute einstellen, damit wir wirklich schnell gehen können!" Das Hinzufügen vieler Leute wird Ihnen sicherlich dabei helfen, sehr schnell zu fahren. Leider helfen sie Ihnen manchmal dabei, sehr schnell in den Graben zu gelangen. Ein weiser Kollege hat mir einmal gesagt, dass man langsamer fahren muss, um schneller zu fahren, und das ist absolut richtig. Geschwindigkeit erfordert Vorausdenken und Anstrengung, insbesondere im Bereich der Automatisierung. Wenn Sie sich die Zeit nehmen, um Qualität, Effizienz und Ausgewogenheit sicherzustellen, werden Sie natürlich schnell gehen. Brüllen wie ein Löwe, sprinten wie eine Gazelle.
© 2017 Mike Shoemake