Mein letzter Artikel Die
Geheimnisse des erfolgreichen Entwurfs von IP (Informationssystem) am Beispiel des Baus des Krankenhauses lösten zeitweise eine hitzige Diskussion in den Kommentaren aus. Aus diesem Grund habe ich beschlossen, eine Reihe von Thesen auf der Grundlage dieser Diskussion zu formulieren.
Design ist nichts für Programmierer
Sehr oft hört man bei der Diskussion der Methoden zum Entwerfen und Implementieren eines Projekts von Informationssystemen Kritik von Entwicklern (Programmierern) an diesen Methoden.
Manchmal sehen Entwickler einfach nicht, dass ein Projekt neben dem Schreiben von Code eine ernsthafte organisatorische Komponente hat, die darin besteht, die Anforderungen zu identifizieren, zu formulieren und zu vereinbaren. Die schwierigste Aufgabe besteht darin, Benutzer zu schulen und alle Prozesse neu zu erstellen - nicht nur einen Tag.
Liebe Programmierer, um herauszufinden, WAS ein System tun soll, müssen Sie C # oder JAVA überhaupt nicht kennen, sondern einen Themenbereich besitzen. Um ein Logistiksystem zu entwerfen, müssen Sie ein Logistiker sein: Erfahrung in diesem Bereich oder in mehreren verwandten, ähnlichen Bereichen. Daher gibt es Geschäftsanalysten, deren Aufgabe es ist, das funktionale Erscheinungsbild des Systems zu bestimmen.
Bestenfalls gibt der Kunde 30-50% der notwendigen Informationen heraus, der Rest sollte eigenständig durchdacht werden. Und sich etwas auszudenken ist äußerst kritisch. Der Kunde weiß zunächst nicht, was er will! In der Regel findet eine gemeinsame Entwicklung eines Geschäftsmodells statt, und erst dann wird eine Liste der Funktionen erstellt.
Dies erfordert Kenntnisse des Fachgebiets. Wir müssen den Kunden kurz verstehen: Er erzählt immer noch die Idee, und Sie wissen bereits, warum er sie braucht und vor allem, wie sie organisiert ist, wie ein solches Unternehmen funktionieren sollte und nicht nur Software.
Agile Notizen
Ist Agile eine neue Religion?
Diskussionsthema Agile vs. Designtechnologie (Kaskade, Wasserfall, Wasserfall) ist eher ein Streit zwischen religiösen Fanatikern! In dem Artikel ging es überhaupt nicht um Agile, aber in allen Kommentaren ging es um „flexible“. Leute! Nun, ist es wirklich unmöglich, weiter zu schauen und zu sehen, dass es für beide Methoden einen Platz unter der Sonne gibt ?!
Meiner Meinung nach ist die scharfe Ablehnung von Agile eine Reaktion auf das äußerst aggressive Vorantreiben dieser Technologie. Wenn man den „Predigern“ flexibler Technologien zuhört, scheint es, dass es vor Agile, der Welt, keine langjährige Erfahrung in der Softwareentwicklung gab, und im Allgemeinen waren alle, die vor uns arbeiteten, Dummköpfe und schreckliche Sünder, da Agile nicht erleuchtet war. Naiv! Eine solche Weltanschauung ist typisch für Jugendliche, aber wir ...
Lassen Sie uns den Grad senken und versuchen, die verschiedenen Ansätze für jedes Projekt nüchtern zu bewerten.
Agile ist nicht überall geeignet, genau wie Designtechnologie
Ein Kommentator schrieb:
„Agile ist nicht für die IT und nicht für die IT. Agil für Unternehmen und Profis .
“ In der Tat muss man manchmal ein sehr schnelles Ergebnis erzielen, mit mindestens etwas in den Markt eintreten, um sich einen Platz zu sichern und Investoren zu finden. Oder es werden neue Technologien entwickelt, deren Anforderungen schwer zu erfüllen sind. Dies ist definitiv eine agile Nische.
Wo finden Sie andererseits genügend Kunden, die bereit sind, an flexiblen Technologien zu arbeiten? 70-80% der Bestellungen auf dem Markt sind Regierungsbehörden, die Standard-Designtechnologie verwenden. Außerdem laut GOST 34. Und dafür zahlen sie gut.
Darüber hinaus können diese Methoden in einer Entwicklung kombiniert werden: Der Kern wird mithilfe der Designtechnologie erstellt, und einige Teile werden durch Ausprobieren (Agile) erstellt. Nun, es ist nicht alles möglich, im Voraus zu denken. Darüber hinaus gibt es Flexibilität in der Designtechnologie: Es gibt so etwas wie einen Testbetrieb, bei dem sich viel ändern kann.
Agil denken Entwickler
Ich kann nicht für jeden bürgen, aber es scheint, dass Programmierer "flexibel" denken, Agile trifft die Struktur ihres Denkens! Programmierung ist schließlich eine ständige Suche nach den besten Lösungen. Sie setzen sich an die Aufgabe, Sie wissen immer noch nicht, wie sie gelöst werden soll. Sie können weder das Ergebnis noch die Fristen im Voraus vorhersagen (ja, Sie multiplizieren die Fristen der Entwickler mit dem 6- bis 10-fachen und nur so erhalten Sie ein reales Bild, da sie das Testen und Verbessern vergessen haben). Dies ist das Denken vieler Programmierer, weil sie kreative Individuen sind. Sie müssen also keine kreativen Personen zwingen, sich auf Projektlangeweile einzulassen. Dafür gibt es Analysten, Projektmanager.
Wir haben erkannt, dass Agile die Essenz denkender Entwickler ist. Aber der Kunde denkt anders! Und der Kunde möchte verstehen, wofür er bezahlt, das zukünftige Ergebnis "anfassen", bevor die Entwicklung beginnt. Und dann stellt sich das Spiel mit einem Ziel heraus: Es ist praktisch für die Entwickler, und der Kunde schläft nachts nicht. Überlegen Sie, ob es funktioniert oder nicht, und wenn es funktioniert, was passiert, wenn es funktioniert und wie viel es kostet. Aber für den Laf-Programmierer arbeite ich ruhig, was ich tun werde, dann mache ich es, wenn ich fertig bin, dann werde ich so viel beenden, wie ich verlange, sie werden so viel bezahlen. Nicht wahr?
Aber manchmal sollte der Kunde dies sagen: Wir machen neue Dinge, deshalb sind wir nicht bereit, den Zeitpunkt, die Kosten oder das Ergebnis vorherzusagen. Stimmen Sie zu Dann machen wir. Das ist zumindest ehrlich.
Mach immer deinen Kopf an
Die Softwareentwicklung unterscheidet sich von anderen Bereichen dadurch, dass Sie ständig etwas lernen. Jedes Projekt ist wie eine neue Welt. Jedes Projekt hat seine eigenen Anforderungen. Daher sollte der Kopf immer eingeschaltet bleiben. Lassen Sie sich nicht nur auf eine Technik, einen Ansatz ein. Ich muss fast immer improvisieren.
Um etwas zu kritisieren, muss man es studieren.
Wenn Kritiker entweder Designtechnologie oder Agile kritisieren, kennen sie das Thema ihrer Empörung selten. Es gibt nur sehr wenige, die wirklich studiert haben (einschließlich Standards: GOST, ISO, IEEE) und versucht haben, die Designtechnologie ernsthaft anzuwenden. Aber ihre Kritiker sind genug. Sehr wenige Teams, die wirklich erfolgreich sind (so dass der Kunde zufrieden war!), Bewerben sich bei Agile, aber es gibt genug „Prediger“.
Und wieder, verwechseln Sie nicht Agilität und Chaos. Wenn Sie nicht wissen, wie man flexible Methoden entwirft und daher wählt, werden Sie ein Chaos haben.
Erfolgreiche agile Anwendungen erfordern möglicherweise noch mehr Aufwand als Designtechnologie. Höhere Kohärenz des Teams, Qualifikation seiner Mitglieder, Fähigkeit, eine gemeinsame Sprache mit dem Kunden zu finden.
Lesen Sie weitere Artikel des Autors: