QA Evangelist » Blog Archive » 5 Common Problems with Software Development Process and Solutions

5 Common Problems with Software Development Process and Solutions

What are 5 common problems in the software development process?

  • poor requirements – if requirements are unclear, incomplete, too general, and not testable, there may be problems.
  • unrealistic schedule – if too much work is crammed in too little time, problems are inevitable.
  • inadequate testing – no one will know whether or not the software is any good until customers complain or systems crash.
  • featuritis – requests to add on new features after development goals are agreed on.
  • miscommunication - if developers don’t know what’s needed or customer’s have erroneous expectations, problems can be expected.

What are 5 common solutions to software development problems?

  • solid requirements – clear, complete, detailed, cohesive, attainable, testable requirements that are agreed to by all players. In ‘agile’-type environments, continuous close coordination with customers/end-users is necessary to ensure that changing/emerging requirements are understood.
  • realistic schedules – allow adequate time for planning, design, testing, bug fixing, re-testing, changes, and documentation; personnel should be able to complete the project without burning out.
  • adequate testing – start testing early on, re-test after fixes or changes, plan for adequate time for testing and bug-fixing. ‘Early’ testing could include static code analysis/testing, test-first development, unit testing by developers, built-in testing and diagnostic capabilities, automated post-build testing, etc.
  • stick to initial requirements where feasible – be prepared to defend against excessive changes and additions once development has begun, and be prepared to explain consequences. If changes are necessary, they should be adequately reflected in related schedule changes. If possible, work closely with customers/end-users to manage expectations. In ‘agile’-type environments, initial requirements may be expected to change significantly, requiring that true agile processes be in place and followed.
  • communication - require walk-throughs and inspections when appropriate; make extensive use of group communication tools – groupware, wiki’s, bug-tracking tools and change management tools, intranet capabilities, etc.; ensure that information/documentation is available and up-to-date – preferably electronic, not paper; promote teamwork and cooperation; use prototypes and/or continuous communication with end-users if possible to clarify expectations.


One Response to “5 Common Problems with Software Development Process and Solutions”

  1. George Nunez Says:

    An additional problem that I have found very common in software development is “Gold Plating”, that is adding features or functionality that are not necessarily part of the requirement. I have seen this come from both developers and QA.

    The watch for “Gold Plating” has become more critical as companies move to an Agile framework. We tell our QAs to always ask, “Where is this feature captured in the requirement/story?”. If it not, it needs to be removed.

    On the other hand, if they are writing a defect, they need to clearly point out where this functionality deviates from the captured requirement/story. Again, if they cannot, it is not a defect. Just because QA “thinks” it should be certain way, doesn’t make it a defect. Of course, they could bring it up to the business to determine if it was missed, so it could become a defect against requirement.

    But, yes, “Gold Plating” is another item I would add to the list of “Common problems in Software Development.”

Leave a Comment