При упоминании главной характеристики 21-го века на первый взгляд у каждого на ум приходит слово “цифровизация и информатика”. С момента достижения компьютерной миниатюризации и изобретения Интернета практически в каждом обществе всё управляется технологическим оборудованием и его всемогущим обучением информатике включая единый государственный экзамен (ЕГЭ).
Несомненно, ЕГЭ информатика курсы стали ответом на экстраординарную растущую потребность в подготовке.
Задача информатики и программирования становится все более распространенной, но все еще есть много фактов, которые люди не знают о программистах и самом программировании.
Несколько малоизвестных фактов о программировании
Программисты не спешат обращаться за помощью, когда сталкиваются с проблемами
Это связано с тем, как люди учатся программировать. По сути, процесс обучения проходит по принципу: немного теории, один или два примера и множество упражнений. Этот формат требует от обучаемых усердной работы над упражнениями и, довольно часто решения всего самостоятельно, не обращаясь за помощью. Такое отношение неплохо и даже рекомендуется, но нужно знать, до какой степени следует прекратить самостоятельные попытки и обратиться за какой-либо помощью.
Программисты склонны сообщать о своих проблемах неполно
Этот факт связан с исследованиями в области психологии. Результаты показывают, что, когда у человека возникает проблема, он/она не сообщает полную информацию о проблеме, особенно когда она прямо или косвенно связана с задачей. Этот результат был подтвержден экспериментально с программистами. Одна из главных причин заключается в следующем: полное сообщение о проблеме рассматривается как признак слабости, который может привести к некоторому суждению о навыках и профессионализме того, кто сообщает о проблеме. Такая ситуация чаще встречается, когда речь заходит о фундаментальной ошибке, совершенной новичками.
Прогресс в программировании можно разделить на 4 этапа
Классификация прогресса программиста важна для поддержки множества показателей, связанных с разработкой программного обеспечения, а также помогает руководителям проектов и другим специалистам оценить, насколько хорош проект в целом.
Более того, также важно знать, на каком этапе разработчик должен, помимо прочего, предложить какую-то помощь, чтобы он не тратил слишком много времени, зацикливаясь на конкретной задаче, вплоть до задержки исполнения задачи.
Интересная классификация определила четыре возможных состояния прогресса:
- медленный прогресс;
- сложное программирование;
- достижение прогресса;
- погружение.
Разработчики программного кода сталкиваются с непобедимыми барьерами
Это может показаться очевидным, но очень важно обнаружить программный барьер поскольку это может привести к серьезным проблемам со сроками, моральным состоянием и доверием. Одной из основных трудностей обнаружения барьеров и их классификации является тот факт, что эта информация может быть субъективной. Другими словами, прямой вопрос программисту, сталкивается ли он/она с каким-либо преодолимым барьером, который уже влияет на результат — не всегда может быть искренним. Есть также некоторые последствия с точки зрения эго и морали, просто идентифицируя этот тип барьера в программировании.
Существует 6 типов барьеров, связанных с программированием
Помимо классификации преодолимых и непобедимых барьеров программирования, есть очень интересное исследование, в котором представлены все возможные барьеры программирования. Чтобы помочь понять барьеры, исследователи указывают на общие фразы в каждом из приведенных ниже рейтингов:
- дизайн: “Я не знаю, что должен делать компьютер”;
- отбор: “Я знаю, что делать, но не знаю, что использовать”;
- координация: “Я знаю, что использовать, но не знаю, как сочетать то, что мне нужно”;
- использование: “Я знаю, что использовать, но не знаю, как использовать”;
- понимание: “Я думал, что знаю, как использовать X, но это делает не то, что я ожидал”;
- информация: “Я понимаю, что произошло, но я не могу проверить«.
Программисты тратят примерно 30% времени на просмотр исходного кода
Люди, которые занимаются программированием, знают, что большую часть времени приходится использовать инструмент редактирования исходного кода. Однако, как распределяется время между задачами редактирования, остается неясным с научной точки зрения. Согласно важному исследованию, было обнаружено, что примерно 30% рабочего времени программиста тратится не на редактирование текста (путем включения, редактирования или удаления), а на переход между несколькими файлами по исходному коду. Навигация включает в себя исследования, наблюдения, сбор информации, запоминание и другие действия.
Можно сказать, что программирование — это деятельность, третья часть которой является просто созерцательной.
Производительность удаленных программистов ниже, чем производительность программистов в офисах
Это утверждение о производительности обсуждается, особенно когда такие рутины, как домашний офис, удаленная работа и глобальные проекты по разработке программного обеспечения, становятся все более востребованными. В любом случае, есть конкретные доказательства, основанные на нескольких показателях программного обеспечения, что на самом деле удаленные программисты производят не так много, как программисты, работающие вместе в одном месте.
Это действительно имеет смысл, если проанализируются факты, например, отсутствие общения с другими людьми. Фактически, неформальное общение является основным фактором, влияющим на результаты, потому что задавать вопрос во время перерыва на кофе очень важно чем решать проблему в одиночку.
Большинство программистов — молодые и мужского пола
В настоящее время распространено мнение о мужской работе программиста из-за небольшого числа женщин. Однако, как показывают некоторые данные, это не единственный профиль, который имеет низкую представленность в программировании. Это может иметь серьезные последствия, когда дело доходит до создания кода для приложений, которые должны адекватно взаимодействовать с определенными группами пользователей.
Основные сообщения об ошибках, время выполнения и ошибки компиляции во время выполнения и среднее время их устранения
Сообщения об ошибках очень специфичны для каждого языка, проблемы и ошибки компиляции во время выполнения. Хотя проводились исследования на очень специфическом контексте (изучение языка Java), можно провести сравнение с другими сценариями и ситуациями и доказать, что большая часть наиболее распространенных ошибок возникает в разных контекстах.
Обслуживание программного обеспечения отнимает более 50% усилий
Обслуживание программного обеспечения включает в себя манипулирование устаревшим кодом. Существует исследование, посвященное усилиям, которое в результате показывает, что разделение между созданием и обслуживанием неравномерно.
В исследовании, в котором упоминается стоимость более 50% усилий, затрачиваемых на обслуживание программного обеспечения, также подробно обсуждается эволюция программного обеспечения в направлении его обслуживания и необходимые задачи. Безусловно, прежде чем принимать решение о начале разработки решения с нуля или работе с существующей базой кода необходимо разобрать код.
На обслуживание программного обеспечения уходит от 40% до 90% затрат
Одно из главных правил деловых людей гласит, что привлечь нового клиента гораздо дороже, чем удержать существующего. Однако, согласно исследованиям в области разработки программного обеспечения реальность несколько иная, когда дело доходит до кода: поддержание работоспособности кода с помощью задач технического обслуживания может стоить до 90% всех затрат на проект.
Работа по сопровождению программного обеспечения делится на 4 основные задачи
Продолжая говорить о поддержке исходного кода, исследование, оказавшее большое влияние на сообщество разработчиков программного обеспечения, классифицировало четыре практики:
- улучшение: предполагает изменения в функциональности;
- адаптация: изменения в среде адаптируются к требованиям;
- корректирующие: действия по исправлению ошибок;
- превентивные: улучшения, позволяющие избежать проблем в будущем.
Классификация методов технического обслуживания очень важна для облегчения измерения, систематизации и отслеживания ошибок, группировки функциональных возможностей в новых версиях и управления работой программистов.
Затраты на исправление ошибок после внедрения в 10 раз выше, чем на этапе разработки, и в 100 раз больше, чем на этапе проектирования
Этот факт является классикой в области технологий и привел к эволюции традиционных процессов разработки программного обеспечения до того, что мы имеем сегодня. Основным моментом здесь является выявление высоких затрат при недостаточном внимании к созданию и проектированию программного обеспечения.
Экспертная проверка кода может выявить до 60% ошибок
Проверка кода, выполненная другими людьми, будь то в форме парного программирования или нет, действительно эффективна. Существует множество исследований на эту тему, но одно из ключевых из них указывает на то, что до 60% ошибок могут быть обнаружены (но не обязательно исправлены), когда более одного человека просматривают исходный код.
Эти факты о программировании, о которых вы, вероятно, не знали, влияют на методы, включающие гибкие процессы и другие способы разработки программного обеспечения, основное внимание в которых уделяется действиям, шагам, организации и другим навыкам.