Как на первом курсе учили - не знаете, как программировать - рисуйте блок-схему. Шутка, конечно, кроме универа ни разу блок-схему и не рисовал.
Если серьёзно, занимаюсь веб-разработкой и иногда бывают сложные специфические задачи, прям "сломай мозг", тогда я использую моделирование баз данных. В институте это был продукт ErWin, но я обхожусь бумагой и ручкой. Смысл в том, чтобы уложить задачу в модель данных, очень структурирует мысли, и, когда все нужные данные улеглись на бумаге, обычно становится всё понятно, и сразу ясно, что и как надо делать. Мне вполне хватает