Еквівалент тесту Джоеля для вимірювання програміста [закрито]


70

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

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


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

2
Цікаво, що коли я задав це питання, воно було звернене до пекла (тепер знову позитив, так, і швидко закрилося). Невже він такий різний, ніж цей? programmers.stackexchange.com/questions/133691/…
ripper234

8
@ ripper234, причини закриття запитання про SE в чомусь схожі на ті незрозумілі, переривчасті помилки в програмному забезпеченні - справді загадка. Трохи схожа на людську природу насправді.
техніть

8
Сам Джоел надає простий, але суворий тест: Smart and Gets Things Done . : P
Dan J

FizzBuzz! Безумовно!
CraigTP

Відповіді:


67

Існує матриця компетентності програміста .

Як і у випадку з тестом Джоеля, це просто неясне керівництво. Єдиний спосіб правильно оцінити програміста - це запитати у хороших програмістів, які працювали з ними.


27
Тож єдина проблема, яка залишається - це оцінити, чи хороші минулі / нинішні товариші по команді хороші ... На жаль.
Péter Török

21
Так, це рекурсивно :)
Том Сквайрс

13
Це ніщо, як тест Джоеля. Ваша відповідь вказує на величезну детальну матрицю, тест Джоеля - це серія з 12 дуже простих питань, на які потрібно відповісти.
Брайан Оуклі

2
@BryanOakley - це правда, але PCM - це теж перше, про що я подумав, читаючи питання. Підсумок: немає простих питань, на які можна відповісти, щоб виміряти програміста!
Joris Timmermans

2
@BryanOakley точка матриці, яка є більш складною, ніж серія, добре прийнята; Для мене ближчою аналогією до тесту Джоеля була б серія, створена з елементів стовпців рівня 1 в PCM - "поясніть і використовуйте масиви ..., базове сортування ... тощо"
gnat

25

Я б перетворив тест Джоеля:

Чи використовували вони джерело управління?

Чи знають вони, як автоматизувати побудову в один крок?

...

Єдине, що не здається особливо застосовним - це питання про тестерів. Інші, які здаються вимикаючими, перетворюються на це, як ми впораємося з цим, як ви справлялися з ним у попередніх видах питань (Це те, як ми обробляємо оновлення нашого графіку, як ви обробляли планування в минулому?) .

редагувати:

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


1
Усі запитання Джоеля стосуються більше середовища, ніж програміста. Якщо моя команда не використовує контроль вихідного коду, то моє не інтегрування з ними за допомогою власного управління вихідним кодом навряд чи є вдосконаленням. Вдосконалення роботи команди з використанням контролю вихідного коду.
Едвін Бак

15

Тест Joel - це лише неофіційна перевірка базової лінії, яка дозволяє швидко оцінити, чи є в місці хороші умови роботи програмістів. Навіть якщо він набере ідеальних 10, це все одно може бути пеклою дірою, яка збанкрутує через півроку вниз. Низький бал - це вказівка ​​на щось не зовсім правильне, а це дає чудові запитання про інтерв'ю ("Ви зараз не використовуєте джерело контролю; чи плануєте це робити в майбутньому?"), А відповіді можуть бути такими, що Ви б прийняли роботу, незважаючи на низький бал Джоела.

Тест Джоеля також не є «стандартним» тестом; це просто контрольний список Джоела Спольського, розміщений у своєму блозі.

Що стосується "вимірювання" якості програміста; на жаль, справді важливі навички та якості хорошого програміста важко або неможливо оцінити кількісно, ​​тому не існує заміни на ретельну людську оцінку. Ви можете вилучити абсолютно безглуздих кандидатів досить легко, хоча, використовуючи дуже просте завдання програмування - в ідеалі, щось, що передбачає рекурсію, структури дерева або покажчики (програміст, який не отримує їх, навряд чи принесе велику користь). Для тих, хто здає цей тест, вам доведеться оцінювати вміння вручну: читати написаний ними код, тестувати програми, які вони написали, давати їм більше завдань програмування (як проектування, так і впровадження), дивитися, як вони працюють, розмовляйте з ними, дивіться, чи може викликати професійну дискусію. Якщо ви шукаєте фахівця / мовного гуру,


1
+1 Судити про вміння хороших програмістів - одне завдання важко оцінити.
Картик Сріенівасан

20
("You're not currently using source control; are there any plans to do so in the future?"), and the answers might be such that you'd accept the job despite a low Joel score. Ви помилилися б, до речі, прийнявши роботу. Врешті-решт, кожен розробник дізнається, Plans to do so in the futureщо інтерв'ю говорить лише про те, що вас обманює, але вони ніколи не діють через жахливе управління. Скільки разів ми щось чули, Oh, we are moving towards Agile...і це виявилося ще одним магазином водоспадів з мікроконтролем?
maple_shaft

@maple_shaft: Так, напевно, не гарний приклад ...
tdammers

5
Ідеального 10 на тесті Джоела насправді було б 12 ... просто кажу :)
MattDavey

3
@MattDavey: Це критично залежить від ваших компетенцій щодо зміни змін. У мене був такий досвід, коли я був у бізнесі два роки (так, ми перейдемо на C ++) і отримав очікуваний результат. Сьогодні це була б інша справа. Я можу зрозуміти, чи це щире бажання, але неможливість змінити, а потім зробити це можливим.
MSalters

12

Так:

Ви програмуєте у вільний час?

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

І, чесно кажучи, багато 9 - 5 завдань не передбачають багато кодування . Вони не передбачають багато повторень через життєвий цикл розробки нових програм і бачать, як ця конструкція працює / провалюється. Без цієї ітерації просто не існує практики, необхідної програмістам для отримання основних навичок проектування програми.

І вони не передбачають багато навчання. Програмісти, які навіть просто хакують речі вдома, збираються вивчати нові цікаві рішення без обмежень великого бізнесу.


2
Чому за це є лише один голос? ІМО - це справжня відмінність посередніх команд від тих, які є справді новаторськими.
Repo Man

1

Це не так детально, як тест Джоеля, але попросити їх написати програму fizz buzz буде гарною ознакою, щоб побачити, чи можуть вони взагалі кодувати.

http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html та http://imranontech.com/2007/01/24/using-fizzbuzz-to-find-developers- хто-grok-кодування /

Це не скаже вам про зрілість програми інженерії програмного забезпечення, але це виявиться гіршим.


0

Ех, я маю складність з формулюванням на початку. Це не "чи використовували ви X" чи "чи знаєте ви Y", це фактично використовувати та робити. Будь-який програміст, який не торкався і не чув про елементи тесту Джоеля, просто відключається і йому потрібно отримати підказку. Але ви маєте рацію, кодові магазини провалюють тест Джоеля, тому що люди в магазинах дозволяють йому провалитися. Єдиний захист, який я бачу, пробігається в руслі "Я намагався, але не мав повноважень. І зараз я тут подаю заявку".


0

Чи використовуєте ви керування джерелами?

Так, але

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

Чи можете ви зробити збірку за один крок?

  • Так, наш керівник CI пише сценарії, і я просто запускаю їх у власну оболонку.

Ви робите щоденні побудови?

  • Наш сервер CI робить

Чи є у вас база даних про помилки?

Так, але я не налаштував його і не адмініструю, просто використовую.

Чи виправляєте помилки, перш ніж писати новий код?

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

У вас є актуальний графік?

Ні, це не моя робота.

У вас є специфікація?

Мені дають специфікацію, потім я її аналізую і складаю відповідні документи.

Чи мають програмісти спокійні умови праці?

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

Чи використовуєте ви найкращі інструменти, які можна купити за гроші?

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

У вас є тестери?

Так. Насправді, так, і вони не дуже хороші, але це не було у питанні.

Чи пишуть нові кандидати під час співбесіди?

Так, і вони провалюються. Так, і вони проходять. Що це вам говорить?

Ви робите тестування на корисність передпокою?

Ні, але що робити, якщо ми робимо щось краще?

Прийти до висновку:

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

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


8
Я не дуже розумію цього. Ці питання стосуються команди / компанії, а не окремого програміста. І ОП не запропонував використовувати ті самі запитання для оцінки програміста, він просто хоче набір простих запитань.
CodesInChaos

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

3
How do you know whether I pull changes before pushing? Ну, я не знаю, яким керуванням джерела ви користуєтесь, але принаймні, у SVN, якщо ви спробуєте скористатися папкою із змінами, яких у вас ще немає, комісія не вдасться до запуску оновлення.
Мейсон Уілер

Ми використовуємо TFS :) Мені справді потрібно взяти руки на інші системи управління версіями.
CodeART

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