Project Management


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.

graphics/tip_icon.gif

Approach this certification as a project and manage it that way. If you do, you will avoid costly mistakes that so many candidates have made in the past. For example, a project plan keeps you on schedule. It helps you stay focused and complete the certification on time instead of letting that achievement slip away.


Managing the Software Development Life Cycle

There 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:

  • System requirements analysis ” This component defines and documents the requirements the system must meet. In your document, you should include information about functional requirements. For example, the solution services simultaneous users on the network.

  • System architectural design ” This component defines and documents systemwide design decisions. In your document, you should describe your system architecture, including Remote Method Invocation (RMI) or sockets communication between the client and the database while your application is in remote mode.

  • Software requirements analysis ” This component defines and documents your solution's functional characteristics and conditions for its acceptance. For example, you should mention that the solution has a JTable-based GUI.

  • Software detail design ” This component defines and documents details of the classes and methods that form your solution. You should mention that the Model-View-Controller (MVC) pattern is used for the GUI.

  • Software coding and testing ” This component defines and documents the coding conventions you use and how you conduct system and unit testing.

  • Software integration ” This component defines and documents unit integration and testing, which means integrating the classes into a complete application and testing the resulting software to ensure that it works together as intended. You need to answer the question "Does the database part of your solution work with the GUI part?"

  • System integration ” This component defines and documents how your solution will work on the network. You should explain how RMI or sockets allow the client to communicate with the database server.

  • Software acceptance test ” This component defines and documents the acceptance criteria. For your certification project, it could be a simple checklist noting that all major behavior is evident in the final solution. You can ask another person to try your solution by giving him or her this checklist.

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 Plan

One 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).



JavaT 2 Developer Exam CramT 2 (Exam CX-310-252A and CX-310-027)
JavaT 2 Developer Exam CramT 2 (Exam CX-310-252A and CX-310-027)
ISBN: N/A
EAN: N/A
Year: 2003
Pages: 187

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net