Αν το workflow που είδες ήταν πολύ fine-grained, τότε μάλλον ήταν κακό workflow. Το workflow δεν πρέπει να μοιάζει με source ούτε καν με flowchart. Σκοπός ενός καλού workflow είναι να περιέχει μόνο τα activities τα οποία αφορούν το domain για το οποίο φτιάχτηκε και όχι τα implementation details.
Το workflow είναι κάτι το οποίο υπάρχει εδώ και πολύ καιρό. Οι enterprise εφαρμογές χρησιμοποιούν workflows εδώ και πολλά χρόνια για να αναπαραστήσουν και να εκτελέσουν business processes (θυμάμαι τουλάχιστον 10, δεν παίρνω όρκο τί γινόταν πριν, αν και υποψιάζομαι ότι η IBM είχε κάτι πολύ πριν). Σε αυτά τα 10 χρόνια το visual programming ήρθε, έκανε το ντόρο του και μετά εξαφανίστηκε. Το workflow όμως παρέμεινε γιατί δεν έχει σχέση με το visual programming. Το workflow αφορά business processes, industrial automation, state machines, πρωτόκολλα, έννοιες οι οποίες άνετα μπορούν να γραφούν με μία text ή μία visual γλώσσα.
Η βασική διαφορά μεταξύ workflow και visual programming είναι ότι το workflow έχει πάντα activities με "ψωμί" οι οποίες μπορούν να συντεθούν για τη δημιουργία διαφορετικών workflow. Κατά κανόνα δεν καλύπτουν όλα τα υπολογιστικά προβλήματα αλλά μόνο τη γενική κατηγορία για την οποία φτιάχτηκε το σύστημα workflow (π.χ. human workflow, task automation), παρέχουν επιπλέον υπηρεσίες απαραίτητες για την κατηγορία τους (πχ. monitoring) ενώ κρύβουν τις λεπτομέρειες της υλοποίησης τους. Τί με ενδιαφέρουν για παράδειγμα activities για multithreading όταν θέλω να περιγράψω πληρωμές? Ή αλληλουχία σελίδων σε ένα site? Θα πρέπει να με ενδιαφέρει πως το workflow engine επικοινωνεί με το storage του? Μάλλον όχι.
Από την άλλη, το visual programming προσπάθησε να κάνει τα πάντα γραφικά, ακόμα και τα πιο απλά primitives. Σύντομα απέτυχε γιατί κατέληγε να είναι πολύ δυσκολότερο να κάνεις την ίδια δουλειά με ένα visual εργαλείο παρά με κώδικα. Ειδικά ο ορισμός περίπλοκων κανόνων αλλλά και διαδικασιών ήταν πολύ δύσκολος γιατί απαιτούσε πάρα πολύ κόπο για να περιγράψει κάτι που πορούσε να γίνει πολύ ευκολότερα με κώδικα. Αυτό που έμεινε είναι οι ιδέες για τη δημιουργία εργαλείων visual designer. Όταν αυτά υλοποιούνται σωστά με συγκεκριμένο στόχο διευκολύνουν πολύ την ολοκλήρωση ενός έργου. Όταν υλοποιούνται στραβά ... ούτε τρεις τόννοι κώδικα δεν σε σώζουν.
Απλά, τώρα αυτό που κάποτε ήταν προνόμιο των μεγάλων εφαρμογών κατεβαίνει σιγά-σιγά και προς μικρότερες εφαρμογές. Κάποτε έπρεπε να αγοράσεις τον workflow server σε τιμή δεκάδων χιλιάδων ευρώπουλων. Τώρα παίρνεις το WF engine και ένα υποτυπώδες designer τσάμπα. Μόνο που πάνω από αυτό θα πρέπει να χτίσεις τα κατάλληλα activities έτσι ώστε να κερδίσεις από αυτό και να μην πέσεις στη λούμπα του visual programming.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos