Page 40 - DCAP304_DCAP515_SOFTWARE_PROJECT_MANAGEMENT
P. 40

Software Project Management




                    Notes             Software Requirements Specifications (SRS)
                                      High Level Design (HLD), written by R&D
                                      Low Level Design, written by the R&D
                                      Project Schedule
                                      Software Quality Assurance Plan (SQA)
                                   There are many templates and different names to the above documentation. Nevertheless, the
                                   important thing is that their survival requires the position holder to think before working on
                                   the project. The documents need to be stored and updated during the life of the project as it is
                                   done in a source code case (out of date document is a bug).

                                       !

                                     Caution  Badly written or no MRD or SRS document can cause project failure.
                                   Bad or no Software Requirements

                                   As much as it sounds strange, in some software projects SRSs (Software Requirement Specifications)
                                   do not exist or are badly written. There are many types of SRS formats and even if it was only
                                   one common template, the content would vary from company to company. It is a question of
                                   how well-defined the requirements are. We have never heard about a well-defined SRS that
                                   caused projects to fail, but I  am familiar  with the  opposite. A  terse requirements  document
                                   affects  the  ability  to  break  the  software  complexity,  generate tasks  and  estimate  time.
                                   Furthermore, inadequate definitions  cause misunderstandings and wrong  implementation.
                                   Changes to the project during the development become inevitable and, in time, project deadlines
                                   will be missed.

                                   Lack of Testing

                                      Those who develop the software should not test it. The developer should run unit testing,
                                       but it is not a replacement to an objective QA test.

                                      Testing only at the end of a long milestone raise harms due to the load of testing and
                                       inherent problems that should have been caught at earlier stages.
                                      Furthermore, managers tend to rush the testing period at the end of the milestone in order
                                       to release on time.
                                      QA that does not bite and has no real power does not have the right effect on the R&D
                                       department and is there for the project itself.
                                      QA should be started as soon as the software project starts. Hence, even in the planning
                                       stage. QA participation in early stages is important for its preparation for the software.
                                       For example, QA should also check the SRS document and make sure that the software was
                                       implemented according to it.
                                      The following Professor Brooks rule of thumb might seem radical, but being given no
                                       proportional time for planning and testing is indeed problematic: “1/3 of the schedule for
                                       design, 1/6 for coding, 1/4 for component testing, and 1/4 for system testing.”
                                      Tester to developer ratio: there is no rule of thumb that defines the number of QA engineers
                                       per software engineer. The reason for that is that it depends on many variables and more
                                       specifically on the characteristics of the software. For  example, if  “multilingual” is  a
                                       software requirement, then the number of tests increases. Another example will be the





          34                                LOVELY PROFESSIONAL UNIVERSITY
   35   36   37   38   39   40   41   42   43   44   45