У мене є питання, яке було порушено моєю останньою роботою (швидше стажисткою).
Просто, щоб поставити речі в контекст - мені 21 рік, і я закінчив 2-й курс університету, до цього я мав близько 2-річного досвіду роботи з системою адмін / QA, і в основному можу сказати, що я бачив, як відрізняються Діяли ІТ-сектори. Промайну вперед до теперішніх часів, і ось я займаюся стажуванням в одній з провідних науково-дослідних установ у Великобританії.
Що мені потрібно зробити, це створити деякі внутрішні інструменти за допомогою поєднання технологій - головним чином AWS / Java / Bash - ви отримаєте картинку. Все гаразд, я роблю свою роботу, Але я не задоволений. Чому це так - тому що, як очікується, я працюю в спеціальній справі. Тобто створюйте речі швидко, не витрачаючи часу на розробку. Мій керівник прямо заявив, що очікується, що ми будемо "мчати" через проблеми, коли вони виникають, а ми по суті. Як наслідок, виявилося, що речі треба було переробити і переробити, і вони все ще не є ідеальними. Що стосується тестування - зведіть його до мінімуму, доки він здається працює, тоді це нормально.
Чи я не винна з таким способом ведення роботи? Неправильно хотіти продумати систему в цілому, а потім зосередитись на різних компонентах і подивитися, як вони можуть взаємодіяти, анулюватись на різні "ключові моменти", які в майбутньому можуть виявитися проблематичними? Чи є злочином бажати зробити гарну роботу, а не "швидку роботу"? Чи є помилковим чи неправильним ставленням бажати досліджувати структуру даних, застосовну до проблеми, щоб ви могли вибрати найкраще залежно від конкретного набору проблем? Наскільки я розумію, біт "Інженерія" в "Інженерії програмного забезпечення" пов'язаний саме з цим - досліджуйте свою проблематичну область і придумайте рішення, а потім уточнити за необхідності?
Я був на співбесіді в офісі Arm у Великобританії, і вони показали мені свою кімнату SCRUM, і, схоже, вони мали досить гарну ідею щодо управління своїм проектом - вони мали відставання, мали показники щодо тривалості кожного проблему може знадобитися вирішити - звичайні речі для SCRUM - зовсім інші, ніж способи ведення речей "тут"
Чи побудував я неправильну думку про галузь програмного забезпечення взагалі? Я хотів би почути вашу інформацію про це. Я маю на увазі, що я "увійшов" у розробку програмного забезпечення виключно тому, що хочу створити речі - прості та прості, але хочу створити якісні речі. Я хочу бачити, що моє програмне забезпечення використовується в різних сценаріях, я хочу бачити це захистом від кулі - чи не це рушійна сила для всіх інженерів програмного забезпечення? Я думаю, що кожен може бути програмістом / кодером, просто вивчивши синтаксис, але для мене, звідки починається справжня забава, коли ви насправді повинні придумати дизайн, який можна виконати в реальному світі.
Я раніше робив свої завдання в університеті, просто переглядаючи їх і безпосередньо починаючи кодування і міг легко отримати оцінки вище 75% і ніколи не оцінив модуль "життєвий цикл розробки програмного забезпечення". Але тепер, коли я побачив у реальному світі, як погано працювати без будь-якого формального процесу та розчарування, властивого ситуації, коли ти не знаєш, чи змінитимуться вимоги завтра (о, я сказав, що ми у вас чітко визначений аналіз вимог?)
Мені дуже подобається вірити, що я щойно вийшов на посаду, коли деяким людям просто потрібна мавпа з кодом, щоб виконати свою брудну роботу, і це не так, як світ програмного забезпечення працює в цілому.
because I'm expected to work in an ad-hoc matter. That is create things quickly, without spending time on designing
- Ласкаво просимо до The Real World ™, де є терміни, і компанії очікують результатів.