Πολυπλοκότητα και Agile (Stoiximan)

Πολυπλοκότητα και Agile

“Για κάθε πολύπλοκο πρόβλημα υπάρχει μια λύση η οποία είναι ξεκάθαρη, απλή και εσφαλμένη.” H.L. Mencken 

Αν ένα σύστημα είναι απλό, περίπλοκο ή πολύπλοκο εξαρτάται συχνά από ποια οπτική το βλέπουμε. Έχοντας δύο προσεγγίσεις όπως το Stacey matrix και το Cynefin framework μπορούμε να καταλάβουμε το επίπεδο της πολυπλοκότητας. Η ανάπτυξη λογισμικού έχει μέσα της μεγάλη πολυπλοκότητα. Η πολυπλοκότητα αυτή έχει να κάνει με το τι χρειάζεται να υλοποιηθεί (What), πώς θα υλοποιηθεί (How) και ποιος θα το υλοποιήσει (Who). Άλλος ένας παράγοντας είναι το μέγεθος της εταιρείας, η συνεχόμενη ανάπτυξη, και πώς η πρότερη εμπειρία, η τεχνολογία, οι διαδικασίες, η κουλτούρα και η επικοινωνία μπορούν να υποστηριχθούν με την ανάπτυξη αυτή. Αναγνωρίζοντας το επίπεδο της πολυπλοκότητας ενός συστήματος μπορούμε να επιλέξουμε και τα κατάλληλα εργαλεία λειτουργίας.

Αν θα μπορούσαμε να κάνουμε ένα πολύ βασικό διαχωρισμό μοντέλων ενός συστήματος, θα μπορούσαμε να πούμε ότι αυτά χωρίζονται σε δύο διαφορετικές κατηγορίες, τα γραμμικά και τα οργανικά μοντέλα. Τα γραμμικά μοντέλα πήραν το όνομα τους από την παραδοχή του ότι οι σχέσεις ανάμεσα στα γεγονότα είναι γραμμικές, δηλαδή ένα αποτέλεσμα προέρχεται από μία αιτία, και αντίστροφα. Τα οργανικά μοντέλα από την άλλη μπορούν να χαρακτηριστούν από το ότι ένα γεγονός μπορεί να έχει εκατοντάδες διαφορετικούς παράγοντες συμπεριλαμβανομένου και του χρόνου (System Thinking). 

Ενώ η δύναμη των γραμμικών μοντέλων βρίσκεται στην απλότητα τους, δηλαδή ότι τα συμβάντα έχουν ένα μόνο αίτιο και έτσι είναι εύκολο να κατανοηθούν, για τον ίδιο ακριβώς λόγο η χρήση τους σε καταστάσεις με μεγάλη πολυπλοκότητα δεν είναι εφικτή.

Η δύναμη των οργανικών μοντέλων σε αντίθεση με τα γραμμικά βρίσκεται στο ότι μας δίνει τη δυνατότητα να αισθανόμαστε άνετοι με τις πολύπλοκες καταστάσεις τις οποίες δεν κατανοούμε πλήρως. Όταν χρησιμοποιούμε οργανικά μοντέλα ανοίγουμε το μυαλό μας σε δεκάδες πιθανές εξηγήσεις (οι οποίες μπορεί να ισχύουν και όλες μαζί) μέχρι να έχουμε αρκετή πληροφόρηση για να κάνουμε τις κατάλληλες επιλογές. Ένα από τα αρνητικά των οργανικών μοντέλων είναι ότι μπορεί να μας αποτρέψουν από το να ενεργήσουμε λόγω της έλλειψης πληροφοριών που χρειαζόμαστε. Για να είμαστε αποτελεσματικοί, συχνά πρέπει να λαμβάνουμε αποφάσεις ακόμα και όταν δεν είναι κατανοητοί όλοι οι πιθανοί παράγοντες. Για να μπορέσει κάποιος να χρησιμοποιεί οργανικά μοντέλα θα πρέπει να μπορεί να αποδεχθεί και κάποια πιθανά λάθη.

Η ικανότητα της προσαρμογής μάθησης και εξέλιξης είναι από τις ιδιότητες των οργανικών μοντέλων. Στην Stoiximan οι Agile μεθοδολογίες είναι αυτές που μας επιτρέπουν να αντιμετωπίζουμε την πολυπλοκότητα που υπάρχει στις ομάδες της ανάπτυξης λογισμικού. Να αντιμετωπίζουμε τις συνεχείς αλλαγές σε έναν κόσμο που είναι όλο και πιο ασταθής, αβέβαιος και πολύπλοκος. Έχοντας το Scrum σαν την κύρια μεθοδολογία η οποία είναι βασισμένη στον Εμπειρισμό, στη διαδικασία δηλαδή του να έχουμε διαφάνεια (transparency) και μέσω αυτής να μπορούμε να ελέγχουμε (inspect) και να προσαρμόζουμε (adapt) το προϊόν, τις ομάδες, τις διαδικασίες και τα εργαλεία ανά τακτά χρονικά διαστήματα.

Άλλη μια ιδιότητα των οργανικών μοντέλων είναι το regulatory feedback. Στην Stoiximan, σε σχέση με τις διαδικασίες και τη λειτουργία αυτό παίρνει δυναμική μέσω ανοικτών καναλιών επικοινωνίας και συζητήσεων σε όλα τα επίπεδα της εταιρείας, όπου όλοι μπορούν να προσφέρουν. Αυτό από μόνο του δίνει ποικιλία απόψεων που με την σειρά της βοηθάει στην ολοκληρωμένη συλλογή αναγκών. Όσον αφορά το προϊόν, με το Scrum framework έχουμε την δυνατότητα να το αναλύουμε σε μικρά κομμάτια, να ελαττώνουμε την πολυπλοκότητά του και τους αγνώστους παράγοντες που μπορεί να υπάρχουν και να υλοποιούμε αυτά τα μικρά κομμάτια για να είμαστε σε θέση να τα ελέγξουμε και να τα εκθέσουμε στους ενδιαφερόμενους με σκοπό το άμεσο και ουσιαστικό feedback.

Κάποια από τα στοιχεία που βοηθάνε να αντεπεξέλθουμε στην πολυπλοκότητα είναι τα παρακάτω:

  • Cross functionality, έχοντας μια διατομεακή προσέγγιση μπορούμε να ανταπεξέλθουμε καλύτερα στα προβλήματα που γεννάνε τα πολύπλοκα συστήματα.
  • Self organizations, αυτο-οργάνωση ως βασική πρακτική λειτουργία των ομάδων.
  • Diversity, ποικιλομορφία ως ιδιότητα των οργανικών μοντέλων, βοηθάει ένα σύστημα να ισορροπεί καθώς αυτό αλλάζει, προσφέροντας ευελιξία και καινοτομία. Η ποικιλομορφία ολοκληρώνει ένα σύστημα και το κάνει βιώσιμο.
  • Transparency, βασικό στοιχείο για να μπορούμε να έχουμε κάθε στιγμή πρόσβαση στην πληροφορία.
  • Empowerment & Delegation, για να μπορεί να αναπτυχθεί τόσο ποιοτικά όσο και ποσοτικά ένας οργανισμός.

References:

  • Scrum Guide
  • Management 3.0
  • Becoming a Technical Leader The Psychology of Technology
  • The Fifth Discipline

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s