กระบวนการในการพัฒนาซอฟต์แวร์เป็นนำเอากิจกรรมที่เกี่ยวข้องกับการพัฒนาซอฟต์แวร์มาจัดเป็นโครงสร้างโดยมีเป้าหมายคือการสร้างซอฟต์แวร์ที่มีประสิทธิภาพและสามารถบำรุงรักษาได้ง่าย กระบวนการจะกล่าวถึงว่าเราต้องการสร้างอะไร ใครเป็นคนสร้าง ใครเป็นคนระบุความต้องการ ใครเป็นคนถ่ายทอดความต้องการมาเป็นรายละเอียดของสิ่งที่ต้องทำ มีใครบ้างที่ต้องเข้ามามีส่วนร่วมในกระบวนการ แต่ละฝ่ายที่เข้ามามีส่วนร่วมในกระบวนการจะร่วมมือกันอย่างไร กิจกรรมที่ต้องทำในขั้นตอนการพัฒนามีอะไรบ้าง และระยะเวลาที่จะใช้ในการพัฒนา
การพัฒนาซอฟต์แวร์เป็นเรื่องของการทำงานร่วมกันของหลายๆฝ่ายประกอบด้วย ฝ่ายพัฒนาซึ่งเป็นผู้เขียนโปรแกรม ฝ่ายประกันคุณภาพ (quality assurance หรือ QA) ซึ่งเป็นผู้ที่ประเมินว่าซอฟต์แวร์จะใช้งานได้จริง ฝ่าย DevOps ซึ่งเป็นผู้ติดตั้งและดูแลให้ซอฟต์แวร์ใช้งานได้อย่างไม่ติดขัด ฝ่ายจัดการที่จะช่วยประสานงานฝ่ายต่างๆเข้าด้วยกัน ซึ่งทั้งหมดที่กล่าวมานี้เป็นฝ่ายต่างๆทางด้านไอที แต่ยังมีฝ่ายที่ไม่ใช่ไอทีด้วย เช่น ฝ่ายขาย ฝ่ายการตลาด ฝ่ายสนับสนุนการใช้งาน (support/call center) หรือแม้แต่ผู้ใช้งานเองที่สามารถมีบทบาทเป็นผู้ให้ความต้องการรวมถึงข้อเสนอแนะในระหว่างการพัฒนาเพื่อให้แน่ใจว่าได้ซอฟต์แวร์ที่ตรงตามความต้องการ ฝ่ายต่างๆทั้งหมดนี้จะมีภูมิหลัง ความรูั เป้าหมาย และข้อจำกัดที่แตกต่างกันไป นั่นหมายถึงการมีข้อคิดเห็นที่หลากหลายในการพัฒนาซอฟต์แวร์ ดังนั้นการสื่อสารที่มีประสิทธิภาพและเป็นรูปธรรมจึงเป็นเรื่องสำคัญเพื่อให้ทุกฝ่ายมีความเข้าใจที่ตรงกันและสามารถสรุปความต้องการในการพัฒนาได้ตรงกัน การจะทำให้ได้ข้อสรุปที่มีประสิทธิภาพต้องอาศัยกระบวนการและเอกสารที่จะช่วยให้ทุกฝ่ายเข้าใจถึงสิ่งที่จะเกิดขึ้น ซึ่งแต่ละฝ่ายก็จะใช้เอกสารและกระบวนการที่แตกต่างกันไป
เอกสารในการพัฒนาสามารถแบ่งได้เป็น 4 ชนิดหลักๆคือ รายละเอียดของสิ่งที่ต้องการพัฒนา (specification) ซึ่งต่อไปจะเรียกว่าสเปค เอกสารสำหรับการพัฒนา (developement) เอกสารสำหรับการประเมินคุณค่า (validation) และเอกสารสำหรับการติดตั้งและปรับปรุง (deployment and evolution) เมื่อพูดถึงสเปคเราจะนึกถึงการประกาศภาระกิจ (mission statement) เป้าหมายทางธุรกิจ (business objective) และสิ่งที่ต้องการ (requirement) ซึ่งผู้ที่ต้องมีส่วนร่วมจะครอบคลุมตั้งแต่ผู้บริหาร ฝ่ายขาย ผู้ใช้งาน ที่ต้องมาร่วมกันกำหนดว่าต้องการอะไร แต่ถ้าเป็นเรื่องการวางแผนการออกแบบระบบงาน (architectural plan) การวางแผนด้านการออกแบบ (design plan) และการวางแผนในการพัฒนา (implementation plan) ผู้ที่ต้องมีส่วนร่วมจะครอบคลุมผู้บริหาร /ฝ่ายพัฒนา และฝ่ายประกันคุณภาพ ที่ต้องมีความเข้าใจที่ตรงกันในแต่ละขั้นตอน เอกสารสำหรับการตรวจสอบ เช่น แผนการทดสอบ (test plan) แผนการประเมินความเสี่ยง (risk assessment plan) จะถูกใช้โดยฝ่ายพัฒนาและฝ่ายประกันคุณภาพ เพื่อให้แน่ใจว่าแนวคิดและความเข้าใจตรงกัน เอกสารสำหรับการติดตั้งและปรับปรุงจะเป็นแผนงานสำหรับฝ่าย DevOps ซึ่งรวมถึงกลยุทธ์ในการบำรุงรักษาและการปรับปรุงในอนาคต แต่ถึงแม้ว่าจะมีเอกสารที่ต้องใช้ในกระบวนการหลายชนิดแต่ไม่ใช่ว่าทุกโครงการจะต้องใช้เอกสารทั้งหมดนี้ จะเห็นว่าเอกสารเป็นเครื่องมือสำคัญที่ทำให้แน่ใจว่าทุกฝ่ายเข้าใจตรงกันซึ่งจะช่วยลดความเสี่ยงในการพัฒนาของโครงการ
สำหรับกระบวนการในการพัฒนาซอฟต์แวร์สามารถแบ่งออกได้เป็น 2 ชนิดหลักๆคือ กระบวนการแบบดั้งเดิม เช่น กระบวนการ waterfall และกระบวนการ spiral และกระบวนการแบบสมัยใหม่ เช่น กระบวนการ XP กระบวนการ TDD และ กระบวนการ Scrum ซึ่งใช้ร่วมกับวิธีการแบบ agile อย่างไรก็ตามการเลือกกระบวนการที่จะใช้ขึ้นอยู่กับลักษณะและข้อจำกัดของโครงการ ประสบการณ์ และความพร้อมของทีมงาน รวมถึงลักษณะของผลลัพธ์ที่ต้องการ