Project Management is as much about communication as it is about control.
Putting a plan in place for development and delivery of your application provides a starting point for both communication and control.
What is done with that plan and ultimately, the success of your project depends on many factors.
How well you understand those factors, and the ability to manage them will determine the success of the project.
First and foremost is understanding what it is your team is trying to accomplish.
That is not necessarily as simple as it sounds.
Laying out a clear project plan with all known assumptions, expectations and risks documented will go a long way to providing a baseline of communication that can keep your project progressing smoothly.
A clear understanding of what the application is to accomplish - and clear, well expressed and testable requirements communicate that understanding to the team.
Getting the project off to a solid start through clear requirements makes the rest of the job much easier and lowers your risk.
Having a plan that builds on the strengths of your development methodology will help as well.
If your team is using an Iterative Development based methodology, the milestones you establish for the project should reflect a steady improvement in the overall capability of your product.
Contact us for more information about our development methodology and how it can work for you.
Managing software projects is not the same as managing a construction project - it requires different tools
Construction projects don't use Iterative Development.
Nobody builds a portion of a building to see how it looks and then changes the configuration or floor plan to meet changing ideas about what will work best.
This approach works very well when buidling complex software systems when you have the right tools - both for building the software and managing the project.
The project plan also lays the groundwork for the control aspect of your project.
The two are inexorably linked. Determining the tasks necessary to meet each milestone and estimating the time associated with each task will give you confidence in your ability to meet those numbers.
Once the project is underway, tracking to those task estimates is fundamental to keeping your project under control.
The ObjetX Time Tracker is a tool that can help establish the task structure for your project and help you manage those tasks by tracking actual to estimate and overall projections for milestone completion.
Based on the project plan and overall project progress; communication of the project status and current issues is fundamental to moving the team and outside stake holders along as a group to successful conclusion of the project.
Being on the lookout for potential roadblocks or risks to timely project completion is vitally important to keeping any project on schedule.
Anticipate, research, mitigate and plan – it is a constant cycle of update and improvement of the project plan right until the last day of the project.
At ObjetX, we have the expertise to manage your project for you, or help you plan and manage your own project.
Project Management must be effective to be of use. Over reliance on documentation, management systems or fancy charts, without enough ongoing analysis and adjustment to task priorities or team assignments can lead to missed deadlines and blown budgets.
We provide the document templates and the tools; but more important, we provide a pragmatic, proven approach to both large and small team project Management.
Iterative Software Development
Iterative Development is often characterized as an agile software development methodology.
Most agile methods attempt to minimize risk by developing software in short time-boxes, called iterations, which typically last one to four weeks.
Each iteration is like a miniature software project of its own, and includes all of the tasks necessary to release the mini-increment of new functionality: planning, requirements analysis, design, coding, testing, and documentation.
While an iteration may not add enough functionality to warrant releasing the product, an agile software project intends to be capable of releasing new software at the end of every iteration. At the end of each iteration, the team reevaluates project priorities.
Iterative Development in general places less emphasis on the time-boxing and more emphasis on milestones and quality assessment geared to a steady improvement of the product.
Agile methods emphasize real-time communication, preferably face-to-face, over written documents.
Most agile teams are located in a common area and include all the people necessary to finish software.
At a minimum, this includes developers and the owner of the requirements of the finished system.
The group may also include testers, UI designers, technical writers, and managers.
Agile methods also emphasize working software as the primary measure of progress.
Combined with the preference for face-to-face communication, agile methods produce very little written documentation relative to other methods.
The key to developing large systems using Iterative Development is the use of sophisticated tools for developing and refining large portions of the system and the use of a flexible Project Management tool that can accommodate the constant juggling of tasks associated with producing each iteration or milestone.