Hal pertama yang harus diperhatikan tentang rekayasa perangkat lunak adalah cakupan hal-hal yang harus dilakukan. Rekayasa perangkat lunak adalah manajemen pendekatan keseluruhan terhadap kemajuan sistem komputer untuk mengatasi masalah.
Karena unit program telah mengembangkan inovasi dan kerumitan tambahan, pengembang perangkat lunak komputer telah mencari teknik baru untuk kemajuan mereka. Rekayasa program merupakan reaksi terhadap kebutuhan itu. Rekayasa aplikasi bahkan sekarang berubah dan matang dengan cepat.
Umumnya, ketika seseorang diminta untuk menulis sebuah metode, orang lain telah menjelaskan kepadanya apa yang harus dilakukan oleh aplikasi tersebut dan mengapa programmer hanya ingin tahu bagaimana cara menulisnya. Namun, sebagai insinyur perangkat lunak komputer, kita adalah orang-orang yang peduli dengan apa dan mengapa. Rekayasa program terdiri dari seluruh rangkaian fungsi yang berkaitan dengan pemecahan masalah – mulai dari membantu pengguna menentukan masalah atau prospek, hingga menilai kepuasan pengguna terhadap solusinya.
Mengembangkan program perangkat lunak komputer mungkin melibatkan penulisan kumpulan aplikasi lengkap untuk memberi tahu perangkat apa yang harus dilakukan, menulis prosedur untuk memberi tahu orang apa yang harus dilakukan, dan menyediakan pelatihan sehingga orang benar-benar memahami cara melakukannya. Kita mungkin perlu mengubah detail dari teknik lama sehingga dapat dioperasikan oleh proses baru, menggunakan orang dan menerima mesin untuk menjalankan sistem, dan memperoleh ruang di mana mesin dan orang dapat melakukan tugasnya. Apa yang kita buat adalah proses banyak area yang bekerja sama. Upaya ini membutuhkan kesabaran dan fleksibilitas. Kita harus memperbaiki teknik tersebut jika tidak melakukan apa yang kita bayangkan, atau pembeli dapat meminta kita untuk mengubah proses hanya karena ia menginginkannya melakukan sesuatu yang sebelumnya tidak seharusnya.
Pemrograman tidak boleh lebih dari 20 persen dari keseluruhan cakupan rekayasa program, dan porsi usaha dan kerja keras yang berkaitan dengan pemrograman dapat diantisipasi akan menurun karena metode yang lebih baik digunakan untuk membangun metode perangkat lunak. Seiring berjalannya waktu, lebih banyak energi kita akan digunakan untuk mengendalikan keseluruhan metode dan lebih sedikit untuk pemrograman.