プログラミングをするときに係りするタスクには、テスト、デバッグ、ソースコードのメンテナンス、ビルドシステムの構築、コンピュータープログラムの機械コードなどの生成されたアーティファクト(英語版)の管理などがある。
ソフトウェア工学(softwareengineering)は、エンジニアリングの技術をソフトウェア開発の実践と組み合わせたものである。
「リバースエンジニアリング」はこの逆のプロセスを表す。
「ハッカー」とは、技術的な知識を使って問題を落着する技術のあるすべてのコンピュータの専門家を表す言葉であるが、一般的な用語では「安全対策ハッカー(英語版)」と同じニュアンスでも使われている。
これらのプロセスはプログラミングのプロセスの一部と考えられるが、広義のプロセスはよく「ソフトウェア製作」と呼ばれ、実際にコードを記述する行為にそれに対しは、「プログラミング」、「実装」、「コーディング」という名前が使われることが多い。