Ich wurde beauftragt, den Softwareentwicklungsprozess durch die Implementierung von Prozessverbesserungen zu verbessern, von denen wir höchstwahrscheinlich CMMI for Development, Version 1.3 als Richtlinie verwenden und die Best Practices ganz oder teilweise übernehmen werden. Was ist der beste Weg, um Standards und Prozessverbesserungen einzuführen, damit das Ausmaß des Zurückdrückens und des Widerstands von Entwicklern minimiert wird?
10
Antworten:
Es ist auch hilfreich, wenn Sie alle Personen in Ihrem Unternehmen finden, die sich wirklich um die Qualität sorgen. Dies ist höchstwahrscheinlich die wichtigste Ressource, die Ihnen hilft, Veränderungen zu fördern und ausgereifte Praktiken zu etablieren.
quelle
Ein paar Gedanken aus der Schule der harten Schläge:
1) Die meisten Initiativen zur Prozessverbesserung verbringen 80% ihrer Zeit mit Prozessdesign und 20% mit Bildung und Sozialisation. Drehen Sie diese Prozentsätze um. Ein mittelmäßiger Standard, der befolgt wird, schlägt einen perfekten, der es nicht ist.
2) Identifizieren Sie klare Gründe, warum Sie die Leute bitten, ihre Arbeitsweise zu ändern. Was ist der Business Case? Im Idealfall kommt es jedem Team individuell zugute. Manchmal ist es nur eine systemische Verbesserung. Machen Sie den Fall in jedem Fall sichtbar.
3) Vereinfachen und dann standardisieren, nicht umgekehrt.
4) Sie können dies nicht vollständig an ein PMO delegieren. Direkte Manager müssen eingekauft werden, und der Leiter der Geschäftseinheit muss die Verbindung trennen, wenn Beschwerden eingehen.
5) Finden Sie freundliche Early Adopters. Die Leute werden sich darüber beschweren, wie viel Zeit das alles dauert. Sie brauchen jemanden, auf den Sie zeigen und sagen können: "Es hat nur 15 Minuten gedauert."
6) Drücken Sie bei Metriken auf Quantität und nicht auf Qualität. Andernfalls haben Sie Projekte, die bis zu einem Tag vor Go Live grün sind, wenn alles um einen Monat abrutscht.
7) Betonen Sie Techniken gegenüber Werkzeugen. Gute Planung ist wichtiger als MS Project.
8) Setzen Sie eine Prozessebene in Bezug auf die Bedürfnisse ein. Jedes Restaurant braucht einen Prozess, aber Nobu und die französische Wäscherei brauchen eine andere Art als McDonalds. Gleiches gilt für Softwarefirmen.
Viel Glück!
quelle
Es ist wahrscheinlich eine gute Idee, Ihre Bemühungen auf das CMMI zu stützen, auch wenn Sie sich nicht den Bewertungen unterziehen und sich formell prüfen und bewerten lassen. Es gibt viel Literatur über CMMI , CMMI und andere Techniken zur Prozessverbesserung wie Lean und Six Sigma sowie CMMI und agile Softwareentwicklung . Das SEI verfügt über eine ganze Sammlung von Ressourcen , von denen einige kostenlos zur Verfügung stehen, zu verschiedenen Aspekten des CMMI und Leitlinien für verschiedene Arten von Organisationen.
Ich würde empfehlen, sich eingehend mit dem kontinuierlichen Ansatz zur Implementierung von CMMI und nicht mit dem abgestuften Ansatz zu befassen. Es scheint mir eine viel effizientere Möglichkeit zu sein, genau zu bestimmen, wo Ihre Organisation jetzt steht, und sich in Bereichen zu verbessern, die den größten geschäftlichen Mehrwert bieten. Auf diese Weise können Sie Ihre Verbesserungsbemühungen nicht nur an den Geschäftszielen ausrichten, sondern auch schnell Meilensteine für Fortschritte erreichen und die Auswirkungen von Verbesserungen demonstrieren, wodurch das Buy-in auf allen Ebenen erhöht wird.
Zu beachten ist jedoch, dass die Prozessverbesserung im Allgemeinen erfolgreicher ist, wenn es sich um eine Basisanstrengung handelt. Wenn Prozessänderungen von oben diktiert werden - von Leuten, die die Entwickler "in den Gräben" möglicherweise als nicht in Kontakt mit der Vorgehensweise in den Gräben sehen -, wird es wahrscheinlich einen Pushback geben, selbst wenn die Idee gut ist. Seien Sie darauf vorbereitet.
Eine Art von Engineering-Prozessgruppe kann ebenfalls von Vorteil sein. Bringen Sie Vertreter der verschiedenen Organisationskomponenten und Teams zusammen, die von der Verbesserung betroffen sind, damit die Stimme aller gehört wird. Dies würde nicht nur Vertreter jeder Rolle einschließen, sondern möglicherweise verschiedene Produktentwicklungsteams. Ohne zu wissen, wie Ihre Organisation strukturiert ist, kann ich nicht genau sagen, wen Sie sich ansehen möchten, sondern Personen aus allen Ebenen der Organisation in die Gruppe einbeziehen. Stellen Sie der Organisation auch die Diskussionen und Entscheidungen dieser Gruppe zur Verfügung, um Kommentare abzugeben und Probleme anzusprechen.
quelle
Für jede Änderung:
Natürlich muss die Analyse im Laufe der Zeit erfolgen, aber keine Änderung sollte akzeptiert werden, bis sich herausstellt, dass sie effektiv ist. Das ist auch der Grund, warum ich nicht mehr als 2-3 Änderungen pro Zyklus implementieren würde, sonst kann man oft nicht messen, ob es Verbesserungen gegeben hat oder nicht.
Nichts irritiert mich mehr, als blind Best Practices zu befolgen, ohne die Analyse durchzuführen, um zu zeigen, dass dies tatsächlich eine Best Practice für Ihre Umgebung ist. Eine bewährte Methode , die keine Verbesserung zeigt, ist bestenfalls verschwenderisch und im schlimmsten Fall schädlich.
Alle Schritte in Ihrem Prozess und alle Methoden in der Methodik sollten analysiert werden und sich als nützlich erweisen. Wenn dies nicht der Fall ist, sollte es entfernt werden. Diese Analyse sollte fortlaufend durchgeführt werden, unabhängig davon, ob Schritte oder Praktiken hinzugefügt oder entfernt werden.
quelle