Perl (Y-combinator/Functional)
print sub {
my $f = shift;
sub {
my $f1 = shift;
$f->( sub { $f1->( $f1 )->( @_ ) } )
}->( sub {
my $f2 = shift;
$f->( sub { $f2->( $f2 )->( @_ ) } )
} )
}->( sub {
my $h = shift;
sub {
my $n = shift;
return 1 if $n <=1;
return $n * $h->($n-1);
}
})->(5);
Все после 'печати' и прежде чем '-> (5)' представляет подпрограмму. Факториальная часть находится в финале "sub {...}". Все остальное должно реализовать Y-combinator.
Вы не можете доказать это вне рамок тестов, и, если нет пуленепробиваемой спецификации (которой никогда не бывает), тесты никогда не докажут ничего, кроме очевидного.
Что вы можете действовать как команда - это ответственно подходить к разработке программного обеспечения и не поддаваться соблазну писать плохой код, чтобы угодить менеджерам, требуя необходимых ресурсов и временных ограничений, и относиться ко всему процессу как к ремеслу, как к работе. Лучшие скульпторы эпохи Возрождения знали, что никто не увидит задние статуи, которые будут размещены в углах соборов, но все же приложили усилия, чтобы убедиться, что они не продаются недорого.
В команде единственный способ доказать надежность вашего программного обеспечения - это нарастить послужной список: делать все правильно с самого начала, исправлять ошибки перед внедрением новых функций,
Я думаю, это ставит телегу впереди лошади. Это равносильно тому, что пехотинец пытается объяснить генералу, что такое боевые маневры и почему так важна защита своих флангов. Если руководство может ' Чтобы отличить качественный код от большого комка грязи, вы всегда получите большой комок грязи.
К сожалению, невозможно «доказать», что ваше программное обеспечение работает без ошибок (реклама windows xp всегда раздражала меня, объявляя «самую безопасную версию Windows когда-либо», что невозможно доказать при выпуске). Задача руководства - настроить и обеспечить выполнение процесса контроля качества и установить показатели того, как на самом деле выглядит конечный продукт, и какой уровень ошибок или неожиданного поведения приемлем в окончательной версии.
Тем не менее, если вы маленький и установить свои собственные политики обеспечения качества без особого участия руководства. Я думаю, было бы выгодно написать базовый процесс обеспечения качества и дать согласие на его выполнение руководством. Для наших веб-приложений в настоящее время мы поддерживаем 4 браузера - и руководство знает об этом - поэтому, когда приложение ломается в каком-то непонятном портативном браузере, все ясно понимают, что это не то, для чего мы разработали приложение. Это также дает хорошие возможности для найма дополнительных ресурсов для разработки или тестирования, когда руководство решает начать тестирование для x.
Во всех случаях, кроме тривиальных, вы не можете «доказать», что ваше программное обеспечение является правильным.
Это роль U ser Принятие Т оценка: показать, что был достигнут приемлемый уровень полезности.
Как однажды сказал Билли Джоэл: «Это всегда было вопросом доверия»
Вы должны понимать, что разработка программного обеспечения - это «черная магия» для всех, кроме тех, кто пишет программное обеспечение. Для остальной части вашей компании неочевидно (на самом деле, довольно противоречиво), что многие из ваших инициатив приводят к повышению качества и снижению риска невыполнения сроков и / или бюджета.
Ключ состоит в том, чтобы построить доверительный, уважительный отношения между разработкой и другими частями бизнеса. Как вы укрепляете это доверие? Что ж, это одна из тех проблем обидчивых людей ... вам нужно немного поэкспериментировать. Я часто использую следующие инструменты:
Если у вас хорошие отношения с вашим менеджером, вы можете предложить им прочитать несколько книг, посвященных разработке программного обеспечения, чтобы они могли понять передовой опыт отрасли.
Также я хотел бы указать вашему начальнику, что запрещение вам действовать как профессиональные разработчики программного обеспечения вредит вашей карьере. Вы действительно хотите работать там, где вы сможете расти профессионально, а не там, где вы станете хакером.
Я хотел бы указать вашему начальнику, что если вы не позволите вам выступать в качестве профессионального разработчика программного обеспечения, это вредит вашей карьере. Вы действительно хотите работать там, где вы сможете расти профессионально, а не там, где вы станете хакером. Я хотел бы указать вашему начальнику, что если вы не позволяете вам выступать в качестве профессионального разработчика программного обеспечения, это вредит вашей карьере. Вы действительно хотите работать там, где вы сможете расти профессионально, а не там, где вы станете хакером.Я часть команды, работающей над большим проектом для государственного заказчика. Первый модуль фазы 1 был огромной катастрофой, команда была неуправляемой, не было команды QA, и у разработчиков не было мотивации работать лучше. Вместо этого менеджер продолжал кричать и вычитать зарплату людям, которые не работали сверхурочно !!
Клиент, да, не спрашивайте об этом, они были очень разозлены, но они остались с нашей компанией, потому что знают, что никто не понимает, что такое бизнес, как мы.
Итак, какое было решение:
Мы скоро доставим 4-й модуль системы, и как один из сотрудников службы поддержки я могу сказать, что его не менее 95 % без ошибок. Это огромный скачок по сравнению с нашими первыми модулями.
Сегодня у нас есть мощная команда разработчиков, квалифицированный QA и эксперт по исправлению ошибок.
Извините за длинную историю, но именно так наша команда (в течение 4 месяцев) доказала свою эффективность. менеджер и клиент, что мы надежны и просто нуждаемся в правильной среде.
Два дня спустя я получил письмо от генерального директора, в котором он благодарил меня за мои усилия и давал мне 2 дня отпуска.Мы скоро доставим 4-й модуль системы, и как один из сотрудников службы поддержки я могу сказать, что его не менее 95 % без ошибок. Это огромный скачок по сравнению с нашими первыми модулями.
Сегодня у нас есть мощная команда разработчиков, квалифицированный QA и эксперт по исправлению ошибок.
Извините за длинную историю, но именно так наша команда (в течение 4 месяцев) доказала свою эффективность. менеджер и клиент, что мы надежны и просто нуждаемся в правильной среде.
Два дня спустя я получил письмо от генерального директора, в котором он благодарил меня за мои усилия и давал мне 2 выходных.Вскоре мы доставим 4-й модуль системы, и как один из сотрудников службы поддержки я могу сказать, что его минимум 95 % без ошибок. Это огромный скачок по сравнению с нашими первыми модулями.
Сегодня у нас есть мощная команда разработчиков, квалифицированный QA и эксперт по исправлению ошибок.
Извините за длинную историю, но именно так наша команда (в течение 4 месяцев) доказала свою эффективность. менеджер и клиент, что мы надежны и просто нуждаемся в правильной среде.
Простите за длинную историю, но именно так наша команда (в течение 4 месяцев) доказала менеджеру и клиенту, что мы надежны и просто нуждаемся в подходящей среде.
Простите за длинную историю, но именно так наша команда (в течение 4 месяцев) доказала менеджеру и клиенту, что мы надежны и просто нуждаемся в правильной среде.