Найти тему
Павел Шерер

А без багов писать нельзя?

Уже довольно давно я не работаю на фрилансе, но до этого долго и успешно практиковал удаленную разработку и проектирование. Из-за специфики работы мне приходилось контактировать с огромным количеством людей (да-да, вопреки расхожему мнению, успешный фрилансер – не бука-отшельник), и больше половины из них даже не знали, как расшифровывается IT. Когда очередной спринт подходил к концу или процесс кодинг-тестирование-кодинг затягивался, кое-кто из клиентов задавал презабавный в своей наивности вопрос (в разных вариациях): «А чего, нельзя без багов писать?». Иногда этот вопрос кочевал в другую плоскость: «А что, нельзя вот так сразу все продумать, чтобы посетители не отваливались?».

И недавно я услышал что-то подобное снова. Так вот, хочу ответить всем своим будущим и бывшим заказчикам: «Нет, нельзя. Меньше – можно, вообще без – нельзя.»

Запомните одну простую штуку. Создание серьёзного программного продукта – это нифига не производственный процесс. Это исследование. Вот вы знаете, как положить асфальт. И когда вам говорят, что нужно покрыть 5 квадратных кэмэ дороги, вы быстренько считаете расход, технику, амортизацию, логистику – и выдаете сроки и сумму. А теперь замените в предыдущем предложении слово «дороги» на «стены». Чуете? Никто, ни один дебил до вас не клал асфальт на пять километров стены. По отдельности – все понятно. Вот асфальт, он простой. Вот каток, он тоже несложный. Вот сорок таджиков, они умеют укладывать простой асфальт несложным катком. А вот стена, и вы о ней тоже знаете практически всё. Но вместе – какая-то пое*ень получается.

И пусть мы представим, что асфальт на этой стене оправдан (например, очередной проект мэрии мск по разгрузке дорог – куда уж тут деваться). Все равно, эти сорок профессиональных таджиков изведут вам гору асфальта, прежде чем поймут, как его класть. Вот переведенный асфальт – это баги и/или отвалившиеся пользователи.

Допустим, теперь вы умный. Вы позовете специалиста. Такого мастера по нестандартным дорожным покрытиям. Он не умеет класть асфальт, как сорок таджиков, но он способен мыслить нестандартно и знает все о силе трения. И даже он изведет вам некоторое количество асфальта в процессе поиска решения. Меньше, чем сорок таджиков, но он и денег отдельных за свою работу возьмет.

А все потому что никто до вас не использовал стандартные штуковины таким замысловатым способом.

Баги будут, готовьтесь. Для этого есть ручные и авто-тесты. И первые группы юзеров рухнут в Аид, потому что идеального проектирования и маркетинга не существует – нужен анализ реальных данных. И вообще, занимайтесь своим асфальтом, если вы слышать не хотите про "плавающие бюджеты" и "примерные сроки".

У меня всё.

P.S. И да, все аналогии лживы (с).