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