ПредишенСледващото

Искам да си свършат работата, но и да бъде в състояние да го направя. Първият без втората безполезни по отношение на крайния резултат.

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

Аз трябваше да мисля за това по-дълбоко, отколкото съм го и преди.

- Разбира се, - продължи Роско - винаги ще има мошеници, които сто<нут сочинять сказки про то, как «мое домашнее задание съела собака». Я та<ких не терплю и всегда удивляюсь, откуда они вообще взялись. И знаешь что: они всегда сообщают тебе, что не успевают сделать работу вечером накануне сдачи, хотя ясно, что они знали об этом намного раньше. Это просто несерьезные люди, и их надо гнать как можно скорее.

Реших, че това е вярно. Винаги съм възприел тези, които служеха<следней минуты, чтобы сообщить мне плохие вести. Я не только считаю это признаком их трусости, но и полагаю, что они украли у меня время, в течение которого я мог бы придумать альтернативный план, чтобы за<крыть их провал.

- Имате право да се спори, Роско - отговорих аз. - Но понякога изглежда, че не е проста<то недоразумение.

- Да, има две общи видове "механично" провал. в<пер<вых, может быть разночтение по поводу того, что представляет собой обяза<тельство. То есть что именно должен представлять собой результат? Сколько труб надо перевезти и в какое место в Техасе? Во<вторых, может быть не<четко определено «когда». Я всегда указываю водителю час, к которому тру<бы должны быть доставлены на место. Он понимает это так, что если он за<держится с доставкой, то я не получу той услуги, за которую заплатил.

- Това е въпрос на пари - сложи I. Независимо дали това е приложимо, ако ние говорим за софтуер?

Роско отговори без колебание. - Програмистите ще е добре да изясним по-добре това, което трябва да се достави и в какъв срок. След по-малко ще се пищи за това дали те е постъпил правилно или не. Условия, трябва да бъдат недвусмислени, ясна и да не бъде обсъден до безкрайност със задна дата.

- Тъй като задължението, - каза той - е договор в Кото<ром нет места двусмысленностям. В обязательстве не должно быть усло<вий, напечатанных мелким шрифтом. Там не должно быть лазеек, позво<ляющих отвертеться, если уговор не выполнен в срок.

Просто се изумите колко проста логика Тексас производство на масло<чиков нашла применение в программном бизнесе. Но у меня тут же воз<никли некоторые опасения.

Военни спецификации?

- Чакай, Роско - аз се намеси. - Не е толкова лесно да реализирате своите Nameh<рение точно затвердить, что именно должно быть поставлено. Уокер Ройс неоднократно говорил мне, что стремление к излишней точности в самом начале проекта ведет к большим потерям времени. Например, если на<стаивать на очень точных условиях поставки, возникает масса споров от<носительно спецификаций.

- Всъщност, - отговорих аз Роско - Съгласен съм с Уокър. Uymy време отпадъци обсъждане на фините детайли на крайния продукт наподобява привеждане на правните спорове запетаи в договора. Желателно е да се избегне тази цена. В противен случай, нищо няма да бъде доведен до край, а ние прекарват твърде много време, плодовете на безполезни документи. Но има реален проблем, който трябва да бъде решен. Ето един пример. Много често един инженер или програмист е съгласен да пише за седмицата до петък част от код, който трябва да участват в събранието на по-голям професионалист<екта. В указанный срок код поступает, но в нем обнаруживаются ошибки. Еще неделя уходит на то, чтобы их устранить. Затем обнаруживается, что если число элементов в используемом им массиве возрастает со 100 до 1000, то алгоритм работает в 100 раз медленнее. На исправление этого уходит еще несколько недель. И все это время задачи, которые зависят от этого кода, висят и ждут, когда он будет доделан.

Роско затопляне преди представление. Той продължава.

- Проблемът е, че хора просто не са съгласни, че имената<но должно было быть готово в ту пятницу. Программист считал, что это должен быть фрагмент кода. Менеджеру нужен был полностью отлажен<ный код, эффективно работающий в разумном диапазоне входных дан<ных. Очевидно, что характеристики поставляемого продукта не были со<гласованы. Программист будет доказывать, что, предоставив код, он вы<полнил свое обязательство, и станет изворачиваться, объясняя, что он во<

не всички в същото време обеща да се идентифицират и правилно всички грешки. Но хайде този хлъзгав наклон е много опасно, защото сега ще се превърне в<суждать, насколько серьезной может быть ошибка, которой разрешается проскочить тестирование (да проводил ли он его вообще?). А программист станет также доказывать, что вопросы эффективности вообще не обсужда<лись, хотя применение им алгоритма с квадратичной зависимостью от объ<ема данных 1 вообще несовместимо с понятиями компетентности и про<фессионализма.

Чудя се кой е просветлен за Роско квадратни алгоритми?

- Аз няма да кажа, че трябва да се реши част от проблема<ные спецификации, вплоть до точных показателей эффективности. Но так же, как я на своем нефтяном поле в Техасе вправе рассчитывать, что мои трубы после доставки на новую буровую не окажутся завязанными в крен<дель, так и менеджер программного проекта вправе полагать, что пред<ставляемый ему код не окажется полусырым. Особенно, когда программи<сту известно, что его код участвует в сборке проекта и будет использовать<ся другими людьми.

"Това е, което аз се опитвам да обясня," - каза Роско се облегна назад в стола си.

Три от най-често срещаните оправдания

деликатно попита Роско, независимо дали той има някакви<либо пред<Я ставления о том, почему люди регулярно не выполняют свои обяза<тельства. Стоило ли сомневаться, что у него было свое мнение по этому предмету?

- Струва ми се, че в софтуерния бизнес, повечето пасиви са безполезни още от времето, когато произнася. Хората просто не позволяват<ют себе труда хорошенько подумать, прежде чем принимать на себя обяза<тельства. Если бы они понимали все последствия, вытекающие из приня<тия на себя обязательств, они были бы гораздо осторожнее. Приведу не<

Входният масив 1 е увеличен от 100 до 1000 елементи, т.е.. Д. 10 пъти. Времето за обработка е увеличил 100 пъти, или 10 на квадрат. В тази ситуация, ние казваме, че Algo<ритм имеет квадратичную сложность. Квадратичные алгоритмы легко програм<мировать, но для всякой серьезной программы они убийственны. Хотелось бы, чтобы алгоритмы линейно зависели от размера входных данных. Знающий про<граммист обнаруживает квадратичные (или еще менее эффективные алгорит<мы) и заменяет их чаще всего такими, сложность которых не хуже n log(n). Ино<гда это лучшее, чего можно добиться.

като примери. Тук е един от трите най-често срещаните оправдания: "през ​​цялото време ме разсейва, и аз не съм разчита на него." Позволете ми, чиято е трудно? Очевидно не е мое. Аз не поеме ангажимент. Който се е ангажирал, той е трябвало да бъде, или, когато това се случи, ние считаме, че това ще разсее, или да не се разсейва, когато се опита да отвлече вниманието. Очевидно е, че ангажиментите, поети във връзка с мен, че не отдават достатъчно значение, ако се разсейват от други задачи. Но какво да кажем за понятието "по-рано това обещание?"

- Чакай, Роско - извиках аз - всичко може да се случи в живота. Ли сте да играете дупки под постовете за ограда, и тя започва да вали. Вие трябва да спре да работи. Не е ли така?

- Да, понякога вали, - каза той. - Вярвам, че чрез изготвянето на оценката си, че трябва да вземе това под внимание. Ако 50% от времето, вали, не трябва да

в оценката си се позовава на факта, че дъждът няма. Не можете да направите това предположение, а след това се оплакват, че тя започна да вали.

- Да - аз мислех - изглежда, хората рядко идват на ум такива неща. Много от задължения въз основа на факта, че всичко ще бъде перфектно. Nezhe<лание признать, что обстоятельства могут сложиться неудачно – одна из причин, приводящих к беде и невыполнению обязательств.

- Е, това е на второ място в списъка? - попитах аз.

- Тук е втората извинение ", че е по-трудно задача, отколкото очаквах." отново<таки, чья это вина? Не я оценивал задачу, а он. Если у него не было уверенности, не надо было брать на себя обязательство. Если он недоста<точно разобрался в задаче, чтобы правильно ее оценить, не нужно было брать на себя обязательство. Неожиданное прозрение посреди работы – явный непрофессионализм. То, что ты паршиво сделал оценку, не снимает с тебя ответственности за результат. Желание<то у тебя было, а компетент<ности не хватило.

О, колко пъти трябваше да го чуя! Лошите малки раси<сказывает, что трудился день и ночь, но задача оказалась намного, неизме<римо труднее, чем он предполагал. И он рассчитывает на сочувствие. Я часто обнаруживал, что мне жалко того человека, который только что ме<ня подвел. Может быть, зря?

- Вярвам - казах аз - че понякога хората поемат задължителен<ства, потому что им кажется, что они сумеют сделать эту работу. И слиш<ком часто, как мне кажется, они начинают что<то понимать, только вник<нув в задачу глубже. Наверно, прежде чем брать на себя обязательство, они должны были попросить какое<то время, чтобы изучить задачу.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!