Monday, November 1, 2010

Introduction

Get familiar with Project Management

As you move ahead in your career, you are likely to face more complex and difficult challenges. Some of these may involve the coordination of many different people, the completion of many tasks in a precise sequence, and the expenditure of a great deal of time and money.

You can do this well, or you can do it badly. If you do this well, you'll complete your projects on time, and with minimal wastage of resources. This will build your reputation as a competent, successful manager. If you do this badly, you'll lose this reputation, and your career will most-likely stall. This is why you need to learn how to manage projects well.

image

Project Management Definition

Is the art and science of planning, organizing, and managing resources to bring about the successful completion of specific project goals and objectives.

 

What is a Project?

A project is a temporary endeavor, having a defined beginning and end (usually constrained by date, but can be by funding or deliverables), undertaken to meet particular goals and objectives, imageusually to bring about beneficial change or added value. The temporary nature of projects stands in contrast to business as usual (or operations), which are repetitive, permanent or semi-permanent functional work to produce products or services. In practice, the management of these two systems is often found to be quite different, and as such requires the development of distinct technical skills and the adoption of separate management.

The primary challenge of project management is to achieve all of the project goals and objectives while honoring the preconceived project constraints. Typical constraints are scope, time, and budget. The secondary—and more ambitious—challenge is to optimize the allocation and integration of inputs necessary to meet pre-defined objectives.

“Project management is leading people to get non-routine things done. Every project is different, so managing them is a dynamic and challenging job!”

- Unknown author


Project Characteristics

  • A start and end date: projects have dates that specify when project activities start and when they end.
  • Resources: time, money, people and equipment, used by the project. For example, to produce a brochure you will need a team (designers, copywriters, creative directors, etc.), equipment (computers, printers, paper, delivery trucks, etc.) and money to pay the salaries/fees, buy equipment, and so on.
  • An outcome: a project has a specific outcome such as new highway, a satellite, a new office building, a new piece of software, and so on.

Types of Software Projects

  • New Development: services & products
  • Implementation: customization on existing software (service or product)
  • Research: proof of concept for new ideas
  • Bug Fixing & Modifications: on existing software (service or product)
  • Maintenance & Support: on existing software (service or product)

Project Success Criteria

Whatever its size, a project’s success is based on three main criteria as shown by the following triangle:

image               image

Your project will therefore be deemed successful if it:

  • Delivers the outcome with an agreed upon quality.
  • Does not overrun its end date.
  • Remains within budget (cost of resources).

Note however, that outcome, time and budget are interrelated, and during a project you may need to do trade-offs between them. For example, if you want to get something done more quickly, you may have to pump in more money into your project for additional resources.

Good, fast and cheap. Any project aims to satisfy all three and it is usually frustrating, stressful, uncomfortable and downright painful.

And usually projects succeed only in achieving two of them:

Good + Fast

First, the easy one. The client wants it good and fast. Set expectations up front that it won’t be cheap. Remind them of the old adage, “You get what you pay for.” Most providers/vendors can handle this one, right? Especially if they know they can charge a premium for the work. Sure, it is stressful in the short term, putting in lots of hours and effort, but it is worth it in the long run.

Good + Cheap

What if the client chooses good and cheap? Shy away from that client, right? Maybe not. They’ll need to be warned not to expect a quick turnaround time. If good quality and a low budget are priorities, then the client needs to know up front that they have to be flexible on time. Set realistic expectations for yourself and stick to them. More importantly, provide a development plan for the client so they can see just how long it might take. This will help them understand your process and is much better than “I’ll work on it when I have extra time.” Explore quick and easy ways of providing some value to them in the short term, like setting them up with one of the various free blogging services. Maybe they don’t need a custom designed site right away.

Cheap + Fast

Finally, the least favorite - cheap and fast. The client needs to be warned to not expect it to look good. This is where things usually break down. You have a hard time committing to a project when you know that it is not going to look good and you’ll be rushed doing it. But perhaps if you’ve had a previous relationship with this client and are comfortable working with them, you’d take on a project like this. Again, it is all about setting realistic expectations. Maybe for now, just getting something out there is what is really important. Maybe it is just a splash page with an email collection form or a Facebook page - something with a URL that the client can use. Then improve it later when there’s more money and time.

Providers/vendors have a responsibility to educate clients regarding all these matters. If you set expectations up front honestly, speak from a position of authority and expertise, and choose your clients carefully, your project stress meter will point down and the overall project satisfaction meter will point up.

Why Do Some Projects Fail?

Generally speaking, any given project can be placed into 1 of 3 categories:

1. Successful: Successful projects are described as being completed on time, within budget, and include all of the originally planned features.

2. Challenged: Challenged projects are in fact operational, but are delivered over budget, behind schedule, and with fewer functionality than was originally planned.

3. Failed: Whereas failed projects are those that are cancelled before completion. image

While much praise is given to projects that are deemed successful by the above criteria, some projects are doomed from the onset, and furthermore, an effective project manager will cancel (or fail) a project that is NOT showing promise towards successful completion. Money saved is just as good as money earned! Sometimes this is against the company’s strategy and vision or policy.

If you ask people what factors cause problems in projects these are the sort of things they will say:

  • Undefined scope/Scope creep
  • Unclear objectives/Unclear expectations
  • Vague requirements
  • Uncontrolled change
  • Unclear roles & responsibilities
  • Stakeholder conflictsimage
  • Lack of user involvement/Poor user input
  • Change in project size, budget & scope
  • Lack of leadership from sponsor/Internal politics/Change in key personnel
  • Poor architecture
  • Inadequate monitoring & reporting
  • Skills that do not match the job/ Inadequate skills for project completion
  • Inadequate planning/Poor cost & schedule estimation/Failure to plan/Schedule overruns
  • Inadequate communication/ Communication breakdowns/Poor communication between business & IT
  • Team know it's impossible but management believe it will be done
  • Ignoring reality, wishful thinking/Late failure warning signals/Lack of fact-basis analysis

It is surprisingly rare for people to say that IT technology causes project failure or major difficulties. It is usually project management - or a lack of it - that causes the grief.

There was a touching belief a few years ago that if only one could write down every step a project must tread, then project managers could simply follow the process and out the other end would pop a successful project. Huge methodologies were spawned, money was made. But it isn't like that.

If you wanted to become a plumber you'd learn how to use each of the 50 tools in the plumber's toolkit. On your first, simple job you might only use 2 of them, but knowing which 2 and how to use them to best effect is obviously key. On a large plumbing job you might even use half the tools in your toolkit, but you'll never find any job on which you'll need to use every tool in the box.

The same with project managers: it's all about being equipped with tools for managing risks, defining scope, planning and scheduling, resolving conflict, etc. and then using these tools appropriately if and when needed. You cannot manage projects by rote.

“Calm seas never make skillful sailors.”

- Unknown author


Why Are Organizations Using Project Management?

Today’s highly competitive business environment forces organizations to make high-quality products at a lower cost and in a shorter duration. Organizations therefore are increasingly using project management because it allows you to plan and organize resources to achieve a specified outcome within a given timeframe. The techniques of project management also help you manage and anticipate risks in a structured manner. Surveys of organizations using project management have shown that project management allows for better utilization of resources, shorter development times, reduced costs, interdepartmental cooperation that builds synergies across the organization, and a better focus on results and quality.

Who is the Project Manager?

A project manager is a professional in the field of project management. Project managers can have the responsibility of the planning, execution, and closing of any project, typically relating to construction industry, architecture, computer networking, telecommunications or software development. Many other fields in the production, design and service industries also have project managers. image

A project manager is the person accountable for accomplishing the stated project objectives. Key project management responsibilities include creating clear and attainable project objectives, building the project requirements, and managing the triple constraint for projects, which is cost, time, and scope.

A project manager is often a client representative and has to determine and implement the exact needs of the client, based on knowledge of the firm they are representing. The ability to adapt to the various internal procedures of the contracting party, and to form close links with the nominated representatives, is essential in ensuring that the key issues of cost, time, quality and above all, client satisfaction, can be realized. The project manager job is an interesting job. Running a project means that no two days for you are alike. There are new challenges and bridges to cross on daily basis in your trajectory to accomplish the project objectives.

 

Project Management Skills

Project management skills require that you tolerate politics and can manage people. As a project manager, you have to manage your own team and the relationship with other departments who are either stakeholders or suppliers of certain components for your project.

Leadership skill is the art of the project management skills. Project management is all about getting people to do what you want as a project manager. You need to establish who will work with you and who will work against you. Informal chats help a lot in this sense. Your previous experience with colleagues helps, of course.

As you start your project management job, you will notice that these skills are essential:

  • Team Building
  • Conflict Resolution
  • Negotiation
  • Lobbying
  • Delegation
  • Mentoring
  • Coaching and Training
  • Communication and Presentation skills are key skills of the project management skills required for a successful project manager. As a project manager, you need to convince many department heads of helping you accomplish the project objectives. Your presentation skills with be of at most importance.
  • During any project, your Time Management skill as a project manager could be mean your survival. Wasting time on unproductive meetings, or unscheduled lengthy phone calls could add to your stress and cause the project to fail.
  • Your "Know How" of the project subject matter is very important. You need not be a very technical person in the subject matter to manage a project. However, you still need and require some background to it. Don’t expect a civil engineer project manager to manage an IT programming project. It simply does not work.

Tip: Be careful, project managers are looked at the people who don’t have a real job. It is a perception that you might have to live with.

The project management skills require that you understand the following in more details:

  • Project manager job
  • Software development lifecycle
  • Initial project planning process
  • Project team building
  • Project financial planning
  • Project implementation plan

 

The Project Manager Job

The project manager job focuses on certain responsibilities and challenges during the execution of the project such as:

  • The project itself in terms of meeting its Objectives, Budget and Schedule.
  • Your Team: working as one team and keeping everyone informed is a real challenge. Most probably, you will face the misconception that you left someone behind. Don’t worry, inform him or her and make sure that the process never fails you again. Team building exercises don’t have to be outside the office. The project team should always get together formally and informally to bond or as it’s called now a days "Loving".
  • Your Employer: You need to maintain the expected benefits of the project to your employer. You need to maintain the ethics, and policies of your organization. The information sharing with management, secrets of the project, and lessons learned are of most importance.

 

Project Manager Challenges

The project manager job brings with it many challenges. It is a fact that project managers are responsible, but they rarely have the authority.

You cannot "force" others to help you accomplish the project. You have no authority over them. You have to convince them to assist you. This is where your Leadership skills kick in.

Most likely, your team members will come from different department and backgrounds. In a short time, you are expected to get them all to sing, i.e. work, together in harmony. Your management skills should help you face this challenge which is a common phenomenon of the project manager role.

An interesting challenge we noticed with the project manager role is that he or she never have a say in the target date. This date is usually set by the customer or management. Proper scheduling and resource planning should help you around this challenge.

Some project managers are able to deal with such types of stress by taking the stress and don’t passing it to their teams, other project managers just transfer the stress to their teams.

“Project Management can be defined as… a way of developing structure in a complex project, where the independent variables of time, cost, resources and human behavior come together.”

- Rory Bruke, 1999.


Saturday, October 30, 2010

Software Development Lifecycle (SDLC) Models

Outline of software development models

SDLCs are meant to present an outline of software development teams can cling to. These lifecycles can be distinguished by their way of dealing with the different activities in the evolution of the software as well as their way of handling problems that arise during such a development. There are two types of models: those that go through each of the activities sequentially only once and those that go through each of the phases many times. Those that execute the stages in a lifecycle iteratively produce different artifacts (such as prototypes as well as documents) after each iteration. The major benefit is that even if the whole project is cancelled there are pieces left that could be used in further projects or developments.

Be aware that there is no one best practice for every development process. The following is just supposed to list the most common ways of managing software development processes. Depending on the company structure, complexity of the project, customer requirements and team size as well as knowledge in and usage of tools each of these models has advantages and disadvantages.

Frequently, several models are combined into some sort of hybrid methodology. Documentation is crucial regardless of the type of model chosen or devised for any application, and is usually done in parallel with the development process. Some methods work better for specific types of projects, but in the final analysis, the most important factor for the success of a project may be how closely the particular plan was followed.

In general, an SDLC methodology follows the following steps:

1. Requirements Analysis: The system requirements are defined. In particular, the deficiencies in the existing system must be addressed with specific proposals for improvement. This can be done by interviewing users of the system and consulting with support personnel.

2. Design: The proposed system is designed. Plans are laid out concerning the physical construction, hardware, operating systems, programming, communications, and security issues.image

3. Construction: The new system is developed. The new components and programs must be obtained and installed. Users of the system must be trained in its use, and all aspects of performance must be tested. If necessary, adjustments must be made at this stage.

4. Integration & Functional Testing: The system is put into use. This can be done in various ways. The new system can phased in, according to application or location, and the old system gradually replaced. In some cases, it may be more cost-effective to shut down the old system and implement the new system all at once.

5. Acceptance: Once the new system is up and running for a while, it should be exhaustively evaluated. Maintenance must be kept up rigorously at all times. Users of the system should be kept up-to-date concerning the latest modifications and procedures.

There are various approaches to managing project activities including agile, interactive, incremental, and phased approaches.

Regardless of the approach employed, careful consideration needs to be given to clarify surrounding project objectives, goals, and importantly, the roles and responsibilities of all participants and stakeholders.