There are three levels at which a developer can operate during software development.
First Level or basic level is when someone is told what needs to be done. He/She does what is told. At this level the design is handed over to you and you are just implementing someone else’s design without fully understanding implications of design.
Change Area :– Implementation. Software Design is fixed but implementation is altered by team.
Example :– Software company is provided with design documents with object class specifications and asked to implement the software.
Second Level or intermediate level is when someone is given a requirement and allowed to design and implement the software without major restrictions on how the requirement is designed or implemented. At this level developer is given freedom to choose different implementation options which achieve the desired requirement.
Change Area :– Software Design and Implementation. Requirements is not allowed to change by team.
Example :– Software company is provided with use case documents or requirement documents and asked to implement the software according to specifications given in requirement documents.
Advanced Level is when someone understands the business goals of the application and is allowed to choose requirements, design and implementation to achieve the business goal. As Project Managers, Product Owners, Analysts and Developers start working on designing/implementing features and requirements, they understand the business goals and why something is being build.
Change Area :– Software Requirements, Design and Implementation. Business goal can not be changed by team.
Example :– Project team is formed with co-sourced members of business and software company and Teams goes through Inception process. During Inception process, the team gains first hand understanding of business goals and how they relate to features/requirements.