Painless Software Development Part 2

July 1st, 2010 by Kevin | Posted under development.

Before reading further, please read Painless Software Development Part 1

Continuing on our journey to achieve painless software development, we cover the next phase in the software development cycle which involves the designing of the system.

Design
The design is a critical phase of software development because the design chosen will have an impact on the software that will finally be shipped. That makes it an influential phase in the path towards painless software development. If the project is similar to earlier projects, then it is much easier to create a design based on the previously designed software systems. Experience of the earlier projects will help avoid the common pitfalls that were experienced earlier and that makes the implementation and maintenance of the new project that much easier. However if the project is a new one, it is of considerable importance to decide among various available designs and select the best one that will meet the requirement criteria of the project. In case of a maintenance project, the design process consists of looking into the existing implementation to try and see how the requirements could be implemented in the system and the impact of the changes on the existing system.

An issue that often creeps up during design and even during the implementation is significant change to the requirements. Ideally, the requirements should be frozen before the design and implementation. But in the real world, this is far from the situation. So the design should be flexible enough to be able to incorporate such changes in the requirements because you do not want a rigid design which will fall the moment there is a significant change in the requirements. Sure the design will have to be changed in such cases but we would want the changes to be as isolated as possible so that it will have as minimal an impact on the existing design and implementation as possible. That’s another key towards painless software development.

Estimation Level 1
As the design nears to completion and has reached up to a certain level, there also has to be an estimation that will cover the time required for the amount of work as mentioned in the design document. Estimation level 1 is a much more thorough estimation than level 0 because it attempts to look into how much time the actual implementation of the project will take place as per the design mentioned in the design document. It is quite difficult to estimate the work especially when it has to be done for the first time. However even if it is not possible to be accurate with the estimate, as much as possible it should try to cover how much time the major portion of the implementation will take. The amount of effort you put in to understand the amount of time required for the implementation will help you towards achieving painless software development.

 

Related Posts:

Tags:

Do you have any comments on Painless Software Development Part 2 ?

Spam protection by WP Captcha-Free