Разложение в стек “разработка программного обеспечения” был уже пост СММ-АК-2024. Метод как объект первого класса где альфу метода раскладывал на подальфы и частично это обсуждалось в СММ-АК-2024. Стратегирование метода работы
Там же был хороший комментарий от @viktor-agroskin
Метод “разработка программного обеспечения” очень комплексный. Его как раз хорошо бы разложить по спектру практик разных уровней, где внизу математика, где-то в середине написание кода, выше управление разработкой. Тогда станет видно, куда привязаны очень разные дисциплины и инструменты. Например, теории алгоритмики и моделирования данных - на уровне написания кода, теории менеджерские (agile, job to be done и т.п.) - на уровне управления разработкой. Аналогично и с инструментами.
Разложил в стек мастерство “разработка программного обеспечения”, вот что из этого вышло. Первая версия
культура | роль адепта | учитель(создатель) | разложение культуры на методы работы и предметы методов |
---|---|---|---|
ИТ-сообщество и индустрия разработки | Участник сообщества / Инноватор | Лидер мнений / Пионер отрасли | - технические обсуждения на форумах - публикации - тестирование новых технологий - проведение встреч и конференций - организация профессиональных групп и сообществ - социальный капиталл - поддержка молодых специалистов - разработка стандартов |
Вклад в open-source проекты | Контрибьютор | Мейнтейнер проекта | Контрибьютор: - документирование проектов - добавление нового функционала - фикс багов Мейнтейнер - проверка и принятие PRs - модерация обсуждений - контрол за соблюдением стандартов - работа с коммьюнити |
Управление проектами и процессами разработки | Менеджер проекта / Скрам-мастер | Руководитель разработки | - фасилитация проектного процесса - планирование спринтов - отслеживание задач - координация с командой - распределение задач - части XP: малые релизы, адаптивное планирование - работа с командой над улучшением процессов и взаимодействием с другими отделами - ретроспективный анализ и постмортем - методики анализа/метрик(burndown chart) - Kanban/Lean/Agile |
Архитектура программного обеспечения | Системный архитектор | Главный архитектор | - выбор подходящих паттернов проектирования - DDD - анализ архитектурных изменений - оценка технических рисков - согласование архитектурных решений с долгосрочной стратегией - проверка состояния технического долга |
Разработка программных систем | Разработчик | Технический лидер / Ментор | - анализ гипотез(технических требований) и написание кода на их основе - работа с отзывами и ревью кода - тестирование(unit, integration) для отладки и повышения надежности - выбор оптимальных решений - мониторинг/логирование - безопасность - TDD - части XP: парное программирование, непрерывная интеграциия |
Инструменты разработки и среды | Пользователь инструментов разработки | Эксперт по инструментам / “DevOps”-инженер | - использование редакторов / IDEs / GithubCopilot(LLMs) - профили, .dotfiles - CI/CD pipelines для автоматизации - git, mercurial - использование облачных ресурсов - контейнеризация/k8s |
Программирование и кодирование | Программист/кодер | Наставник по языкам программирования | - чистый код - DRY - SOLID - паттерны проектирования - соблюдение код-стандартов - статический анализ кода |
Алгоритмы и структуры данных | Инженер-программист | Эксперт по алгоритмам | - решение задач с использование подходящих структур данных - оптимизация алгоритмов - теория сложности(big O notation) - параллельные и распределенные алгоритмы - графовые алгоритмы |
Основы информатики и компьютерных наук | Студент информатики | Преподаватель информатики | - использование базовых знание по логике/структур данных/алгоритмам - использование базовых понятий вычислений - теория автоматов - криптография, безопасность - компиляторы, интерпретаторы |
Математическое мышление | Аналитик / Логик | Учитель математики / Логики | - аналитические методы - методы приближенных вычислений - решение математических задач и уравнений - применение методов логического анализа к проблемам - использование формальной нотации для решения задач - теория графов - комбинаторика - статистика, ТеорВер - матрицы и линейная алгебра |
Когнитивные и проблемно-решающие навыки | Обучающийся | Тренер по когнитивным навыкам / Специалист по развитию критического мышления | - метод “5 почему” - составление ментальных карт - мышление письмом - собранность - дебатирование - использование критического анализа - мозговой штурм - матрица Эйзенхауэра - системное мышление |
Жизнедеятельность и здоровье | Здоровый человек | Врач / Специалист по общему здоровью | - физическое здоровье(упражнения, питание, сон, глубокое дыхание) - ментальное здоровье(стресс-менеджмент, WLB, медитации) - самообслуживание(чекапы, отыдх) |