Σάββατο 8 Αυγούστου 2009

Οργάνωση της πληροφορίας, αναζητήσεις

Τα δεδομένα καταχωρούνται στην εφαρμογή.
Τα πρόσωπα (πελάτες, προμηθευτές, συνεργάτες, κλπ) έχουν γίνει χιλιάδες, οι εταιρίες (ομοίως πελάτες, προμηθευτές...) αισίως εκατοντάδες.
Έργα, Θέματα, Ενέργειες, κλπ
Πρέπει να υπάρχει ένας τρόπος να οργανωθεί αυτό το χάος.
Οι χρήστες της εφαρμογής πρέπει να μπορούν να βρούν αυτό που ψάχνουν με γρήγορο και ασφαλή τρόπο.
Ως "αντικείμενο" (instance) εννοούμε κάποια συγκεκριμένη Εταιρεία, Οργανική μονάδα, Έργο, Θέμα, Προϊόν, Άρθρο κλπ
Αποφασίσαμε λοιπόν να υλοποιήσουμε πέντε εργαλεία:
Αναζήτηση με κωδικό (λειτουργεί ήδη)
Το κάθε αντικείμενο έχει ένα μοναδικό αλφαριθμητικό κωδικό (π.χ. 3A00). Αν ο χρήστης θυμάται ή έχει σημειώσει τον κωδικό ή έχει κάποια εκτύπωση του αντικειμένου που τον ενδιαφέρει μπορεί από οποιαδήποτε  σελίδα να δώσει τον κωδικό και να μεταφερθεί αμέσως στην σελίδα με το αντικείμενο που τον ενδιαφέρει.
Ετικέτες (λειτουργεί ήδη)
Ο κάθε χρήστης μπορεί ελεύθερα να χαρακτηρίζει κάθε "αντικείμενο" (instance) με λέξεις κλειδιά.
Κατηγορίες (σε επόμενη έκδοση)
Ο διαχειριστής του συστήματος καταχωρεί ένα λεξικό ιεραρχικό (με υποκατηγορίες). Ο κάθε χρήστης μπορεί να χαρακτηρίσει κάθε αντικείμενο με όρους από το συγκεκριμένο λεξικό.
"Πρόσφατα" (λειτουργεί ήδη)
Κατάσταση των (10 κατ'αρχή και βλέπουμε) πρόσφατων αντικειμένων που επισκέφθηκε ο χρήστης.
"Σελιδοδείκτες" (σε επόμενη έκδοση)
Ο χρήστης μπορεί να επιλέξει κάποια αντικείμενα ώστε να εμφανίζονται μόνιμα στην πρώτη σελίδα. Προφανώς θα είναι διαφορετικά για κάθε χρήστη.
Θα τα εξηγήσουμε αναλυτικά σε επόμενα άρθρα.

Κυριακή 24 Μαΐου 2009

insCRM: Δικαιώματα χρηστών (2)

Κατά την λειτουργία της εφαρμογής insProject συνειδητοποιήσαμε ότι το ζήτημα των δικαιωμάτων είναι κρίσιμο για μια μεγάλη (enterprise) εφαρμογή.

Είχαμε από την πρώτη μέρα απαιτήσεις που δεν ήταν δυνατόν να εξυπηρετήσουμε λόγω της σχεδίασης του συστήματος ασφαλείας.

Σχεδιάσαμε (και υλοποιήσαμε) για την επόμενη εφαρμογή (insCRM) ένα πλήρες σύστημα που ελπίζουμε ότι θα αντέξει και στις πιο σύνθετες απαιτήσεις. Βασίζεται στις αρχές του RBAC (Role Based Access Control).

Οπως και στο προηγούμενο σύστημα ξεκινάμε από τους Ρόλους (roles) (πχ.Γραμματέας, HelpDesk, Ταμίας, Λογιστής, Πωλητής κλπ).

Ιεραρχία

Εδώ όμως μπορούμε να έχουμε ιεραρχία. Ο ρόλος Προϊστάμενος Λογιστηρίου έχει όλα τα δικαιώματα του ρόλου Λογιστής συν κάποια επιπλέον.

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

Η ιεραρχική σχεδίαση δεν προσθέτει δυνατότητες στο σύστημα. Θα μπορούσε να γίνει το ισοδύναμο με πολύ περισσότερη εργασία. Την εργασία όμως αυτή την χρεώνεται ο χρήστης κατά την διαδικασία του "Customization" και ανεβάζει πολύ το κόστος της εγκατάστασης. Επίσης αυξάνονται αναλογικά και οι πιθανότητες λάθους (που μεταφράζεται σε κόστος ή/και κινδύνους).

Στατικός διαχωρισμός καθηκόντων (static separation of duties)

Υπάρχουν περιπτώσεις που δύο ρόλοι είναι ασύμβατοι και δεν μπορούν να ανατεθούν στο ίδιο πρόσωπο. (π.χ. Νοσοκόμος<=>Ιατρός,Ταμίας<=>Επιτηρητής Ταμείων κλπ).

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

Δυναμικός διαχωρισμός καθηκόντων (dynamic separation of duties)

Υπάρχουν περιπτώσεις που δύο ρόλοι είναι ασύμβατοι μεν αλλά μπορούν να ανατεθούν στο ίδιο πρόσωπο.

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

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

Ο δυναμικός διαχωρισμός για να λειτουργήσει πρέπει να έχει ο χρήστης την δυνατότητα να επιλέξει ρόλο κατά την σύνδεση στο σύστημα.

Δικαιώματα

Οι σημαντικότερες αλλαγές έχουν γίνει στον τομέα των δικαιωμάτων. Τα δικαιώματα δεν βασίζονται τόσο στα αντικείμενα της Βάσης Δεδομένων (Πελάτες, Εργα, Εργασίες, Θέματα κλπ) όσο στις υπηρεσίες που η εφαρμογή παρέχει στους χρήστες.

Ενώ στο προηγούμενο σχήμα θα είχαμε Events (Προβολή,Μεταβολή,Διαγραφή) (όπου Event=Τηλεφώνημα, Συνάντηση, email, σεμινάριο, και γενικά επικοινωνία φυσικών προσώπων), τώρα έχουμε:

  • Καταχώρηση event
  • Καταχώρηση event πλην εμπιστευτικών στοιχείων
  • Τροποποίηση event
  • Τροποποίηση event πλην εμπιστευτικών στοιχείων
  • Προβολή όλων των events
  • Προβολή όλων των events χωρίς τα εμπιστευτικά στοιχεία
  • Προβολή όλων των events εκτός αυτών που έχουν χαρακτηριστεί εμπιστευτικά
  • Προβολή των events που συμμετέχω
  • Προβολή των events που συμμετέχω χωρίς εμπιστευτικά στοιχεία
  • Προβολή των events που συμμετέχουν άμεσα υφιστάμενοι μου
  • Προβολή των events που συμμετέχουν άμεσα υφιστάμενοι μου χωρίς εμπιστευτικά στοιχεία
Όπου εμπιστευτικά στοιχεία συνήθως είναι οικονομικά στοιχεία.

Είναι πλέον σχετικά εύκολο αν κάποιος πελάτης χρειάζεται ένα νέο δικαίωμα που δεν είχε σχεδιαστεί, όπως: "Προβολή των events που συμμετέχουν υφιστάμενοι μου όλων των βαθμίδων" (δηλ. υφιστάμενοι των υφισταμένων μου) τότε είναι σχετικά εύκολο να προστεθεί.

Συνεργαζόμενες εταιρείες

Η υλοποίηση αυτή δίνει την δυνατότητα να βρίσκονται στην ίδια ΒΔ μια ομάδα συνεργαζόμενων εταιρειών ή φορέων (πανεπιστήμια, δημόσιοι οργανισμοί, υπουργεία).

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

Δευτέρα 1 Δεκεμβρίου 2008

Δικαιώματα χρηστών

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

Ρόλοι χρηστών

Η διαδικασία είναι η ακόλουθη:
Ο Διαχειριστής του συστήματος ορίζει ένα ή περισσότερους Ρόλους (roles) χρηστών
Για κάθε ρόλο μπορεί να ορίσει δικαιώματα:
  • Προβολή
  • Μεταβολή
  • Διαγραφή
για κάθε οντότητα:
  • Εργα
  • Εργασίες
  • Πρόσωπα
  • Οργανικές μονάδες
  • Προϊόντα
  • Θέματα
  • Σχόλια
Στην συνέχεια ο Διαχειριστής ορίζει ποιοι χρήστες ανήκουν σε ποιους ρόλους.
Δεν υπάρχει όριο στο πλήθος:
  • Ρόλων
  • Χρηστών
  • Χρηστών σε ένα ρόλο
  • Ρόλων για ένα χρήστη
Ο χρήστης αποκτά το σύνολο των δικαιωμάτων που του δίνουν οι ρόλοι στους οποίους συμμετέχει.

Στην επόμενη έκδοση θα ενεργοποιηθούν οι ακόλουθες δυνατότητες:

Περιορισμός IP
Μπορεί να ορισθεί ότι ένας χρήστης θα επιτρέπεται να συνδεθεί μόνο από κάποιες συγκεκριμένες διευθύνσεις IP. Ετσι θα αποφευχθεί η πρόσβαση σε εμπιστευτικά δεδομένα εκτός των εγκαταστάσεων του πελάτη. Προϋπόθεση είναι ο πελάτης να έχει στατικές (μόνιμες) διευθύνσεις IP.
Περιορισμός ώρας πρόσβασης
Μπορεί να ορισθεί ποιες ώρες/ημέρες της εβδομάδας επιτρέπεται ένας χρήστης να συνδέεται με την εφαρμογή.

Προγραμματίζονται για τις επόμενες εκδόσεις:

Ορισμός εμπιστευτικών έργων:
Τα εμπιστευτικά έργα (και οι εργασίες τους) είναι προσβάσιμα μόνο από τους χρήστες που συμμετέχουν σε αυτά.
Ορισμός εξωτερικών συνεργατών:
Οι εξωτερικοί συνεργάτες έχουν πρόσβαση μόνο στα έργα και στις εργασίες που συμμετέχουν.

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

Κυριακή 16 Νοεμβρίου 2008

Ταυτοποίηση πελατών Ασφαλιστικού πρακτορείου

Όλη τη "περιουσία" ενός ασφαλιστικού πράκτορα θα μπορούσε κανείς να τη συνοψίσει σε μία λέξη:
Π Ε Λ Α Τ Ο Λ Ο Γ Ι Ο
  • Πόσοι και ποιοι πελάτες μου έχουν συμβόλαιο αυτοκινήτου και δεν έχουν κάλυψη Φυσικών φαινομένων?
  • Πόσοι και ποιοι πελάτες μου έχουν συμβόλαιο πυρός χωρίς κάλυψη περιεχομένου?
  • Πόσοι και ποιοι πελάτες μου έχουν συμβόλαια αυτοκινήτου και πυρός αλλά όχι Ζωής?
Οι παραπάνω είναι ερωτήσεις που πρέπει να μπορεί να απαντήσει ο ασφαλιστικός πράκτορας εάν θέλει  να παραμείνει ανταγωνιστικός και εντός αγοράς. Η εφαρμογή Διαχείρισης Ασφαλιστικού πρακτορείου, έρχεται να απαντήσει ακριβώς σε αυτό το πρόβλημα μέσα από 2 διαδικασίες
  1. Ομαδοποίηση πελατών μέσω της αυτόματης καθημερινής φόρτισης των στοιχείων του πράκτορα Η εφαρμογή "αποφασίζει" κατά την καθημερινή αυτόματη φόρτιση των στοιχείων με μηχανογραφικά κριτήρια (ταύτιση ονοματεπώνυμου, ΑΦΜ, Δ/νσης κλπ) πότε δύο εγγραφές αναφέρονται στο ίδιο πρόσωπο (ταυτοπροσωπία). Με τον τρόπο αυτό εμφανίζεται ο πελάτης με δύο ή περισσότερα συμβόλαια που πραγματικά έχει αντί να εμφανίζεται ο ίδιος πελάτης με τα ίδια στοιχεία μία φορά για κάθε συμβόλαιο
  2. Λειτουργία "Ταυτοποίηση Πελατών" μέσα από την εφαρμογή Υπάρχουν πολλές περιπτώσεις όπου η εφαρμογή δεν μπορεί να διακρίνει εάν δύο εγγραφές αναφέρονται στον ίδιο πελάτη (ταυτοπροσωπία) (πχ ΠΑΠΑΔΟΠΟΥΛΟΣ ΓΕΩΡΓΙΟΣ και ΠΑΠΑΔ/ΛΟΣ ΓΙΩΡΓΟΣ) Σε αυτή την περίπτωση ο χρήστης μπορεί να "σημαδέψει" ποιον από τους 2 πελάτες θέλει να κρατήσει όπως επίσης και να εμπλουτίσει τα στοιχεία αυτού. Έτσι θα υπάρχει πλέον ένας πελάτης στον οποίο θα φαίνονται όλα τα συμβόλαια και με τα πλήρη στοιχεία
Με αυτές τις διαδικασίες ο πράκτορας έχει στη διάθεσή του ένα αξιόπιστο, ενημερωμένο και πλήρες έτοιμο για χρήση πελατολόγιο

Πληρωμή αποδείξεων με Χρήματα του Πρακτορείου

Είναι συνηθισμένο το φαινόμενο, όταν πρόκειται για κάποιον καλό πελάτη ή όταν έχουμε ανανεωτήρια άλλων εταιριών -πλην της Εθν.Ασφαλιστικής-, να αποδίδουμε τα χρήματα αυτά στην Ασφ. εταιρία με προσωπική πίστωση και στη συνέχεια είτε να τα περιμένουμε από τον πελάτη, είτε να μας τα πιστώνει η ασφ. εταιρία στην επόμενη εκκαθάριση, εάν στο μεταξύ το συμβόλαιο ακυρωθεί.
Στην εφαρμογή Διαχείρισης Ασφαλιστικού Πρακτορείου, η παραπάνω διαδικασία υλοποιείται ως εξής:
  • Επιλέγουμε ως Τρόπο Πληρωμής του Ανανεωτηρίου "Χρήματα του Πρακτορείου"
  • Σημειώνουμε την ημερομηνία που θα αποδοθεί αυτό το ανανεωτήριο
    (Προφανώς τα χρήματα ο πράκτορας τα καταβάλλει την ημέρα της κατάθεσης του ποσού στον λογαριασμό της Ασφ.εταιρείας
Αυτό το ανανεωτήριο πλέον έχει μεταφερθεί στα "Αποδοθέντα" ΑΛΛΑ πλέον έχει παραμείνει και στα "Ανείσπρακτα", αφού ο πράκτορας θα ακολουθήσει όλη την κλασική διαδικασία για να εισπράξει το ποσό.
Έτσι αυτή η απόδειξη χρεώνεται κανονικά σε εισπράκτορα, εισπράττεται με κάποιο από τους διαθέσιμους τρόπους πληρωμής (μετρητά, επιταγή κλπ) και περιλαμβάνεται στο "Κλείσιμο Ταμείου" κάποιας ημερομηνίας.
Στη συνέχεια, η απόδειξη αυτή ΔΕΝ μεταφέρεται στα "Προς Απόδοση" (αφού έχει ήδη αποδοθεί) ΑΛΛΑ μεταφέρεται κατευθείαν σε νέο Status
Σε περίπτωση που το ανανεωτήριο ακυρωθεί από τον πελάτη, τότε στην εικόνα με τα "Ανείσπρακτα" θα έχουμε:
  • Το Ανανεωτήριο με το θετικό ποσό που απαιτούσαμε από τον πελάτη
  • Την πράξη ακύρωσης που μας έχει έρθει από την Ασφ. εταιρεία
Σε αυτή την περίπτωση κάνουμε τα εξής:
  • Σημαδεύουμε το Ανανεωτήριο "Προς Επιστροφή"
  • Σημαδεύουμε την Πράξη Ακύρωσης "Προς Συμψηφισμό" όπου και μεταφέρεται αυτόματα στα "Προς Απόδοση" μειώνοντας έτσι το ποσό που θα πρέπει να αποδόσουμε την επόμενη φορά στην ασφ. εταιρεία

Ορόσημα & Παραδοτέα στην Διαχείριση Έργων


Ορόσημα (Milestones)
Ορόσημο είναι ένα σημείο ελέγχου της προόδου του Έργου.
Είναι δυνατόν να συνδέεται με κάποια Παραδοτέα:

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

Είναι όμως δυνατόν να αντιστοιχεί σε κάτι αφηρημένο:

  • Λειτουργία του δικτυακού κόμβου επί ένα μήνα, χωρίς προβλήματα.
  • Επίτευξη ποσοστού 90% ικανοποιημένων πελατών
Οπως ένα Ορόσημο μπορεί να αντιστοιχεί ή όχι σε Παραδοτέα, έτσι και ένα Παραδοτέο μπορεί να αντιστοιχεί ή όχι σε ένα Ορόσημο.
Τα σημαντικά Παραδοτέα είναι συνήθως Ορόσημα του έργου αλλά τα μικρότερης κλίμακας ή όχι και τόσο σημαντικά Παραδοτέα δεν πρέπει να ορίζονται ως Ορόσημα.
Στην εφαρμογή διαχείρισης έργων μπορούμε να ορίσουμε ότι μια Εργασία (Task) είναι Ορόσημο δίνοντας του μηδενική διάρκεια. 
Κάθε άλλη Εργασία πρέπει (προφανώς) να έχει κάποια διάρκεια. Ετσι η εφαρμογή θεωρεί ότι οι Εργασίες μηδενικής διάρκειας είναι Ορόσημα.
Παραδοτέα (Deliverables)
Τα Παραδοτέα πρέπει:
  • Να είναι συγκεκριμένα αντικείμενα. Δεν είναι παραδοτέο π.χ. η "βελτίωση της εξυπηρέτησης" αλλά "Τεύχος διαδικασιών εξυπηρέτησης"
  • να παραδοθούν με την ολοκλήρωση τους σε ανθρώπους ή υπηρεσίες που θα τα αξιολογήσουν ή/και θα τα χρησιμοποιήσουν.
  • να είναι επιβεβαιόσημα βάσει συγκεκριμένων προκαθορισμένων κανόνων. Οι αποδέκτες των Παραδοτέων πρέπει να έχουν κριτήρια αξιολόγησης για να μπορέσουν να τα αποδοχή  ή να τα απορρίψουν.
Το Εργο υπάρχει για να ολοκληρωθούν τα Παραδοτέα. Στην έκδοση 2.5 της  εφαρμογή διαχείρισης έργων θα υπάρχει η δυνατότητα καταχώρησης ενός Παραδοτέου ανά Εργασία. Αν μια Εργασία έχει ως αποτέλεσμα δύο ή περισσότερα Παραδοτέα θα πρέπει να την αναλύσουμε σε αντίστοιχες Υποεργασίες.

Σάββατο 8 Νοεμβρίου 2008

Διαχείριση έργων, Φάσεις, Ορόσημα (milestones): Ορισμοί

Προβληματιζόμαστε για τον καλύτερο τρόπο υλοποίησης των φάσεων και των οροσήμων (milestones) στην εφαρμογή Διαχείρισης Έργων. Πρώτα λίγοι ορισμοί:
Εργο (Project)
Σύνολο δραστηριοτήτων με κοινό στόχο ένα συγκεκριμένο αποτέλεσμα, με συγκεκριμένη ημερομηνία έναρξης και λήξης και συγκεκριμένη κατανομή πόρων. Δηλ. ένα έργο έχει αυστηρά καθορισμένο οργανόγραμμα, προϋπολογισμό και χρονοπρογραμματισμό. Συνήθως η χρηματοδότηση προέρχεται από μία πηγή.
Φάσεις (Phases)
Ενα έργο χωρίζεται σε φάσεις. Στην εφαρμογή διαχείρισης έργων insProject ,φάσεις θεωρούνται οι εργασίες που δεν έχουν ανώτερη εργασία. Δηλαδή Φάση: εργασία πρώτου επιπέδου. Στην πράξη φάση, είναι ένα τμήμα του έργου με συγκεκριμένα παραδοτέα. Η βέλτιστη διάρκεια κάθε φάσης φαίνεται να είναι 4-12 εβδομάδες (από τις μελέτες των έργων).
Εργασίες (Tasks)
Κάθε φάση χωρίζεται σε εργασίες. Κάθε εργασία μπορεί να αναλυθεί σε υποεργασίες ad infinitum. Στην πράξη συνεχίζουμε την ανάλυση μέχρι να φτάσουμε σε εργασίες που μπορούμε με ασφάλεια να εκτιμήσουμε την διάρκεια/ κόστος. Οι δαπάνες συνδέονται με εργασίες (γι' αυτό θα πούμε περισσότερα).
Παραδοτέα (Deliverables)
Το αποτέλεσμα μιας Εργασίας που μπορεί να παραδοθεί σε τρίτους (όχι σ'αυτούς που το παρήγαγαν). Το σημαντικό για ένα παραδοτέο είναι να είναι

  • συγκεκριμένο,
  • ελέγξιμο,
  • οριστικό.
Τα παραδοτέα είναι οι μόνοι αντικειμενικοί δείκτες προόδου. Συνήθως η χρηματοδότηση του έργου είναι συνδεδεμένη με τα παραδοτέα.
Ορόσημα (Milestones)
Ορισμένες εργασίες έχουν συγκεκριμένα (ελέγξιμα) παραδοτέα. Στην εφαρμογή διαχείρισης έργων insProject, τα ορόσημα καταχωρούνται ως Εργασίες μηδενικής διάρκειας. Σε επόμενη έκδοση θα υπάρχει η δυνατότητα αναλυτικής περιγραφής των παραδοτέων κάθε ορόσημου.