Casa mea a fost mâncată de un câine

doresc să facă lucrarea, dar și să o poată face. Primul fără al doilea este inutil în ceea ce privește rezultatul final.

- Prin urmare, când cineva<нибудь берет передо мной некое обязательство, – заключил Роско, – я предполагаю, что он одновременно хочет и может его выполнить. Поэтому работа будет сделана. Дело закрыто. Если он не уверен в своих возможностях, не надо брать на себя обязательств.

Trebuia să mă gândesc mai profund decât înainte.







- Bineînțeles, continuă Roscoe, întotdeauna vor fi suferinzi<нут сочинять сказки про то, как «мое домашнее задание съела собака». Я та<ких не терплю и всегда удивляюсь, откуда они вообще взялись. И знаешь что: они всегда сообщают тебе, что не успевают сделать работу вечером накануне сдачи, хотя ясно, что они знали об этом намного раньше. Это просто несерьезные люди, и их надо гнать как можно скорее.

Am hotărât că este corect. Mereu am fost indignat de cei care așteptaseră<следней минуты, чтобы сообщить мне плохие вести. Я не только считаю это признаком их трусости, но и полагаю, что они украли у меня время, в течение которого я мог бы придумать альтернативный план, чтобы за<крыть их провал.

- Ai dreptate, Roscoe, am răspuns eu. - Dar uneori se pare că tocmai a apărut<то недоразумение.

- Da, există două tipuri comune de defecțiuni "mecanice". În<пер<вых, может быть разночтение по поводу того, что представляет собой обяза<тельство. То есть что именно должен представлять собой результат? Сколько труб надо перевезти и в какое место в Техасе? Во<вторых, может быть не<четко определено «когда». Я всегда указываю водителю час, к которому тру<бы должны быть доставлены на место. Он понимает это так, что если он за<держится с доставкой, то я не получу той услуги, за которую заплатил.

"Este o chestiune de bani", am intrebat "Este aceasta aplicabila cand vine vorba de software?"

Roscoe răspunse fără ezitare. - Programatorii ar face bine pentru a clarifica exact ce ar trebui să fie livrate și la ce dată. Apoi ar fi mai puțin ciudat dacă au făcut ceea ce voiau sau nu. Condițiile trebuie să fie lipsite de ambiguitate, clare și să nu fie discutate pe termen nedefinit.

"Pentru că obligația, a subliniat el, este un contract în care<ром нет места двусмысленностям. В обязательстве не должно быть усло<вий, напечатанных мелким шрифтом. Там не должно быть лазеек, позво<ляющих отвертеться, если уговор не выполнен в срок.

Eram doar uimit de cât de simplă era logica producției de petrol din Texas<чиков нашла применение в программном бизнесе. Но у меня тут же воз<никли некоторые опасения.

Război de specificații?

- Așteaptă, Roscoe, am intervenit. - nu este atât de ușor să îți dai seama de intenția ta<рение точно затвердить, что именно должно быть поставлено. Уокер Ройс неоднократно говорил мне, что стремление к излишней точности в самом начале проекта ведет к большим потерям времени. Например, если на<стаивать на очень точных условиях поставки, возникает масса споров от<носительно спецификаций.

- De fapt, răspunse Roscoe, "sunt de acord cu Walker." Cheltuind mult timp discutarea detaliilor mici ale produsului final amintește de disputele dintre avocați privind introducerea virgulelor în contract. Este de dorit să se evite astfel de costuri. În caz contrar, nimic nu va fi încheiat vreodată și vom petrece prea mult timp, producând documente inutile. Dar există o problemă reală care are nevoie de soluție. Iată un exemplu. Foarte des, un inginer sau un programator se angajează să scrie o săptămână până vineri o bucată de cod care ar trebui să participe la asamblarea unui pro<екта. В указанный срок код поступает, но в нем обнаруживаются ошибки. Еще неделя уходит на то, чтобы их устранить. Затем обнаруживается, что если число элементов в используемом им массиве возрастает со 100 до 1000, то алгоритм работает в 100 раз медленнее. На исправление этого уходит еще несколько недель. И все это время задачи, которые зависят от этого кода, висят и ждут, когда он будет доделан.







Roscoe sa încălzit înainte de spectacol. A continuat.

- Problema este că tipii tocmai nu au fost de acord cu numele<но должно было быть готово в ту пятницу. Программист считал, что это должен быть фрагмент кода. Менеджеру нужен был полностью отлажен<ный код, эффективно работающий в разумном диапазоне входных дан<ных. Очевидно, что характеристики поставляемого продукта не были со<гласованы. Программист будет доказывать, что, предоставив код, он вы<полнил свое обязательство, и станет изворачиваться, объясняя, что он во<

tot nu au promis în același timp să identifice și să corecteze toate erorile. Dar pentru a intra pe această cale alunecoasă este foarte periculoasă, pentru că acum veți deveni<суждать, насколько серьезной может быть ошибка, которой разрешается проскочить тестирование (да проводил ли он его вообще?). А программист станет также доказывать, что вопросы эффективности вообще не обсужда<лись, хотя применение им алгоритма с квадратичной зависимостью от объ<ема данных 1 вообще несовместимо с понятиями компетентности и про<фессионализма.

Mă întreb cine a luminat Roscoe despre algoritmi patrati?

- Nu voi spune că pentru a rezolva această problemă avem nevoie de un detaliu<ные спецификации, вплоть до точных показателей эффективности. Но так же, как я на своем нефтяном поле в Техасе вправе рассчитывать, что мои трубы после доставки на новую буровую не окажутся завязанными в крен<дель, так и менеджер программного проекта вправе полагать, что пред<ставляемый ему код не окажется полусырым. Особенно, когда программи<сту известно, что его код участвует в сборке проекта и будет использовать<ся другими людьми.

- Asta încerc să explic, spuse Roscoe, sprijinindu-se în scaun.

Cele trei cele mai comune scuze

ia întrebat delicios pe Roscoe dacă ar fi avut vreunul<либо пред<Я ставления о том, почему люди регулярно не выполняют свои обяза<тельства. Стоило ли сомневаться, что у него было свое мнение по этому предмету?

- Mi se pare că în domeniul software-ului majoritatea obligațiilor nu merită nimic în momentul în care sunt pronunțate. Oamenii nu o fac<ют себе труда хорошенько подумать, прежде чем принимать на себя обяза<тельства. Если бы они понимали все последствия, вытекающие из приня<тия на себя обязательств, они были бы гораздо осторожнее. Приведу не<

1 Matricea de intrare a crescut de la 100 elemente la 1000, adică de 10 ori. Timpul de procesare a crescut de 100 de ori, sau 10 în pătrat. În această situație, spunem că Algo<ритм имеет квадратичную сложность. Квадратичные алгоритмы легко програм<мировать, но для всякой серьезной программы они убийственны. Хотелось бы, чтобы алгоритмы линейно зависели от размера входных данных. Знающий про<граммист обнаруживает квадратичные (или еще менее эффективные алгорит<мы) и заменяет их чаще всего такими, сложность которых не хуже n log(n). Ино<гда это лучшее, чего можно добиться.

câte exemple. Iată una dintre cele trei cele mai comune scuze: "Am fost întotdeauna distras, dar nu m-am gândit la asta". Scuzați-mă, ale căror dificultăți sunt acestea? Evident, nu a mea. Nu m-am angajat. Oricine a făcut un angajament trebuie, fie atunci când a făcut-o, să ia în considerare faptul că va fi distras sau nu va fi distras când a încercat să-l distragă. Evident, el nu a acordat suficientă importanță angajamentului față de mine, dacă a fost distras de alte sarcini. Dar cum rămâne cu conceptul de "promisiune dată mai devreme"?

- Așteaptă, Roscoe, am exclamat, totul se întâmplă în viață. Sapa găuri sub poli pentru gard și începe să plouă. Trebuie să oprești munca. Nu-i așa?

"Da, uneori ploua", a spus el. - Cred că, făcându-ți evaluarea, trebuie să ții cont de asta. Dacă 50% din timp plouă, nu merită

în evaluarea sa să se bazeze pe faptul că nu va fi ploaie. Nu poți face o astfel de presupunere și apoi te plâng că a început să plouă.

- Da, - mi sa crezut - se pare că oamenii rareori vin cu astfel de lucruri. Multe obligații provin din faptul că totul va fi perfect. Nezhe<лание признать, что обстоятельства могут сложиться неудачно – одна из причин, приводящих к беде и невыполнению обязательств.

- E bine să fii al doilea pe listă? Am întrebat.

- Iată cea de-a doua scuză: "Sarcina a fost mai complicată decât mă așteptam". din nou<таки, чья это вина? Не я оценивал задачу, а он. Если у него не было уверенности, не надо было брать на себя обязательство. Если он недоста<точно разобрался в задаче, чтобы правильно ее оценить, не нужно было брать на себя обязательство. Неожиданное прозрение посреди работы – явный непрофессионализм. То, что ты паршиво сделал оценку, не снимает с тебя ответственности за результат. Желание<то у тебя было, а компетент<ности не хватило.

De câte ori am auzit asta! Cursa mică nefericită<сказывает, что трудился день и ночь, но задача оказалась намного, неизме<римо труднее, чем он предполагал. И он рассчитывает на сочувствие. Я часто обнаруживал, что мне жалко того человека, который только что ме<ня подвел. Может быть, зря?

- Presupun că, uneori, oamenii își iau obligația<ства, потому что им кажется, что они сумеют сделать эту работу. И слиш<ком часто, как мне кажется, они начинают что<то понимать, только вник<нув в задачу глубже. Наверно, прежде чем брать на себя обязательство, они должны были попросить какое<то время, чтобы изучить задачу.







Articole similare

Trimiteți-le prietenilor: