Software engineering
RSS:
Publications
Comments

9 steps to a hassle free and effective software development project

During the design phase, the software architect, programmer, and/or developer may put together a detailed design document outlining exactly how the software will meet the specified requirements. Dr. Gehrs recommends the use of mock-ups to accompany the design document as a way of illustrating user-interface elements.

In some cases, customization is required in order to meet specific, individual project needs. For example, Dr. Huizinga notes that this might include the use of specialized COTS (commercial off-the-shelf) hardware and software components. The wide spectrum of products from databases to game engines is dictated by the market shift to customization of existing commercial applications to fit project needs rather than in-house development of such systems. According to Dr. Huizinga, COTS can offer higher quality because they are developed by vendors who specialize in systems that provide the required functionality and are well-tested by many users.

Step #5: Measuring and Tracking Progress  

Without the proper technology infrastructure in place, it is difficult to collect and measure key project data. “Consequently, the software projects cannot be managed effectively,” says Dr. Huizinga. Project indicators can help to ensure the prompt identification of potential or existing problems, therefore allowing them to be recognized and remedied in a timely manner. When observed over an extended period, notes Dr. Huizinga, these indicators can be used to determine product quality and deployment readiness.

Step #6: Development 

At the development phase, the design document is translated into a real piece of software. When prior careful planning has been executed, the software will match the requirements of the business driver that initiated the need for the project. Dr. Gehrs points out that development cycles may produce several versions of the software:

• Alpha: preliminary feature/functionality only 

• Beta: used for internal testing or usability testing 

• Release Candidates: usually a very stable build that may need minor tweaks 

• Production Build or Gold Master: ready for release.

Project managers need feedback on the user’s navigational experience, task-completion times, ease of use, and other information related to the user interface and user-centric elements.

Step #7: Addressing Automation 

Another key step is to ensure the automation of repetitive tasks:

• Code builds; 

• Static code analysis scans; 

• Regression tests; 

• Collection of project- and product-related measures.

Dr. Huizinga believes that taking such measures reduces the error-prone human influence when the software is implemented. It also facilitates the use of best practices and collection of project-related data. “All repetitive and mundane tasks should be automated whenever possible in any portion of the software life cycle,” she adds.

Step #8: Testing  

As the project continues on through each phase and on to testing, a general progression of action is as follows: software features are laid out in some sort of list, scripts are written for each task the user might perform, and those features are tested to ensure they function properly. Dr. Gehrs points out that testing also may vary quite widely depending on the individual testing procedures adopted by the organization. Testing can consist of several sub-stages as well, such as quality assurance and staging.

Once the software is in general use, any bugs found at this point are addressed based on a criticality scale: urgent fixes are scheduled to be carried out as soon as possible. In addition, feature enhancements/changes may be slated for future upgrade versions.

Step #9:  Gradual Implementation Practices  

“Incremental implementation of the above practices is critical to success. The approach of gradually introducing change group by group and practice by practice is essential to achieving the desired organizational culture change, as change is unsettling, and there will always be some degree of resistance,” points out Dr. Huizinga. Because of the complex nature of software projects and the technology involved, new software development warrants this systematic approach.

Understanding the role of the project leader and importance of having well-thought-out development processes in place may be a company’s only real competitive advantage in an increasingly competitive marketplace.  It is the ultimate secret weapon to winning business and successfully delivering new easy-to-use software.

With workable and disciplined software project guidelines and well-qualified project managers, your organization can’t lose.