编程的长时间过程被称之为“软件开发”或者软件工程。后者也由于这一学科的日益成熟而逐渐流行。因此，如今程序设计员可以指某一领域的编程专家，也可以泛指里编写一个复杂软件系统里某一块的一般程序员。一组为某一软件公司工作的程序员有时会被指定一个程序组长或者项目经理，用以监督项目进度和完成日期。大型软件通常经历由系统设计师掌握的一个长时间的设计阶段，然后才交付给开发人员。牛仔式的编程（未经详细设计）是不为人所齿的。两种当今常见的程序开发方式之一是项目组开发方式。使用这种方式项目组里每一个成员都能对项目的进行发