Programming in Java consists of more than writing source code; it also demands project management. Project management skills are in great demand in the IT community. Of all areas that need improvement in the software industry, project management is number one. The lack of project management or poorly executed project management has been responsible for most IT project failures. Compared to other industries, the IT record for completing projects satisfactorily (on schedule and under budget) is abysmal. The reports vary widely, but stating that 30% of IT projects fail completely and a higher percentage misses the mark are fair estimates. Can you imagine hearing such disappointing news about the automobile manufacturing? Your software development effort for this certification needs to do better than that. Project management is such a large topic that I could easily spend several chapters on it, but I've focused the discussion on reviewing the aspects of project management that apply to systems analysis and design for this certification. When managing a software project, many activities need to be scheduled and monitored . Although the certification assignment is small enough for one person to complete in a few months, it is still large enough to benefit from project management techniques. This chapter contains some formal documents to help you design a successful solution. For example, use the requirements document to write a short list of actual requirements, such as needing a record-locking mechanism and a search-by-criteria algorithm.
Managing the Software Development Life CycleThere are various standards for and approaches to managing software projects. Even though there is controversy around the software development life cycle, I recommend starting with the top standards. Arguably, the three most important software engineering standards are ISO 12207, ISO 9000-3, and ISO 15504. For this project, I have focused on ISO 12207 (proposed in 1988 and published in August 1995), the international standard on software life cycle processes. The idea behind this standard was to define the best practices for developing software, and it establishes a common international framework for acquiring, supplying, developing, operating, and maintaining software. ISO 12207 is broad in scope. For the certification, you need only concern yourself with the following list, which contains various aspects of ISO 12207 and explains how these aspects apply to the certification:
The general order of development activities is the definition, design, implementation, and test phases. How you combine these steps and how strictly you follow the previous list of documents for your project are up to you. Regardless, documenting a brief plan for your assignment is a smart choice. The Software Management Project PlanOne way to manage all these activities is with a Software Management Project Plan. This plan is the controlling document for managing a software project, as it defines all processes ”technical and managerial ”needed to deliver the project requirements. It specifies who is building what and when it is due. It provides the plan for a team, or just yourself, to translate the requirements into specifications and then actual code. You will benefit from developing and recording plans for conducting the activities required to submit a successful solution. The following outline will help you do so, as it is a loose adaptation of the IEEE standard for Software Project Management Plans (1058): 1. Scope and References 1.1 Scope : This part defines and documents an overview of the assignment, including goals and objectives, user needs, and the critical functionality. You need to mention that your solution provides an application written with J2SE 1.4 that is a two- tier , client/server architecture, in which the client allows the user to reserve seats and the database stores reservation transactions. 1.2 References : This part defines and documents the references found in the documentation. You can mention Sun materials and your favorite Web sites. 2. Definitions : This part defines and documents the key terms used in the document. You can include a small glossary defining RMI, threads, and row-level locking, for example. 3. Software Project Management Plans : This part defines and documents the project in a timeline format. 3.1 Introduction : This part is an overview of the project's purpose and general goals. You can mention the project description defined at the beginning of your instructions in the README.TXT file. 3.2 Project Organization : This part might not be useful in a small project, but it describes how the project is organized, including personnel and their roles. 3.3 Managerial Process : This part might not be useful in a small project, but it describes how the development work is managed. 3.4 Technical Process : This part might not be useful in a small project, but it describes the technical manner in which the build process is conducted (code, checked in source control, tested , deployed). |