Як ви вирішите, чи варто брати проект?


11

Я досить новий розробник. Професійно я два роки програмував у C # як стажист, і 6 місяців як молодший розробник. Другу моєї родини потрібна допомога в проекті, написаному на VB.net. Я ніколи не користувався VB.net, тому я трохи хвилююся там.

Але справжнє питання виникає в тому, що коли я переглянув документи на проект, у мене виникає відчуття, що нічого хорошого з цього не вийде. У мене є відчуття, що це спричинить більше стресу, ніж я хотів би зараз у своєму житті.

Як досвідчені розробники приймають рішення, чи брати проект, чи просто відпустити його? Які є хороші показники для полегшення рішення?

Редагувати

Це насправді здається дуже великою ERP, над якою він хотів би, щоб я працював, і я не вірю, що він нічого не знає про програмування, тому я не думаю, що факт, що я дуже молодший, навіть перейшов йому на думку.


10
Це важке рішення? Вам не подобаються характеристики і не вірите в них. Чому ви хочете взяти цей проект?
Vitor Py

2
Це справжній приклад, який я маю зараз, але я вважав, що взагалі було б корисно відкрити дискусію про те, як ви обираєте проекти, оскільки подібних питань немає.
J Lundberg

@J Lundberg: Я оновив свою відповідь у відповідь на ваше оновлення.
FrustratedWithFormsDesigner

3
Якщо він не знає жодного програмування, то чому він наполягає на VB.NET? Він, очевидно, не буде працювати над проектом з вами. Немає ніяких причин використовувати його над C # в .NET. Ви можете скласти існуючий VB.NET і використовувати його як бібліотеку у своєму коді C # або навпаки.
Джонатан Хенсон

"потребує допомоги" - це платна чи неоплачена?

Відповіді:


11

З мого досвіду: ніколи не займайтеся грошима для членів сім'ї, з якими вам доведеться проводити канікули чи друзів, яких ви хочете зберегти. Одна з залучених сторін завжди буде відчувати, що інша сторона або стягує занадто багато коштів, або недостатньо платить, і що вони зробили другій стороні послугу. Коли настає термін, вони, як правило, найменше розуміють, і вони зазвичай беруть дупу під час бета-тесту, тому що якщо у вас є помилка - яку ви будете - вони не зрозуміють. Це завжди безлад.

Раніше я був ідеалістом і вважав, що всі інші просто потребують кращих навичок людей, але ні, це просто так. Люди, які не розуміють процес розробки програмного забезпечення, ВИНАГИ будуть зникати, коли щось не виправдає їх очікування в перший момент, коли вони це побачать. Це вірно в бізнесі з керівниками проектів настільки ж, як і з членами сім'ї. Проблема полягає в тому, що ви повинні підтримувати стосунки з родиною та друзями, і речі ніколи не є суто діловими.

Однак, якщо проект збирається підвищити рівень стресу, і вам не потрібні гроші, то навіщо його брати? Особливо, якщо у вас вже є робота з розробки програмного забезпечення, якою ви хочете удосконалитись, я б сказав, що ви повинні присвятити якнайбільше своїх робочих зусиль, щоб бути відмінним у своїй щоденній роботі, тому що саме там ви в кінцевому рахунку будете винагороджені за якісну роботу.

Якщо вам потрібні гроші, і ви все гаразд з потенційною втратою сімейного друга, тоді прийміть роботу. Найгірше, що могло статися - окрім речей, про які я згадував раніше, - це те, що ти дізнаєшся, що ти є і в чому не добрий, або ти дізнаєшся, що кусаєш більше, ніж можеш жувати, спричиняючи проект поганий головний біль через вашу недосвідченість. Я робив це двічі на своїй нинішній роботі - на щастя, я дуже розумію роботодавців. Хоча це було нещастям, поки я почувався мертвим у воді, я з'явився набагато кращим програмістом із значно ширшим набором навичок, ніж раніше.

Немає обчислення для того, щоб визначити, які робочі місця відпустити та зберегти, лише досвід та ваша особистість. Вам просто потрібно вирішити, що ви цінуєте, і робити це. Що слід врахувати:

Це проект, над яким мені сподобається працювати? Чи є команда командою, з якою мені сподобається працювати?

Яку плату вони пропонують? Якщо ні, то який професійний розвиток я отримуватиму? Чи пропонують вони якийсь тип спільного ризику (тобто опціони акцій, відсоток прибутку)? Це для мене великий переконанець.

У будь-якому разі, це лише принципи, які потрібно використовувати при прийнятті рішень. Все залежить від того, що ви цінуєте. Наприклад, я ціную інтелектуальні виклики та час зі своєю сім’єю, тому, як правило, я ставлю першочерговий пріоритет на те, що таке проект, та навички, які я навчусь робити в цьому. Однак я також обов'язково констатую, що я працюю лише 2 або 3 ночі на тиждень, щоб я міг проводити час з дружиною та дітьми, оскільки я вже цілий день працюю. Я коригую термін, щоб задовольнити цю вимогу. Якщо їм це не подобається, я не беру на роботу.

Що б ви не робили, переконайтесь, що ви чітко заявляєте, що будете і чого не будете робити, і переконайтесь, що вони чітко заявляють свої очікування, перш ніж приймати роботу. Найгірше, що може трапитися, - це те, що клієнт не змінив свої очікування, і ви занижили ці очікування.

PS Дуже хочеться, щоб я прочитав цю статтю раніше в кар’єрі. Це стосується мого останнього пункту. http://www.joelonsoftware.com/articles/fog0000000356.html


5
+1 за "ніколи не працюй для сім'ї". Якщо тільки жодна зі сторін не вклала в це занадто багато коштів і не вважає це чистою забавою, і навіть тоді слід бути обережними.
Етел Еванс

11

Як досвідчені розробники приймають рішення, чи брати проект, чи просто відпустити його?

Чи потрібна мені робота? Якщо так, я "беру" проект.

Які є хороші показники для полегшення рішення?

Скільки у мене варіантів? Більше 1? Я можу вибрати між альтернативами.

Тільки 1? Добре. Ось тоді.

Питання "стрес у моєму житті" - суперечка; неспроможність взяти проект означає неспроможність зберегти зайнятість; що має катастрофічні наслідки.

Якщо у вас є така фінансова свобода, де «стрес» є вирішальним фактором, це справді чудово.


3
+1: Ви б могли подумати, що цього буде більше, але це майже все, що зводиться щоразу.
Ryan Hayes

@ S.Lott - Я впевнений, що у вас часто є можливість працювати над кількома проектами. Навряд чи здається, що ви дуже часто опиняєтесь у ситуаціях типу "роби чи вмирай". Я можу припустити, що це занадто багато, але це, здається, трохи солом'яна людина, оскільки хтось із вашим досвідом напевно вирішив відхилити проект тут і там, а також, ймовірно, приймав проекти раніше, коли вам не потрібно було сенс «прив’язаний до готівки»
Морган Херлокер

1
@ironcode: "Можливо, я припускаю занадто багато". Правда. У мене ніколи не було можливості відмовитися від проекту через стрес.
S.Lott

@ S.Lott Я маю на увазі стрес у тому сенсі, що я вже працюю і займаюся чимось подібним, можливо, просто залишить мені нульовий час для моєї сім'ї.
J Lundberg

@J Lundberg: Будь ласка, оновіть своє запитання, щоб включити всі факти.
S.Lott

5

Що ви отримаєте від цього проекту? Гроші? Досвід? Щось ще?

  • Гроші: це від члена сім’ї (я намагаюся не вести бізнес із сім’єю, але це зовсім інша дискусія), вона невелика (щоб ви звучали), ви досить молодші, тому не чекайте, що багато гроші з неї (виходячи з мого досвіду).

  • Досвід: ви дізнаєтесь нову мову! Це може бути корисним у майбутньому, може дати вам невелику перевагу розробникам .NET, які знають лише C #.

Але ваш кишковий інстинкт говорить вам, що цей проект буде поганим . Чому так? Здається, ви могли хоча б отримати з цього досвіду.

Більшість підрядників почали б з того, щоб переглянути, скільки грошей вони отримають, щоб вирішити взяти проект. В ідеалі більш складні проекти призводять до більших грошей. Якщо це складно, це повинно платити добре, але я не знаю деталей, щоб знати, чи справді ви будете добре платити ...


У відповідь на деталі вашого оновлення: Скажіть йому, що це далеко виходить за рамки одного молодшого програміста. Можливо, ви зможете зробити кілька хвилин дослідження і побачити, чи існує вже якийсь продукт, який може робити те, що він хоче, і бачити, чи сторінка "Особливості" говорить про налаштування / плагіни / розширюваність. Він може також захотіти поговорити з магазином програмного забезпечення на замовлення, якщо там не існує жодного існуючого продукту або потрібно виконати велику роботу з програмуванням плагінів. Немає нічого поганого в тому, щоб визнати, що проект занадто великий, щоб ви могли впоратися - це набагато краще, ніж взяти його на себе і повністю вийти з ладу (особливо, якщо це член сім'ї - сімейні функції можуть бути незручними і напруженими роками).


3
A friend of my family

Особисто якщо ця фраза стосується, я проект не беру.


2

Як фрілансер я приймаю проекти лише там, де я впевнений, що зможу виконати його вчасно, у бюджеті, в хорошій якості. Відмова від проекту не означає безробіття - принаймні, не назавжди. Приймаючи проект, ви не можете доставити всі витрати - гроші, репутацію, здоров'я.

Іноді буває трохи складніше, коли хорошому замовнику потрібна допомога для нового проекту, який просто не відповідає моїм навичкам; але навіть тоді краще бути чесним і нехай це зробить хтось інший.

У вашому випадку ви можете і повинні відмовити в проекті - ви недостатньо досвідчені, не знаєте мови, він занадто великий для вас.


1

Я займаюся позаштатним програмуванням більше двадцяти років. Щоб проект був дійсно успішним, йому потрібно щонайменше наступне:

  1. Хтось знає технології програмування, програмного забезпечення та апаратних засобів, що використовуються для розгортання, - або технології, досить схожі, щоб дуже швидко вивчити технології розгортання.
  2. Хтось, хто знає проблемний домен, здатний і готовий перекласти це на специфікації, який може використовувати програміст. (Якщо програміст також є експертом у галузі доменів, а проект досить простий, характеристики можуть бути в голові чи неофіційні примітки.)
  3. Хтось, хто вміє, бажає та має досвід керування завданнями проекту, часовою шкалою тощо, і добре знає види підводних каменів, з якими можна потрапити в такі речі, як оцінка та як їх уникнути.
  4. Хтось керує комунікаціями та відносинами між усіма зацікавленими сторонами проекту, включаючи програміста (ів) та замовника (клієнтів)
  5. Люди з обох сторін, консультант та клієнт, які мають досвід збереження поточних ділових справ, включаючи контракти та гроші. Якщо у вас немає такого досвіду самостійно, ви можете зв’язатися з досвідченим радником, поки не станете.
  6. Тривалі ділові відносини, коли, якщо вам доведеться приймати жорстке ділове рішення, у вас не виникає проблем поза роботою
  7. Досить велика команда з правильним поєднанням знань, інструментів та ресурсів для доставки якісного продукту в необхідний термін

Ви описуєте рідного друга, який нічого не знає про програмування, який хоче, щоб ви - недосвідчений програміст - будували ERP-систему за допомогою технології, якої ви не знаєте.

Мені здається, що ця ситуація, безумовно, не вистачає на №1, №3, №6 та №7, і, можливо, всі вони. Як каже Адам на Mythbusters, "Це рецепт катастрофи".

Чорт, я би сам не торкнувся цього десятистопного стовпа. Я можу продовжувати і далі про інші червоні прапори, які я бачу тут, але в основному, моя порада вам - піти з почуттям кишечника, тому що ти маєш рацію: "нічого по-справжньому від цього не вийде".

Оскільки це друг сім'ї, якби я був ти, я просто сказав би: "У тебе чудовий проект, і тобі потрібен хтось справді хороший, і я занадто недосвідчений, щоб дати тобі результати, які ти повинен мати", і залиште це при цьому.

Я також виявив, що коли у вас є клієнт, який є проблемою в одній області, вони, ймовірно, можуть бути проблемою в інших. Потенційний клієнт, який навіть розглядає можливість створення ERP-системи, розробленої та впровадженої молодшим програмістом, або настільки неосвічений, що може становити небезпеку для себе та інших, або смішно дешевий, і будь-хто з них поставив би їх у мій список "триматися подалі" .


FWIW, як консультант / фрілансер, я завершую себе, виконуючи ролі на моєму боці, за порадами дружини. Ми розібралися, що це за елементи, бачачи, що проекти провалюються через їх відсутність - іноді це наші власні проекти. І навіть після двадцяти років, і незважаючи на перевірку цих критеріїв, я все ще закінчуюся випадковим проектом, який не виходить - цей ризик завжди є частиною роботи в бізнесі. Я просто переконуюсь, що проекти не провалюються через те, що я зробив неправильно, і що договори структуровані, тому я отримую зарплату, якщо інша сторона зігріє.


0

Ви хочете працювати з іншими залученими людьми?

Проект - лише привід для зустрічей та спілкування з людьми.


Мені подобається така точка зору. Ми повинні працювати над проектом разом.
Джонатан Хенсон

Це мені дуже добре послужило. Деталі проекту можуть зміщуватися, як піски в штормі. Люди ще можуть вас здивувати, але вони змінюються повільніше.
bmike

0

Моє особисте заняття було б трохи проаналізувати, чого він хоче, якої часової шкали, яких витрат він очікує і т. Д. Якщо це насправді велика ERP, то допомога може тривати роками і, можливо, справді стати потворною. Поводження з відходами проти SAP - це приклад того, як дорого це може отримати, якщо ви дійсно маєте на увазі великі, як у 9-значних бюджетах проектів.

Мій сенс займатися розвідкою - намалювати лінію в піску, щоб було зрозуміло, чому я задаю питання і що я маю на меті мати в результаті. "Якою життєздатною я бачу це буття?" це питання, яке я б поставив під сумнів методологію, бюджет та терміни заздалегідь, а потім провів невелике дослідження, щоб побачити, чи не виглядають речі на рівні, чи це щось, що може виявитись на якомусь сайті ІТ-гумору як The Daily WTF .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.