С любым программистом рано или поздно случается ситуация, когда перед ним поставлена задача, которую он попросту не может понять. Вариант начать работу в надежде, что все само собой наладится и наступит озарение – не самый правильный. Равно, как и признание шефу, что выполнить задание Вы не в состоянии по причине непонимания того, что требуется сделать.
Жизнь часто, а программирование едва ли не каждый день, ставит задачи, которые на первый взгляд совершенно непонятны. Но решение подобных проблем принесет новый опыт, расширит багаж знаний и даст возможность приобрести полезные навыки. Давайте рассмотрим, как построить надежную переправу, соединяющую поставленные требования с нужным для решения задачи объемом знаний и приобретенными умениями. Слушатели, которые пришли в TreeIT на курсы программирования онлайн, изучают подобные проблемы.
Необходимое условие решения задачи
Требования к решению поставленной задачи могут различаться. То, каким образом ставится техническое задание, во многом определяет возможность и способы её решения.
Программист может получить задачу, оформленную на сотне страниц, содержащую множество требований с описанием мельчайших подробностей и деталей. Может случиться и другой вариант – задание будет поставлено мимоходом, а решить его нужно в кратчайшие сроки. Главное — программисту необходимо в обоих вариантах понимать поставленную задачу, иначе грамотно приступить к её решению просто нереально. Понимание задачи – это ключевой момент в поиске её решения!
Этапы решения задачи согласно полученного ТЗ
Быстрое понимание задачи ускорит решение. Для выполнения задания, которое сначала кажется непонятным, нужно составить поэтапный план внедрения проекта в жизнь.
Шаг первый – проводим анализ задачи
Сначала требуется разобраться, что нужно делать. Не как, а именно – что! Важным моментом является понимание этой разницы. Непродуманная реализация без тщательного разбора задания может привести к неразберихе и неудачному результату.
Для анализа последовательно:
- производим классификацию задачи – определяем, что именно необходимо сделать, чтобы её решить;
- формулируем главную цель поставленного технического задания парой предложений, как будто отвечаем на вопрос о том, над чем конкретно я сегодня работаю;
- выделяем самые важные вещи, которые должны быть сделаны;
- определяемся с решаемыми проблемами.
Глубокое понимание поставленной задачи и целей – залог принятия грамотных и разумных решений. Это позволит реализовать проект так, чтобы он отвечал поставленным бизнес-требованиям. Выявление плохих решений и бессмысленных задач помогут сэкономить силы и время на проведение поисков, которые не приведут к успешному выполнению работы.
Шаг второй – выявляем важные моменты и проводим оценку требований
Выяснив, что предстоит сделать, переходим к следующему этапу – нужно разобраться, каким образом будет решаться поставленная задача.
Для начала нужно прояснить значение ключевых терминов, которые имеют отношение к ТЗ. Они могут применяться в разных областях – бизнесе, программировании, дизайне и прочее. Нужно проверить, что есть чёткое понимание их значения и сути, иначе нельзя быть уверенным в выполнении задания. Вычленение и определение важных терминов – вот залог корректного решения поставленной задачи.
Далее определяемся, каким образом следует решать задачу. Этот процесс зависит от конкретной поставленной задачи и места работы. Некоторые компании всегда предоставляют подробные инструкции выполнения ТЗ. В других никогда ничего не объясняют, указывая лишь на то, что должно получиться в результате работы. Выбор способа реализации поставленных требований полностью ложится на плечи разработчика.
На практике чаще всего случается средний вариант, поэтому следует начать знакомиться с имеющимися в наличии инструкциями. Разобравшись в задаче, важно четко выяснить для себя, возможно ли решить поставленную задачу, и получить результат, обозначенный в ТЗ. Кроме того, следует убедиться, что получение запланированного результата сможет решить конкретную проблему.
Получив уверенность в разрешении всех проблем и хорошо осмыслив детали предстоящей работы, можно смело начать её выполнение. Иначе, во избежание будущих конфликтов, придется выполнить третий шаг.
Шаг третий – критически оцениваем проблему
К третьему этапу необходимо быть уверенным в понимании как поставленной задачи, так и способа её решения. Невыясненным остается одно обстоятельство – является ли решение правильным? Для создания качественного продукта необходимо, чтобы каждый член команды имел возможность указать на ошибочные, с его точки зрения моменты. Но, говоря о неверности каких-либо вещей, нужно аргументировать свои слова конкретными и тщательно продуманными доводами. Другими словами, не соглашаться нужно грамотно.
Основными правилами грамотного высказывания своей точки зрения являются:
- Вы должны быть на 100% уверены в понимании того, с чем не согласны. Только при доскональном изучении и разборе проблемы следует выражать несогласие с неверными на ваш взгляд моментами.
- Субъективные причины – это не повод для несогласия. «Не нравится» – не аргумент, а вот «это решение может привести к проблеме» — является объективным доводом.
- Следует тщательно продумать и подготовить доводы для подкрепления своих слов. Если нет объяснения неверности какого-то решения, можно ли быть абсолютно уверенным в своей правоте? Стоит четко обозначить причины неправильности решения и предложить шаги по исправлению ошибки. В случае отсутствия идей по разрешению обнаруженной проблемы, будет разумным сразу об этом сообщить.
- Стоит придерживаться аккуратности в выражении несогласия с другими членами команды. Необходимо иметь терпение для ознакомления с их мнением, понять приведенные аргументы. И только если доводы не показались убедительными – выражать несогласие.
О важности умения не соглашаться правильно
Объективное несогласие с предложенным к выполнению техническим заданием, содержащим косяки в сформулированных требованиях или конечном результате – проявление личной ответственности за общекомандное дело. Для гарантии того, что в случае несогласия Вы сможете привести правомерные и убедительные доводы, следует знать, как продемонстрировать их объективность.
Наличие хотя бы одного из нижеперечисленных фактов покажет вашу компетентность и правоту:
- Недостаточная информированность решения. При недостаточной информированности приятное решение будет исходить из неполной информации. Это происходит, если составители технического задания не располагали всеми необходимыми данными.
- Превратно изложенное решение. Указанная в ТЗ неверная информация приведет к превратно информированному решению. Составители задания могут полагать, что система имеет возможность совершения определенных действий, а на практике это не предусмотрено или попросту невозможно.
- Нелогичность решения или поставленной задачи. При нелогичности постановки задачи или решения, выполнение таких требований может принести вред, а не пользу. Поэтому выявление подобных косяков чрезвычайно важно для успешной реализации проекта.
- Неполнота решения. Иногда неполнота решения специально предусмотрена, например, при создании минимально жизнеспособного продукта. Поэтому следует понимать, что на начальной стадии есть возможность отложить полнофункциональную реализацию заданий, которые в этом проекте бессмысленны.
Как показывает практика, неполнота решения считается таковой, если полученный результат не приводит к выполнению поставленной задачи. Или когда все перечисленные выше этапы не являются достаточными для создания работоспособного продукта или полноценной возможности.
Наши преподаватели, которые ведут онлайн-курсы программирования, поделятся опытом решения сложных ситуаций в работе с ТЗ. Мы начинаем уроки программирования с нуля и постепенно повышаем уровень сложности. Не имеет значения – какая у вас базовая подготовка. Мы предлагаем основы программирования для чайников и проводим повышение квалификации для опытных программистов.