Поделия в разработке ПО

Oleg Puzanov
Jul 30, 2019 · 2 min read
Image for post
Image for post

Впервые про поделия в разработке ПО я услышал от Вадима Глебова, за что ему большое спасибо.

Что является критерием завершенности задачи, над которой работал программист? Почему просто написать код и положить его в репозиторий недостаточно.

Самый распространенный на мой взгляд акт завершения задачи разработчиком это:

  1. Запушил код в репозиторий с пояснительным текстом коммита и номером задачи
  2. Написать в комментариях к задаче “Готово”

Казалось бы не придраться. Код есть, таску закрыл. Вроде как бы где-то работает. Однако, есть самый простой и адекватный метод проверки готовности задачи. Это вопрос от тимлида: “Докажи”.

Грубо говоря, закрыл программист задачу, что-то сделал, а вы ему — докажи. Пускай реально докажет, что все что он сделал работает и работает правильно. Пинки задачами между отделом разработки и отделом контроля качества не считаются. Речь идет о критерии завершенности задачи для самого разраба, для его команды, для тимлида.

Всегда задавайте себе вопрос: “А как я могу доказать то, что я решил задачу?”. Чем результат моей работы отличается от поделия на выброс? Поделие — классное определение говнорезультата. Помните, на уроках труда в школе делали кривые и косые табуретки и мастак благим матом орал “Что это блять за поделие?!”. Садился на нее и хрупкая табуретка под его жопой, трескаясь, ломалась и он под хохот класса падал на пол.

Поэтому, чтобы не выпускать из под себя поделия нужно всегда иметь неопровержимые доказательства того, что код ваш решает задачу и работает. Самые простые и базовые вещи: это тесты, которые работают в изоляции и вместе со всеми тестами на CI. Пройденными тестами ты доказываешь самому себе, команде и проекту, что твой код рабочий и что твой код не ломает другой код.

Чтобы снизить риск создания поделий в проекте можно создать строгий пайплайн в CI, который будет отбривать код без тестов, с ошибками линтера, с ошибками анализатора сложности и другие. Но тестов и линтера для современного тулинга вполне достаточно.

Engineering your growth. Mad Devs is the team behind large scalable projects, globally.

Oleg Puzanov

Written by

Mad Devs Blog — Custom Software Development Company
Oleg Puzanov

Written by

http://github.com/puzanov

Mad Devs Blog — Custom Software Development Company

Mad Devs is a Cambridge-headquartered IT company developing enterprise-level software solutions for finance, transportation & logistics, security, edtech, and advertising industries. For more information about us, please browse our website: https://maddevs.io/

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store