Εμφάνιση αναρτήσεων με ετικέτα Software Development. Εμφάνιση όλων των αναρτήσεων
Εμφάνιση αναρτήσεων με ετικέτα Software Development. Εμφάνιση όλων των αναρτήσεων

Κυριακή, 12 Φεβρουαρίου 2017

QlikView - Reusable measures...

Συνήθως, όταν φτιάχνουμε ένα QlikView app, τα measures που χρησιμοποιούμε είναι συγκεκριμένα, αυτό που αλλάζει είναι η απεικόνισή τους είτε σε table like objects είτε σε γραφήματα διαφόρων ειδών, συνδυάζοντάς τα με όσα και όποια dimensions επιθυμούμε... Το best practice υπαγορεύει ότι τα measures πρέπει να φορτώνονται από το script στην τελική τους μορφή και να χρησιμοποιούνται χωρίς να γράφουμε πολύ κώδικα στα expressions των objects στο layout της εφαρμογής όμως δυστυχώς (ή ευτυχώς, δεν έχω αποφασίσει ακόμα) αυτό δεν συμβαίνει πάντα... Όταν το app είναι μικρό και τα objects λίγα, μια πιθανή αλλαγή στο calculation ενός ή περισσότερων από αυτά δεν είναι κάτι σπουδαίο, όταν όμως έχεις να κάνεις με apps τα οποία κουβαλάνε δεκάδες measures σε δεκάδες διαφορετικά objects τότε μια πιθανή αλλαγή του business logic δημιουργεί τεράστιο πονοκέφαλο στον developer...

Το πρόβλημα αυτό αποφεύγεται με τον εξής απλό αλλά έξυπνο τρόπο... Κάθε ένα από τα measures που χρησιμοποιούμε γίνεται ένα variable το οποίο δημιουργούμε στην οθόνη Variable Overview του QlikView (Settings → Variable Overview)

Variable Overview

Όταν θέλουμε να χρησιμοποιήσουμε αυτό το measure σε κάποιο object, κάνουμε reference το σχετικό variable που έχουμε ήδη δημιουργήσει...  Ο τρόπος που χρησιμοποιούμε το variable στο expression box του κάθε object είναι της παρακάτω μορφής χωρίς την χρήση quotes:

=$(vUnitsSold)
Με την χρήση αυτή της τεχνικής ο developer έχει πολύ μεγαλύτερο έλεγχο της εφαρμογής του, διευκολύνεται και επιβεβαιώνεται ευκολότερα η ορθότητα των δεδομένων που απεικονίζονται και καμία αλλαγή στο business logic δεν προκαλεί πονοκεφάλους αφού το κάθε measure αλλάζει μόνο μία φορά σε επίπεδο variable αλλά η αλλαγή έχει ισχύ σε όλο το app άμεσα και αυτό είναι καταπληκτικό από όποια πλευρά και να το δεις, development ή business! 😊

Τετάρτη, 30 Νοεμβρίου 2016

Γιατί δεν τον αφήνουν λοιπόν να κάνει τη δουλειά του;

Στα 12 χρόνια της επαγγελματικής μου εμπειρίας έχω συμμετάσχει σε διάφορα projects, άλλα πολύ σημαντικά και άλλα μηδαμινής σημασίας και έχω συνεργαστεί με business users όλων των πιθανών levels, από τον τελευταίο υπάλληλο μέχρι τον CFO... Ποτέ, κανένας από αυτούς τους χρήστες δεν έφερε αντίρρηση όταν τους απάντησα ότι το αίτημα τους δεν μπορεί να υλοποιηθεί όπως το θέλουν, τους εξήγησα απλά και κατανοητά τους λόγους και τους εξήγησα ποιες είναι οι εναλλακτικές λύσεις... Κανένας δεν διαμαρτυρήθηκε, κανένας δεν δυσανασχέτησε, ίσα ίσα ήταν απόλυτα ευχαριστημένοι όταν παραλάμβαναν το προϊόν που είχαμε συμφωνήσει... 

Η πλειονότητα του ελληνικού management δεν συμφωνεί με την λογική μου... Θεωρεί απόλυτα λογικό να "χτυπάει προσοχή" και να αποδέχεται ασυζητητί οποιοδήποτε λογικό ή παράλογο αίτημα φτάνει σε αυτούς (συνήθως από τα υψηλά κλιμάκια των εταιρειών) για να επιβαρύνουν με την σειρά τους τους developers με την ευθύνη να υλοποιήσουν τα αδύνατα, γεγονός που οδηγεί πολύ συχνά σε εξουθενωμένες development teams με σπασμένα νεύρα και κακής ποιότητας προϊόντα... Η όλη νοοτροπία, κατά τη γνώμη μου, έχει σίγουρα να κάνει με την διαστροφική αντίληψη των περισσοτέρων ότι η δουλειά του IT γίνεται κατά κύριο λόγο με το πάτημα ενός κουμπιού και την συνολικότερη απαξίωση του developer που φτάνει να θεωρείται, στην πράξη, ως ένας εξειδικευμένος εργάτης...

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

Αυτή την εμπειρία, τη γνώση και το attitude δεν υποτίθεται ότι ψάχνει μια εταιρεία όταν προσλαμβάνει ένα senior developer/solution architect; Για αυτό τον λόγο δεν τον πληρώνει καλύτερα από ένα junior developer; 

Γιατί δεν τον αφήνουν λοιπόν να κάνει τη δουλειά του;

Δευτέρα, 1 Φεβρουαρίου 2016

"Scrum and XP from the Trenches" a free Agile/Scrum ebook!!!

Scrum and XP from the Trenches
Πρώτο post του μήνα και σκέφτηκα ότι θα ήταν ωραία να τον ξεκινήσουμε με ένα δώρο... 

Για όποιον ενδιαφέρεται για Agile, Scrum και Software Development μεθοδολογίες/frameworks, μπορείτε να κατεβάσετε δωρεάν και νόμιμα ένα από τα καλύτερα βιβλία της σχετικής θεματολογίας, ένα must read για όλους όσους θέλουν να ασχοληθούν με το Agile, το "Scrum and XP from the Trenches"  του Henrik Kniberg ... Ο Kniberg είναι ένα από τα πλέον καταξιωμένα στελέχη της Agile κοινότητας και στο μικρό αυτό βιβλιαράκι των 142 σελίδων μοιράζεται την εμπειρία του από την εφαρμογή των Agile μεθοδολογιών/frameworks σε real case scenarios, ιστορίες από τα χαρακώματα όπως λέει κι ο τίτλος... Δεν προσπαθεί να υποδείξει τον "σωστό" τρόπο να κάνεις Scrum, περιγράφει απλά τον δικό του τρόπο με τον οποίο κατάφερε να ολοκληρώσει τα projects του έχοντας στο τέλος ικανοποιημένους και τους πελάτες και τις development teams... Το λέει ρητά, το βιβλίο περιέχει προσωπικές εμπειρίες, το πως και πόσα πράγματα θα εφαρμόσει μια ομάδα από το Scrum σε ένα έργο εξαρτάται ξεκάθαρα από την κάθε ομάδα... 

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

Μπορείτε να κατεβάσετε το βιβλίο σε μορφή pdf από ΕΔΩ...

Δευτέρα, 14 Δεκεμβρίου 2015

Agile Scrum Master: A Practical Approach (10/12 - 11/12 @ HP Enterprise Athens)...

Την Πέμπτη και την Παρασκευή που μας πέρασε είχα την τύχη να παρακολουθήσω το πολύ ενδιαφέρον σεμινάριο Agile Scrum Master: A Practical Approach στο εκπαιδευτικό κέντρο της HP Enterprise στο Χαλάνδρι... Εισηγητής ήταν ο Δημήτρης Δημητρέλος, ένα από τα πλέον δραστήρια και καταρτισμένα μέλη της εν Ελλάδι Agile κοινότητας, τον οποίο τυγχάνει να γνωρίζω και από τον χώρο εργασίας μου... Θέμα του σεμιναρίου ήταν αυτό που λέει το όνομά του, μια πρακτική προσέγγιση της μεθοδολογίας του Agile, με έμφαση στο Scrum, μέσα από ένα διαδραστικό πρόγραμμα, με συζητήσεις, ομαδικές και ατομικές εργασίες προβολές βίντεο και πολύ πολύ συμμετοχή...

Το Agile όπως διαβάζουμε στη wikipedia είναι:

Agile Software Development is a set of software development methods in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development, early delivery, continuous improvement, and encourages rapid and flexible response to change

ενώ το Scrum (πάλι σύμφωνα με τη wikipedia) είναι:

Scrum is an iterative and incremental agile software development methodology for managing product development. It defines "a flexible, holistic product development strategy where a development team works as a unit to reach a common goal"[this quote needs a citation], challenges assumptions of the "traditional, sequential approach" to product development, and enables teams to self-organize by encouraging physical co-location or close online collaboration of all team members, as well as daily face-to-face communication among all team members and disciplines in the project.
Η κεντρική ιδέα του Scrum είναι ότι το software development γίνεται σε μικρούς επαναληπτικούς κύκλους, υλοποιώντας μικρά κομμάτια του τελικού έργου από το επίπεδο της ανάλυσης μέχρι το επίπεδο της υλοποίησης, του unit test και του acceptanse test, ως το τελικό release... Κάθε κύκλος του Scrum με την επιτυχή του ολοκλήρωσή του έχει να παρουσιάσει ένα παραδοτέο, υποσύνολο του τελικού στόχου, με διακριτό business value... Το Scrum δεν φοβάται τις αλλαγές στις προδιαγραφές, λόγω των μικρών κύκλων ανάπτυξης είναι ευέλικτο... Βάζει στο κέντρο της προσοχής την ομάδα υλοποίησης, ποντάρει στην καλή συνεργασία των μελών της, στην μεταξύ τους συνεννόηση, στην προσωπική ηρεμία και ανάπτυξη η οποία μεσομακροπρόθεσμα ωφελεί την ομάδα, την καλή λειτουργία και την αποδοτικότητά της... Για το Scrum ο developer είναι ο πρωταγονιστής σε ένα έργο software development, όλοι οι υπόλοιποι εμπλεκόμενοι, ακόμα και το management, έχουν ρόλο υποστηρικτικό έτσι ώστε το development team να κάνει τη δουλειά του με όσο λιγότερα προβλήματα γίνεται...

Στην υπερδεκαετή καριέρα μου και έχοντας δουλέψει κατά κύριο λόγο σε έργα λογισμικού τα οποία "τρέξανε" με κλασσικότερες μεθοδολογίες (κατά κύριο λόγο Waterfall) ξέρω αρκετά καλά ποια είναι τα υπέρ και τα κατά τους... Η λογική του Scrum μου φαίνεται πολύ πιο αποδοτική και developer friendly, συνδυάζει την ποιότητα του παραγόμενου προϊόντος και την καλή λειτουργία και καλή ψυχική και σωματική κατάσταση της ομάδας ανάπτυξης... Επίσης, έχοντας την  τύχη να δουλέψω σε πολύ δεμένες ομάδες στην καριέρα μου, ξέρω ότι το Scrum έχει απόλυτο δίκιο όταν δίνει τόση σημασία στην καλή  ψυχική και σωματική κατάσταση της ομάδας ανάπτυξης και τις καλές σχέσεις μεταξύ των μελών της... Όταν ισχύουν αυτές οι προϋποθέσεις το προϊόν είναι πάντα καλύτερο, η δουλειά δεν είναι απλά ένα οχτάωρο αναγκαστικής παραμονής σε ένα χώρο...

Αν θέλετε να μάθετε περισσότερα για το Agile και το Scrum, τα παρακάτω links θα σας φανούν χρήσιμα: