Що таке "безпроблемне програмування"?


12

Я вперше почув цей термін близько п’ятнадцяти років тому.

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

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

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


7
Програмування Ego-Galore - це набагато веселіше, ніж програмування без его.
Робота

2
@Job: Так, і як кажуть Мітбустери, з C-4 все йде краще.
Боб Мерфі

Відповіді:


17

Все вищеперераховане.

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

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


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

@bobmurphy Я знаю два ефективні способи уникнути догматики. 1) Не даючи лайно щодо ідеалів. 2) Вкладаючи час і енергію, потрібно для створення команди розвитку, яка має спільні ідеали. Багато людей здаються на 2, пишуть стандартний документ, який ніхто не читає, і повільно ковзають у 1. Єдиний анідот - це перегляд коду, який стосується того, як почуваються люди. Не про дотримання правил.
candied_orange

8

Фраза не має стандартного значення ISO, тому різні люди можуть законно означати різні речі.

Я вважаю, що він був придуманий Вайнбургом у «Психології комп’ютерного програмування» . Він мав на увазі програмування, не прив'язуючи нікого до свого коду, щоб він не був "вашим кодом", а просто кодом. Це полегшує співпрацю задля вдосконалення коду, можливість приймати критику написаного вами (адже це не спрямовано на вас) та загальну командну роботу.


Я не думав, що це стандарт ISO. :-) Я був просто здивований, що люди натякали на безпроблемне програмування - це означає, що вибачте споживачів мого програмного забезпечення, коли їм незручно за помилки, про які я писав. Якщо це означає, я буду егоїстичним і ввічливим.
Боб Мерфі

@Bob: Я не бачу, як безпідставний а-ля Вайнбург призводить до того, що не вибачається за помилки. Це звучить для мене досить егоїстично.
Девід Торнлі

Це я не міг зрозуміти.
Боб Мерфі

6

Не існує одного правильного визначення, оскільки поняття "Его" піддається великій інтерпретації. Залежно від ваших психологічних та духовних переконань існує декілька різних відповідей про те, як можна спробувати усунути его із свого життя.

Як я розумію, термін означає, що існує колективна власність , так що кожна людина в колективі працює на благо кожного, а не лише на себе. " Девід Логан про племінне лідерство " - це TED Talk, де плем'я рівня 4 було б певним безпідставними людьми.


1

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

Близько двох років тому я взяв пару комп’ютерних класів, щоб засвоїти свої знання з програмування.

Одного разу мій професор програмування приніс у клас головоломку "Ханойська вежа". Були деякі студенти, які завжди хваляться своїм успішним життям як програмісти. Мій професор подарував усім учням головоломку і попросив усіх розпочати загадку одночасно.

Усі програмні програми намагалися довести, наскільки вони розумні. Студент, який закінчив головоломку першим - це вісімнадцятирічний китайський студент, який дуже мало знає про програмування. Маверики засмутилися. Але мій мудрий професор, який має тридцять років досвіду програмування (включаючи Лісп), мав посмішку в обличчя.

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


+1: Я бачив це багато разів, і не тільки з програмуванням.
Боб Мерфі

До речі, я теж середнього віку (52). Коли я був у підлітковому та двадцятому віці, я був впевнений, що знаю багато про багато речей. Тепер я впевнений, що нічого не знаю ні про що. Цікаво дивитися, як мій 18-річний племінник дуже впевнений у собі.
Боб Мерфі

@BobMurphy "чим більше я вчуся, тим більше знаю, як мало я знаю"
gbjbaanb

1

Моя думка (і виключно це) полягає в тому, що термін "безгосподарське програмування" - це оксиморон.

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

Іншими словами, я не думаю , що це можливо , щоб мати чисто его менше програмування.

Знову ж таки, лише моя думка, заснована на досвіді. Не соромтеся лаяти мене на цьому :)

... І ось я зрозумів, скільки років цій нитці: P


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