Что должен делать программист когда ему поступает новая задача?
Лично для меня ответ прост и понятен — надо узнать какой цели хотят добиться решением задачи и какой результат ждут. При это сама задача уже не является аксиомой, а только одним из вариантов решения. Надо понимать, что задачи часто приходят от не подготовленных людей, которые могут не знать каких-то тонкостей реализации или особенностей используемой платформы. Если бездумно следовать задаче, то рано или поздно возникнет патовая ситуация, в которой будет страдать как сам разработчик, так и конечный пользователь...