İşe yarayan programlara proje denir. Bir projeye başlanmadan önce ne tür bir ihtiyaç olduğu, bu ihtiyaca uygun programın nasıl olması gerektiği (yani tasarımı), hangi platform ya da platformlar için geliştirileceği (dektop, mobile, web gibi), bu platforma uygun programlama dilleri ve geliştirme ortamları gibi konular belirlenir ve ardından projenin geliştirilme aşamalarına geçilir.
Ek olarak belli durumlarda (örneğin proje belli bir karmaşıklığın üzerinde ise) proje yönetiminin daha iyi anlaşılması için UML diyagramları, programın algoritmasının anlaşılması için de flowchart çizimleri kullanılabilir. Bir projeyi tek bir kişi geliştirebilir. Eğer çok complex bir proje değilse. Fakat büyük projelerde grup çalışması yapılır.
Daha detaylı bilgi edinmek için Ian Sommerville´ın “Software Engineering” kitabı okunabilir. Internet sitelerinden baktığıma göre kitabın Türkçe çevirisi ve satışı mevcut.