А для чего вообще существуют программы? - Очевидно, чтобы задать целенаправленную работу компьютеру. Поэтому программа состоит из команд (инструкций), понятных компьютеру, то есть написанных на машинном языке. Но такой язык неудобен для человека, так что программа обычно создается на удобном для человека языке, а затем преобразуется.
Очевидно, что изначально разработчик должен понимать, какие действия нужно выполнить, то есть, например, он может это объяснить ( на русском языке, при необходимости используя язык математики и другие специальные языки ). Запись этих действий, наверное, можно назвать алгоритмом.
После того как начальный вариант программы написан, начинается отлаживание - процесс устранения (практически неизбежных) ошибок. Простейшие ошибки легко обнаруживаются транслятором и довольно быстро устраняются. Но доказать что в программе действительно нет ошибок - довольно сложно. Безошибочность программы доказывают логически или решением серии задач со специально подобранными исходными данными: данные должны перекрывать допустимый условиями задачи диапазон, проверять всевозможные ветвления.
Иногда возникает необходимость сопровождения программ и обучения персонала пользователя работе с программой.
Время эксплуатации программ ограничено, так как требования к ее функциям непрерывно возрастают, и программа морально устаревает.