In the name of God Toward Better Software Development: Software Engineering Principles By: Mohsen Sadighi Moshkenani Chapter 2
Two aspects In any development you are faced with two major aspects: 1. Technical 2. Management Technical and management issues are mixed together You should consider both Example in construction Example in software development
Management aspect of software development Includes administrative,executive aspects and methods which provides necessary preconditions of the development; in a systematic manner Included issues: Topic selection Colleague selection Tool selection Planning and scheduling Project control and management Personnel and knowledge management Cost and time estimation Legal issues
Technical aspect Refers to technical issues and method, which makes the development possible, in a systematic manner Includes: Selection of production model Requirement analysis User interface Design Tool selection Risks and its control methods Selection of testing model Reusability
Note Some issues are in both categories Technical and management issues have mutual influence on each other They are mixed together Distinction of technical and managing aspects are for: Better understanding More attention In our country, basic problems are in management aspect of the development
Software development (SD) problems SD is a kind of development; so it inherits all development issues; such as investment, market, resources. SD also has some special features, including: Fast change (hardware, software, methods, expectations) Ability to change; flexible nature Non-visible expenses SD process is not visible (which makes its management too difficult) Forming new expectations within development Forming new ideas Lack of supporting laws and its practical execution
Special SD problems in Iran Non expert people Frozen people Unstable people Wrong believes Lack of SE knowledge; or its absence in real practice No believe of SE Unclear government support Governmental flavor of major projects Lack of standards, or Lack of proper software research