100 въпроса при интервюиране на софтуерни разработчици. Част 1 – изисквания и дизайн

Когато съм участвал в интервю за работа – било като кандидат или като работодател, често съм се сблъсквал с неподготвеност за задаване на подходящи въпроси, които да разкрият по-добре качествата на кандидата. Ако аз съм бил този кандидат, съм попадал в ситуации, когато изпитващите или не са знаели какво да ме питата, или са ми задавали елементарни задачки, като сортиране на масив по метода на мехурчето. В другият случай, пък, аз и моите колеги дълго сме мислили какви точно въпроси да зададем, за да открием чрез тях най-подходящия кандидат.
Jurgen Appelo от блога NOOP.nl е изготвил един много обширен списък с въпроси, с който до голяма степен решава всички тези проблеми. Списъкът е разделен в 10 категории, всяка от които съдържа по 10 въпроса. Категориите са избрани според областите на знание, дефинирани от Software Engineering Body of Knowledge (SWEBOK). Между другото, от този сайт можете да си свалите The Guide to SWEBOK – една изключително полезна книга за софтуерни разработчици.
Тук е моментът да се отбележи, че Юрген е привърженик на “гъвкавите” подходи в разработката на софтуер и смята, че един програмист трябва да е широк специалист и да е компетентен във всяка от 10-те области. Традиционният подход в управлението на софтуерни проекти набляга повече на специализацията и предполага, че един член на софтуерен екип може да е специалист в една или няколко области, но не и във всички.
Моето лично мнение повече клони към втория подход, но това не е чак толкова важно. Дали ще зададете всички въпроси на един човек или ще зададете само част от тях, в зависимост от неговата тясна специализация, не е толкова важно. По-важно е какво очаквате от него като знания и опит и как те трябва да бъдат проявени в отговорите на кандидатите.
Важно е да се има предвид, че някои от въпросите нямат правилен или грешен отговор, както самият автор подчертава. Те са измислени, за да се провери креативното мислене на кандидата и неговата реакция в трудни моменти. Признавам си, че аз самият не можах да отговоря на всички въпроси – явно има области, в които не съм достатъчно компетентен
Тук ще ви цитирам някои от въпросите, които най-много ми харесаха, и върху които бихме могли да дискутираме – дали са подходящи и дали чрез тях можем точно да оценим знанията на кандидатите, т. е. – дали те покриват минималният набор от знания и умения, които един кандидат за позицията “софтуерен разработчик” трябва да притежава.
Първата серия от въпроси са насочени към управление на изискванията и дизайна.
Изисквания
- Какъв ще бъде вашият съвет към клиент, който иска едновременно висока производителност, висока ползваемост и висока степен на сигурност?
- Как се отнасяте към променящи се изисквания? Това добро ли е или лошо? Защо?
Функционален дизайн
- Как бихте намалили усещането на потребителя за чакане, когато някои функционалности изискват много време за изпълнение?
- Как ще проектирате функционалност за редактиране на 12 полета в списък от 10 елемента? А за редактиране на 3 полета в списък от 1000 елемента?
- Можете ли да посочите някои ограничения на уеб приложенията срещу Windows приложенията?
Технически дизайн
- Как ще се справите с конфликта в уеб приложение, когато различни хора се опитват да редактират едни и същи данни?
- Познавате ли шаблоните за дизайн (design patterns)? Кои от тях сте използвали и в какви ситуации?
Следва продължение.
Гласувайте за тази статия в Svejo.net:
Ако харесвате статиите в този блог и се интересувате от тематиката, която разглеждаме, за да си гарантирате, че няма да изпуснете публикация, абонирайте се за съдържанието му чрез RSS feed или по имейл.
Вижте и тези публикации:
Категории: Разработка на софтуер
Коментари
3 коментара to “100 въпроса при интервюиране на софтуерни разработчици. Част 1 – изисквания и дизайн”
Споделете вашето мнение

Уникално ценен ресурс. Полезен не само за интервюта, но и за всекидневната работа.
Така е. И въпросите не са догми, които да назубриш и да се явиш на изпит, а теми, по които трябва да се разсъждава, да формулираш собствена позиция и да я отстоиш.
[...] първата част разгледахме въпроси от областите на управлението на [...]