Project Management Templates
The following sections introduce some of the programming and project management tools included with Ubuntu. The disc included with this book contain many of these tools, which you can use to help automate software development projects. If you have some previous UNIX experience, you will be familiar with most of these programs because they are traditional complements to a programmer's suite of software.
Creating schedules for porting projects is just like creating schedules for software development projects. Figure C-2 is an adaptation of a diagram from Radical Project Management by Rob Thomsett (Prentice Hall, 2002, p. 191). The figure shows that the average estimation error made before the project scopes and objectives are cleared up is +400 percent and -400 percent. As the objectives, scope, risks, and other technical and business issues are clarified, the estimated porting schedule comes closer to the real schedule.
Development framework distributions include various development tools that facilitate the development of embedded systems. This may include special source browsers, cross-compilers, debuggers, project management software, boot image builders, and so on. These distributions are meant to be installed on the development host.
If you are interested in helping with Ubuntu, you can assist in the effort by testing beta releases (known as preview releases, and usually named after the animal chosen for the release name), writing documentation, and contributing software for the core or contributed software repositories. You should have some experience in installing Linux distributions, a desire to help with translation of documentation into different languages, or be able to use various software project management system, such as CVS.
In 1998, LinuxCare (http www.linuxcare.com ) began to offer distribution-neutral support programs to businesses as well as individuals. LinuxCare's primary business is to develop customized Linux software for business customers. They provide assistance in the areas of Linux kernel extension, system optimization, device driver development, and application porting. They also offer consulting services in the areas of Linux security, network management, and project management in general.
The development tools offered by product-oriented companies are all based on the (admittedly open source) Eclipse IDE project and are much more advanced than what is available for free in open source. For example, the hardware debugger integration in Wind River's toolset is an excellent piece of software engineering that makes low-level debugging much easier. However, this feature isn't valuable if your project schedule doesn't include that sort of work.
As of this writing, the head of the CVS tree foant weighs in at just shy of 48MB, and there are 5,239 files in there These totals include a lot of project documentation, but even considering only the src subdirectory, we are still looking at 18MB and 1,687 files. It is probably incorrect to call ant a little thing these days.
Although make can be used to manage a software project, larger software projects require document management, source code controls, security, and revision tracking as the source code goes through a series of changes during its development. Subversion provides source code version control utilities for this kind of large software project management.
Application porting refers to the process of taking a software application that runs on one operating system and hardware architecture, recompiling (making changes as necessary), and enabling it to run on another operating system and hardware architecture. In some cases, porting software from one platform to another may be as straightforward as recompiling and running verification tests on the ported application. In other cases, however, it is not as straightforward. Some large applications that were written for older versions of operating systems and compiled with native compilers may not adhere to present language standards and will be more difficult to port, requiring the full attention of project management. This chapter supplements currently available project management materials and books about application porting projects. Topics such as how to use formalized requirements processes, how to better communicate between software developers, and how to practice extreme project...
When programming for GNOME or KDE, you might find it most convenient to use a graphical development project manager, such as GNOME's Glade (the GTK+ User Interface Builder, glade-2), TRolltech's Qt Designer (designer), or KDE's KDevelop (the KDE development environment, kdevelop). These clients enable you to prototype an application with graphical drawing tools, which frees you to concentrate on your client's interface. You can use either to automatically generate all necessary project and source code files for skeletal applications. See the section Graphical Development Tools, later in this chapter, for more information.
Although you can use make to manage a software project, larger software projects require document management, source code controls, security, and revision tracking as the source code goes through a series of changes during its development. CVS provides source code version control utilities for this kind of large software project management. You can find this utility in APT packages on your Ubuntu DVD.
Tied closely with administration is designing system architectures. After a few years of experience implementing, managing, and tuning systems, many administrators have a feel for what works and what doesn't. These skills tend to come more with experience than with classroom training. The key is understanding the different pieces of a system and how they work together. Once this and the project-management skills are obtained, the administrator can demand a high salary in many different organizations.
Project scope is defined as the specific endpoints or boundaries of the project as well as the responsibilities of the project manager and team members.5 A clearly 5 Radical Project Management, Rob Thomsett, 2002, Prentice Hall Clear project objectives requirements lead to a better understanding of the scope of the project. During the analysis step in the porting process, customer objectives and requirements are gathered, and these objectives transform themselves to work breakdown structures and eventually project deliverables. Project objectives and requirements provide a starting point for defining the scope of the project. After all project objectives have been laid out, the project scope becomes more defined. One way to define the scope of a project is to list objectives that will and will not be included in the project. A requirements list from the customer is a good start. After the requirements have been gathered, the project manager and the technical leader review the list in...
When installing the samba package, you may also want to install the samba-doc and samba-doc-pdf packages, which respectively provide HTML and PDF versions of all of the official Samba project documentation, plus an online copy of a book entitled Samba 3 By Example by one of the leaders of the Samba project, John Terpstra.
Such meetings are also good ways to open communication channels. The effect of a good communications plan will be to flatten out the negative aspects of the acceptance curve, as shown in Figure 2-1. A communications plan coupled with proper training on the new system should minimize the number of users that fall into the rejection opposition mode, cause
Programmers often use make for purposes other than building executables. It's really a general-purpose project management tool. For instance, I'm currently using a makefile so that I don't have to delete a bunch of files and then run LTEX, makeindex, and dvips every time I want a preview of this book. Consider the following makefile
That Linux is a child of the Internet is beyond contention. Thanks, above all, to Internet communication, the development of Linux has demonstrated the absurdity of the widely held opinion that project management by globally dispersed groups of programmers is not possible. Since the first kernel sources were made available on an ftp server more than a decade ago, networks have always been the central backbone for data exchange, for the development of concepts and code, and for the elimination of kernel errors. The kernel mailing list is a living example that nothing has changed. Everybody is able to read the latest contributions and add their own opinions to promote Linux development assuming, of course, that the opinions expressed are reasonable.
Perforce wrapped up 2007 announcing a new version of its Fast Software Configuration Management (SCM) System, Perforce 2007.3. SCM is an application version lifecycle management (ALM) tool that versions and manages source code and digital assets for enterprises of all sizes. The most significant component of this release is the new SDK for the Defect Tracking Gateway, which allows customers and vendors to develop improved integrations to commercial and in-house tracking systems. Perforce also claims an advantage from its ability to integrate with other tools rather than being a one-stop shop, allowing customers to add the project management and process automation tools of their choice. A 45-day full version of Perforce with support and a free, two-user version are available from the firm's Web site. www.perforce.com
PHProjekt is open-source software written in PHP (used with MySQL, postgresql, Oracle, Informix, or MS-sql). PHProjekt provides calendaring, contact manager, time card system, project management, online chat, threaded discussion forum, trouble ticket system, email, public files, notes bookmarks, voting system, task lists, reminders, site search, and integration with the PostNuke news site application. It provides no Exchange Outlook compatibility whatsoever. The home page is http www.PHProjekt.com .
A subset of the Web CMS category is groupware. This type of package runs over an intranet or over the Internet and is designed to allow collaboration between users, presumably working for the same company, working on the same projects. They typically offer features such as project management, file checking in and out, calendar systems, email, and internal forums.
Scoping is the step in which the project manager asks the porting expert2 and a domain expert3 to get together to identify the products, development, and test environment the application to be ported relies on. The key areas to identify during the scoping process include product dependencies, development environment components, build environment components, and test environment components
The Anjuta Project Manager plug-in can help you manage most projects based on automake and autoconf. You can create a new project, change its structure, configure build flags and other settings, compile and link source code, and execute your programs. By not adding any Anjuta-specific files to a project, Anjuta allows you to work with your project in environments outside of Anjuta.
There are two views in the analysis step of the porting process a project management point of view, and a porting point of view. From a project management point of view, analysis is the step that assesses the various porting issues and risks identified in the preceding step and what impact they bring to the porting project as a whole. The analysis step involves the formulation of the project plan, which includes identifying scope and objectives, creating work schedules, procuring resources needed, and assigning roles within the project. Identification of scope and objectives defines the boundaries and responsibilities of the project manager and the members of the project team. Boundaries are clearly identified sets of work that need to be done for the project. For example, a simple statement such as Module A in application XYZ needs to be ported and tested on platform B can be a good start to defining the boundaries of the work. After boundaries have been identified, tasks for the...
Armand Puccetti is a research engineer and project manager at CEA-LIST (a department of the French Nuclear Energy Agency, http www-list.cea.fr) where he is working in the Software Safety Laboratory. He is involved in several European research projects belonging to the MEDEA+, EUCLID, ESSI, and FP6 programs. His research interests include formal methods for software and hardware description languages, semantics of programming languages, theorem provers, compilers, and event-based simulation techniques. Before moving to CEA in 2000, he was employed as a project manager at C-S (Communications & Systems, http www.c-s.fr ), a privately owned software house. At C-S he contributed to numerous software development and applied research projects, ranging from CASE tools and compiler development to military simulation tools and methods (http escadre.cad.etca .fr ESCADRE) and consultancy.
Now that you've created a project, you easily can create, add existing, or edit existing Web pages in your project. All your existing files (if any) in the working folder should be in the project manager already (access it by clicking the Project tab on the sidebar). If they aren't, you can add them by right-clicking on your project in the Project tree and selecting Rescan Project Folder To create a new file, click File New (or press Ctrl-N), and save it. Once you do, you will prompted whether to add it to the project. If you do, it will show up nicely in the project manager.
|Project Management Documents Toolkit|
Project Management Made Easy
What you need to know about… Project Management Made Easy! Project management consists of more than just a large building project and can encompass small projects as well. No matter what the size of your project, you need to have some sort of project management. How you manage your project has everything to do with its outcome.