Alithinos Δημοσ. 29 Απριλίου 2016 Δημοσ. 29 Απριλίου 2016 Έχω παρατηρήσει πως η συντριπτική πλειοψηφία των θεμάτων στο υπό-forum του προγραμματισμού, αφορά κυρίως τεχνικά ζητήματα όπως πχ συζήτηση για γλώσσες, για το πως κάνει κάποιος κάτι με κάποια γλώσσα, framework, whatever... Και ύστερα από αναζήτηση με τη φόρμα του Insomnia δε βρήκα έστω ένα thread το οποίο να αφορά τη συζήτηση για κάποια πτυχή με τη μηχανική (ή τεχνολογία) λογισμικού. Πήρα λοιπόν την απόφαση να φτιάξω ένα thread ακριβώς για αυτό, για να συζητάμε, να γράφουμε απορίες και απαντήσεις, ίσως κάποιες συμβουλές και τεχνικές, προτάσεις βιβλίων κτλπ, γύρω από το software engineering. Το thread έχει το γενικό τίτλο επειδή το software engineering καλύπτει πολλά διαφορετικά θέματα και διαδικασίες. Έτσι, πιστεύω θα είναι καλύτερα να έχουμε ένα γενικό θέμα, ώστε να μπορεί κάποιος πχ να γράψει κάτι, έστω και μικρό και να το μοιραστεί, ακόμα και αυτά τα ΄τόσο μικρά τα οποία ίσως να μην άξιζαν ένα thread από μόνα τους. Για να εμπεδωθεί καλύτερα ο γενικός χαρακτήρας του thread, θα γράψω κάτι συγκεκριμένο που ήθελα να συζητήσω σε νέο post, ώστε το πρώτο ποστ να μην περιέχει κάτι συγκεκριμένο, ώστε όποιος το διαβάζει για πρώτη φορά να μη νομίζει πως το thread είναι για κάτι απόλυτα συγκεκριμένο σχετιζόμενο με το software engineering.
παπι Δημοσ. 29 Απριλίου 2016 Δημοσ. 29 Απριλίου 2016 Οταν θες να κανεις κατι παραλληλα τοτε δουλευεις με threads. Αρα αν πογμε πως το εν λογω θεμα ειναι προγραμμα, τοτε ειναι ενα κακογραμμενο προγραμμα. Καλυτερα μετανομασε το σε 'programmers offtopic' για να εχει μια λογικη. 1
googlebro Δημοσ. 29 Απριλίου 2016 Δημοσ. 29 Απριλίου 2016 Οταν θες να κανεις κατι παραλληλα τοτε δουλευεις με threads. Αρα αν πογμε πως το εν λογω θεμα ειναι προγραμμα, τοτε ειναι ενα κακογραμμενο προγραμμα. Καλυτερα μετανομασε το σε 'programmers offtopic' για να εχει μια λογικη. Είσαι σίγουρος ότι μονάχα αυτό αρκεί, ώστε να δουλεύεις ΠΡΑΓΜΑΤΙΚΑ παράλληλα ? ξέρω ότι αστειυόσουν, προς τον TS, απλά ελπίζω να βγάλουμε κάτι πραγματικά χρήσιμο από αυτό, και να προχωρήσει και η κουβέντα
Alithinos Δημοσ. 30 Απριλίου 2016 Μέλος Δημοσ. 30 Απριλίου 2016 Οταν θες να κανεις κατι παραλληλα τοτε δουλευεις με threads. Αρα αν πογμε πως το εν λογω θεμα ειναι προγραμμα, τοτε ειναι ενα κακογραμμενο προγραμμα. Καλυτερα μετανομασε το σε 'programmers offtopic' για να εχει μια λογικη. Βασικά νόμισα πως το 'offtopic' είναι πολύ ευρύτερο από το 'software engineering'. Και πως έτσι αν έπρεπε να παραλληλίσω το thread με λογισμικό, το είδα σαν μια κλάση (software engineering) η οποία θα περιείχε συζητήσεις (συναρτήσεις) σχετικές με τη κλάση. Αν όμως ονομαστεί 'offtopic', τότε δεν θα είναι κλάση, αλλά namespace. Απ' την άλλη όμως θα μου πεις, ότι αφού το S.E. καλύπτει ένα φάσμα από την αρχή έως το τέλος της ανάπτυξης, είναι τόσο ευρύ που αφήνει ελάχιστα πράγματα απ' έξω. Χμ... Άσε με να το σκεφτώ λίγο καλύτερα και άμα είναι θα στείλω μήνυμα σε moderator για αλλαγή του τίτλου. Μιας και τα απλά μέλη δεν έχουν αυτή τη δυνατότητα. ------------------------- Btw, ας πω και αυτό που ήθελα να μοιραστώ που ήταν η αφορμή για να βρω αντίστοιχο thread που δε βρήκα και με οδήγησε στη δημιουργία αυτού: Ποιο υπόδειγμα ακολουθείτε εσείς / η εταιρία που εργάζεστε για την ανάπτυξη λογισμικού ? Η συμβουλή που μου δίνει ένα βιβλίο που διαβάζω είναι πως ο απόλυτος καταρράχτης έχει πολύ ρίσκο και πως θα ήταν καλύτερο η ανάπτυξη να γίνεται με iterations, και με την ολοκλήρωση του κάθε υποσυστήματος / λειτουργίας να γίνεται επικοινωνία με τον stakeholder και ίσως και επίδειξη του υποσυστήματος / λειτουργίας σε αυτόν για feedback. Δίνει ως παράδειγμα να υπάρχει μια επικοινωνία με τον stakeholder κάθε 20-30 μέρες. Συμφωνείτε ? Ή υπάρχουν άλλες καλύτερες μέθοδοι ?
M2000 Δημοσ. 30 Απριλίου 2016 Δημοσ. 30 Απριλίου 2016 (επεξεργασμένο) Ας πει κάποιος τον ορισμό για Software engineering... Π.χ. Μηχανικός στην Ελλάδα είναι ως επί το πλείστον παρεξηγημένη έννοια. Και ο τεχνίτης αυτοκινήτων μηχανικός λέγεται! Όμως ο όρος παίζει και νομικά, π.χ. μηχανικός του ΤΕΕ (Τεχνικό Επιμελητήριο Ελλάδος) είναι κάτι άλλο, έχει με σαφήνεια αρμοδιότητες που απορρέουν από την στήριξη του ΤΕΕ. Π.χ. ο μη εγγεγραμένος στο ΤΕΕ είναι μεν μηχανικός αλλά όχι με τις αρμοδιότητες του συγκεκριμένου τύπου μηχανικού. Υπάρχει και μια άλλη διαβάθμιση όπου για μένα βάζει το μηχανικό, της τριτοβάθμιας εκπαίδευσης, σε μια λογική θέση (όχι ειδικά του τύπου του ΤΕΕ). Αυτή είναι η θέση του επιστήμονα, που χειρίζεται μεθόδους για επιμετρήσεις, να ανιχνεύσει, να μελετήσει, από τα απαιτούμενα, σε υλικά, σε κόστος, σε χρόνο, φαινόμενα και διεργασίες σε παραγωγικές εργασίες. ώστε με την συμβολή του να προσφέρει μια καλή υπηρεσία σε αυτούς που θα πάρουν τις τελικές αποφάσεις, τον κύριο του έργου ή τον προϊστάμενο ανάδοχο αυτού. Αν μιλάμε λοιπόν για μηχανικό λογισμικού με την παραπάνω έννοια τότε θα λέμε για τεχνικές επιμέτρησης, αντίληψης των ζητούμενων και των εργαλείων που γίνεται καλύτερα μια δουλειά, τα εργαλεία που θα χρειαστούν και οι ανθρωποώρες και τελικώς το κόστος για να διεκπεραιωθεί το ζητούμενο. Ούτε καν χρειάζεται να γράψει μια γραμμή κώδικα. ούτε καν χρειάζεται να επιβλέπει την διαδικασία. Θα μπορούσε να το κάνει ένας βοηθός που μαθαίνει, και αργότερα με την εμπειρία θα είναι σε θέση να κάνει καλές εκτιμήσεις-μελέτες. Επεξ/σία 30 Απριλίου 2016 από M2000
Constant1ne Δημοσ. 30 Απριλίου 2016 Δημοσ. 30 Απριλίου 2016 Δε νομίζω πως σαν έννοια ο μηχανικός λογισμικού δε γράφει κώδικα. Ο όρος χρησιμοποιείται συνήθως με την ευρεία έννοια της μηχανικής που είναι η επίλυση πραγματικών προβλημάτων χρησιμοποιώντας μεθοδολογίες και επιστημονικές αρχές. Κάποιος που γράφει μόνο κώδικα δεν είναι απαραίτητα μηχανικός, αλλά ο μηχανικός σε αυτή την περίπτωση είναι και προγραμματιστής. Απλά πέρα από το να γράφει κώδικα είναι σε θέση να αναλαμβάνει την υλοποίηση ενός έργου. (μελέτη, σχεδιασμός, υλοποίηση, υποστήριξη κτλ.) Στο εξωτερικό πάντως, ειδικά στην Αμερική, έχω την αίσθηση ότι ο όρος software engineer χρησιμοποιείται πολύ περισσότερο από το προγραμματιστής και συμφωνώ με αυτό, γιατί το προγραμματιστής μου ακούγεται λίγο πιο περιοριστικό.
M2000 Δημοσ. 30 Απριλίου 2016 Δημοσ. 30 Απριλίου 2016 Δεν αντιλέγω, στην Ελλάδα παίζει το one man show...Π.χ. στην βιομηχανία ένας μηχανικός αρκεί για να δηλωθεί ότι είναι πανταχού παρόν...Σε άλλες περιπτώσεις (μου έχει τύχει), Εγγλέζοι αρνούνται να βάλουν μπροστά λέβητα γιατί δεν υπάρχει στο χώρο επικεφαλής μηχανικός. Άμα ήμασταν στην Ελλάδα ο μηχανικός θα έλεγε τι να κάνει ο χειριστής και θα του παραχωρούσε την αρμοδιότητα. Φαίνεται σαν να μην τρέχει τίποτα, αλλά στην ουσία τρέχει, δεν υπάρχει ασφάλεια, δεν είναι παρόν αυτός που πρέπει για αυτό που γίνεται σε σχέση με το νόμο. Ο νόμος μεταφράζεται στην Ελλάδα, ότι η επιχείρηση "πληρώνει" τις υπηρεσίες μηχανικού. Ενώ δεν είναι έτσι. Τώρα στους μηχανικούς πληροφορικής όταν π.χ. το έργο περιλαμβάνει παραγωγή που βρίσκεται στο δίκτυο, το παραμικρό λάθος που θα αποσυνδέσει το σύστημα κάποιος θα πρέπει να το χρεωθεί. Είναι σοβαρό να το χρεωθεί ο προγραμματιστής των 500 ευρώ (τυχαίο το νούμερο). ή ο υπεύθυνος μηχανικός. Αυτός που πρέπει να είναι; Στο σπίτι και να έχει ανάψει λαμπάδα; Να προσθέσω εδώ ότι ο μηχανικός σε μια παραγωγική διαδικασία, λύνει προβλήματα όταν παρουσιάζονται. Δεν είναι καθημερινή εργασία η λύση προβλημάτων. Καθημερινή εργασία είναι η μέτρηση, και ο έλεγχος.
Επισκέπτης Δημοσ. 30 Απριλίου 2016 Δημοσ. 30 Απριλίου 2016 "Η συμβουλή που μου δίνει ένα βιβλίο που διαβάζω είναι πως ο απόλυτος καταρράχτης έχει πολύ ρίσκο και πως θα ήταν καλύτερο η ανάπτυξη να γίνεται με iterations, και με την ολοκλήρωση του κάθε υποσυστήματος / λειτουργίας να γίνεται επικοινωνία με τον stakeholder και ίσως και επίδειξη του υποσυστήματος / λειτουργίας σε αυτόν για feedback. Δίνει ως παράδειγμα να υπάρχει μια επικοινωνία με τον stakeholder κάθε 20-30 μέρες." Σαν να διαβάζω τον M2000.
Alithinos Δημοσ. 30 Απριλίου 2016 Μέλος Δημοσ. 30 Απριλίου 2016 (επεξεργασμένο) Σαν να διαβάζω τον M2000. Εξήγησε το λίγο. Τι εννοείς και γιατί το λες αυτό, προσπάθησε να συνεισφέρεις κάτι στη συζήτηση pls. Επεξ/σία 30 Απριλίου 2016 από Alithinos
ZAKKWYLDE Δημοσ. 30 Απριλίου 2016 Δημοσ. 30 Απριλίου 2016 Agile, Waterfall, TDD, DDD όλα τρίχες. Το δικό μου SDD (spaghetti driven design είναι πολύ ανώτερο). Στο εξωτερικό πάντως, ειδικά στην Αμερική, έχω την αίσθηση ότι ο όρος software engineer χρησιμοποιείται πολύ περισσότερο από το προγραμματιστής και συμφωνώ με αυτό, γιατί το προγραμματιστής μου ακούγεται λίγο πιο περιοριστικό. Στην αμερική και ο "Bus Driver" λέγεται "transportation engineer", o καθαριστής "waste and disposal engineer". 1
Aztec Δημοσ. 30 Απριλίου 2016 Δημοσ. 30 Απριλίου 2016 Εξαρτάται από το scope τους έργου και το complexity . Αν ένα έργο έχει βάθος τρία χρόνια που όλα είναι αλληλένδετα μαζί τους είναι λογικό να χρησιμοποιήσεις waterfall σπασμενο σε λογικά phases. Θεωρώ πως το waterfall με διαρκή συμμετοχή του πελάτη και sign off του design δεν κρύβει κινδύνους εκτός από βελτιώσεις κατά την διάρκεια του build . Όλα φυσικά εξαρτώνται από τους αναλυτές σχεδιαστές που έχει μία εταιρεία ώστε να μην βγούνε τρομερά gap στο build . Καθώς εκεί ο χρόνος που θα χαθεί είναι μεγαλύτερος από την φάση του σχεδιασμού 1
stavrosyomafias Δημοσ. 30 Απριλίου 2016 Δημοσ. 30 Απριλίου 2016 Ο όρος "μηχανικός", όπως το έχω μάθει εγώ (όποιος θέλει διαφωνεί ελεύθερα), είναι "Αυτός που επιτυγχάνει την επίλυση προβλημάτων μέσω κάποιας μηχανής" βέβαια προφανώς αυτός που θα κάνει ένα "2+4 = 6" με μια αριθμομηχανή, δεν είναι μηχανικός, όπως και αν ένας τυπώσει ένα "Hello World." δεν είναι προγραμματιστής. Ελπίζω να καταλάβατε τι εννοώ.
Alithinos Δημοσ. 30 Απριλίου 2016 Μέλος Δημοσ. 30 Απριλίου 2016 Όσων αφορά τον όρο, έχω στα χέρια μου το βιβλίο αυτού εδώ του κυριούλη: Ο ορισμός που δίνει είναι: Η τεχνολογία λογισμικού είναι ένας τεχνικός κλάδος που ασχολείται με όλες τις πτυχές της παραγωγής λογισμικού, από τα πρώτα στάδια της εξαγωγής προδιαγραφών ενός συστήματος λογισμικού μέχρι τη συντήρηση του συστήματος μετά τη διάθεσή του για χρήση. 1
M2000 Δημοσ. 30 Απριλίου 2016 Δημοσ. 30 Απριλίου 2016 Τεχνολογία και μηχανική δεν είναι το ίδιο πράγμα. Η τεχνολογία έχει όνομα, πεδίο εφαρμογής, και περιέχεται σε λύσεις παραγωγής ή έρευνας. Η μηχανική παράγει αποφάσεις, κινεί την παραγωγή, κινεί την έρευνα, κάνει χρήση κάθε πρόσφορου μέσου, τεχνολογίας, υλικών, ακόμα και προσωπικού, ειδικευμένου ή μη. Το πεδίο εφαρμογής του μηχανικού διευρύνεται, ώστε τα σημερινά όρια στο μέλλον να ξεπεραστούν. Μια τεχνολογία περνάει στη λήθη όταν νεότερη την ξεπερνά. Ένας τεχνολογος οφείλει να γνωρίζει μια σειρά τεχνολογιών και να είναι σε θέση να τις εκτελέσει, με ότι απαιτείται, πιθανόν και εξειδικευμένο εργατικό προσωπικό. Η διαφορά τεχνολόγου και μηχανικού, είναι ότι ο δεύτερος αποφασίζει βάσει της μελέτης που θα κάνει και θα τεκμηριώσει την προτεινόμενη λύση, ενώ ο πρώτος ευθύνεται για την εκτέλεση, και την λύση προβλημάτων εφαρμογής. Έτσι και ο τεχνολόγος, δρα ως μηχανικός, αλλά δεν λέγεται μηχανικός αν υπάρχει μηχανικός. Αν δεν υπάρχει στην πυραμίδα,στο όργανο γράμμα, ή φυσικά, δηλαδή υπάρχει έλλειψη μηχανικού,τότε εκ των πραγμάτων και ο τεχνολόγος ενεργεί ως μηχανικός. Αυτή η μετάθεση του ονόματος μηχανικός...φθάνει στο συντηρητή μηχανικό, πχ μηχανικό αυτοκινήτων, όπου αναλαμβάνει να δει το πρόβλημα, να αποφασίσει το τρόπο και τα εργαλεία για την επισκευή, και να την εκτελέσει, όλα δηλαδή σε ένα. Δικαιωματικά και αυτός είναι μηχσνικός. Το ρήμα μηχανεύομαι, είναι στην παθητική φωνή, όχι τυχαία. Σημαίνει σκέφτομαι και πράττω τη λύση για δοσμένο πρόβλημα. Μηχανή έλεγαν οι αρχαίοι τον μοχλό, ο οποίος ήταν το μέσο για την λύση του προβλήματος της ανύψωσης και μεταφοράς αντικειμένων. Από κει συνδέεται η μηχανή με την λύση. Ο μηχανικός επινοούσε τα μέσα, και χρησιμοποιούσε επινοήσεις άλλων. Άρα ο μόνος τρόπος για να γίνει κανείς μηχανικός...δεν είναι το διάβασμα, αυτό είναι το ελάχιστο, αλλά η συμμετοχή σε έργα υπό ενός παλαιότερου μηχανικού. Μόνο η απόδειξη της ικανότητας με πιστοποίηση από σοβαρό μηχανικό έχει ισχύ. Βοηθάνε τα πτυχία όταν δίνονται από επιστήμονες καθηγητές με κύρος. 1
Alithinos Δημοσ. 30 Απριλίου 2016 Μέλος Δημοσ. 30 Απριλίου 2016 Αυτό που είχα διαβάσει κάπου (δε θυμάμαι που) είναι πως κάποια στιγμή έγινε αντιληπτό πως οι τεχνικές και μέθοδοι της μηχανικής μπορούσαν να εφαρμοστούν και στην ανάπτυξη του λογισμικού, και πως αυτό έκανε την ανάπτυξη λογισμικού πιο παραγωγική και αποτελεσματική. Έτσι στο εξωτερικό υιοθετήθηκε ο όρος "Software Engineering", ο οποίος αν μεταφραστεί κυριολεκτικά είναι "Μηχανική Λογισμικού". Πάρα ταύτα για κάποιο λόγο στην Ελλάδα έχει επικρατήσει η συνήθεια να χρησιμοποιείται ο όρος "Τεχνολογία Λογισμικού", για την έννοια που έχει το Software Engineering. Τώρα το γιατί και το πως δεν το ξέρω, αλλά αυτή την ασυμβατότητα ελληνικών - αγγλικών ορολογιών την παρατηρώ και σε πολλά άλλα πράγματα, πχ οι πίνακες / arrays. Η αγγλική λέξη "array" μεταφράζεται κυριολεκτικά ως "συστοιχία", και έχει κάποιο νόημα, το ότι δεσμεύει bits της RAM σε συστοιχία. (το ένα μετά το άλλο). Τώρα πως ήρθε στους πρώτους - πρώτους Έλληνες προγραμματιστές αντί να μεταφράσουν τη λέξη ως "συστοιχία", να τη μεταφράσουν ως "πίνακα", δεν έχω ιδέα.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα