IT Software Project Management Tips and Faqs

I found a good link having good IT Software Project Management Tips & faqs. It provide some basic tips about the success of the project, Project Planning, Team motivation, SRS etc. Link to the faqs is: IT software Project Management Tips and Faqs

Extreme Programming Practices - Agile Methodology


Agile processes like extreme programming (XP), Scrum, Crystal and adaptive software development are software engineering methodologies that describe the set of values, principles and practices for rapidly developing high-quality software, providing the highest value for the customer in the fastest possible way. Following are some best extreme programming practices:

User Stories

Instead of writing long predictive SRS, the process begins by gathering user stories. These are short use cases, small enough to fit on an index card and can be viewed as a single task for developer and as a user acceptance test. Each story is business-oriented, testable, and estimable.

The Planning Game

After getting the user stories, development team roughly estimates the development time to complete these stories. From the user stories, the customer selects the most valuable set. Stories with the highest priority are done first. If two stories are of equal importance, the one with the higher risk is always done first. The programmer picks the tasks that he desires to work on, estimates the time it will take to complete it

Small Releases & Iterative Estimation & Iterative Development

XP keeps release cycles (like 2 week) short and ensures that each release produces a useful software system that generates business value for the customer. A fully functional system that passes all acceptance tests for all selected stories is delivered at the end of each iteration. And after this team quickly determine the next release’s scope, combining business priorities and technical estimates for next release.

Continuous Integration

Developers should integrate code as often as possible, and at least once a day. This ensures that there is always an executable software version available that contains all new features.

Collective Code Ownership

In XP, the team members collectively own the code. Any developer is expected to be able to work on any part of the code at any time.

Continuous Testing

Unit Tests are automated tests written by the developers to test functionality as they write it. Programmers develop software by writing unit tests first, and then code that fulfills the requirements reflected in the tests. Customers provide acceptance tests that enable them to be certain that the features they need are provided. Acceptance Tests (Functional Tests) are specified by the customer to test that the overall system is functioning as specified. Automated regression testing of functionality is also done after each release.

Simple Design

XP advocates that we design the simplest possible solution that works well for the current set of requirements, not those we imagine will exist in the future.

Pair Programming

In XP, all developers work closely together so they can communicate informally rather than spending time documenting designs and decisions. All code is written by two people working at one machine. One person controls the keyboard and the mouse, and other focuses on broad issues such as whether this approach will work and whether it can be simplified further.

No Overtime & 40- Hour Week

In extreme programming programmers go home on time. Small releases and fixed iterations create an environment where consistent, 40-hour work weeks are best. Planning is based on each developer working only 40 hours.

System Metaphor

Extreme Programming teams develop a common vision of how the program works, which is called "metaphor". The metaphor is a simple description of how the program works.

On-site Customer

The on-site customer forces the development team to focus on the product, not on the experiments. Team interacts with the customer daily to resolve various project issues.

Embrace changes

Instead of enforcing a strict plan using predictive process methodologies with rigid and unchanging requirements, embrace change; recognize it is part of today’s business atmosphere and work to handle the changes as they occur.

Only Useful Documentation

Create only the documents that are required and never produce documents attempting to predict the future

Coding Standards and Refactoring

Everyone codes to the same standards. Same naming convention and same commenting style is used. Try to remove any duplicate code generated in a coding session

Agile project Planning & Scheduling Tips with Extreme Programming (XP) Practices


In classic approaches any development work must wait until all the requirements are documented, agreed, and signed off. The end-users don't get to see the product until it is largely complete But according to the new Agile Methodology, only stable plans are short term plans that are made for a single iteration. Iterative development gives you a firm foundation in each iteration that you can base your later plans around. The Customer can use this product for any purpose, whether evaluation or even release to end users. The product is visible, and given to the customer, at the end of every iteration.

Agile project Planning & Scheduling Tips (Extreme Programming Style)

  • In iterative development approach, development is organized into a series of short, fixed-length (for example, 2 weeks) mini-projects called Iterations. They are short on functionality, but should be faithful to the demands of the final product.
  • When business comes up with a list of desired features for the system then decides which features to implement in what order, as well as when and how often to produce a production release of the system keeping in mind that how much effort each story will take, and how much effort the team can produce in a given time interval.
  • Write requirements as short as possible in smaller units. In Extreme Programming(XP), requirements are called user stories. Each story can be estimated by the programmers as needing no more than a week or so of effort. Story is backed up by acceptance tests that include some of the detail. After user stories are written, the programmers estimate how long each will take to implement. If the programmers cannot come up with an estimate, either the story is too big and must be broken down or the programmers need to do a simple experiment to learn about how to implement the story.
  • The people doing the work must be actively involved in planning & scheduling. They are motivated to get it right, they have skills to understand the dependencies, and they need to accept the schedule.
  • Each task should be estimated as 1, 2, or 3 programming days in duration. Tasks which are longer than 3 days should be broken down farther.
  • Meet every morning or once in a day to communicate problems, solutions, and promote team focus.
  • Set clear objectives for each iteration. Understand that a deliverable is never "finished". It only "meets the objectives of the iteration".
  • Take your iteration deadlines seriously! Track your progress during an iteration. If it looks like you will not finish all of your tasks then call another iteration planning meeting, re-estimate and remove some of the tasks.
  • The outcome of each iteration is a tested, integrated, and executable system. Each iteration includes its own requirements analysis, design, implementation, and testing activities. Continuously engage users for evaluation, feedback, and requirements.

Agile Project Management: Role, Responsibilities and Job Profile of an Agile Project Manager


Definition: Project management is the art of organizing and managing resources in such a way that these resources deliver all specified requirements within the constraints of scope, quality, time, and cost.

The agile project managers aren’t just organizers – they combine business vision, communication skills, soft management skills and technical knowledge with the ability to plan, coordinate, and execute. They keep the spotlight on the vision, inspire the team, promote teamwork and collaboration and remove obstacles to progress.

Role, Responsibilities and Skills of Project managers

  • Identifying, tracking, managing, resolving project issues and providing consistency of success with regard to time, cost, and quality objectives.
  • Identifying, managing and reducing risks associated with the project.
  • Ensuring that the solution is of acceptable quality and customer expectations are met.
  • Defining and collecting metrics to give a sense for how the project is progressing.
  • Managing the overall work plan to ensure work is assigned and completed on time and within budget.
  • Making sure that people follow the standard processes and there is no conflict exist between team members.

Agile Team building tips for Project managers


A good relationship among team members starts with the project manager’s relationship with the team members. You set the standard and are the role model for the others.So Agile project managers should have good team building skills so that the people work together well, and feel motivated to work hard for the sake of the project and their other team members. You should set reasonable, challenging and clear expectations for people, and hold them accountable for meeting the expectations. This includes providing good performance feedback to team members and influencing behavior in positive ways.
  • Throughout the project, gently guide the team to maintain focus on the vision. Everyday decisions and interactions are opportunities to reinforce the vision and create positive energy.
  • Take a leading role in encouraging the team to try certain practices about which team members may be doubtful.
  • In addition to getting to know the team members yourself, you should help team members get to know each other also by creating opportunities and the right conditions. Opportunities can be created from planning games, everyday interaction, and special events. To set the right conditions, you must establish an environment in which team members treat each other with respect. You may even need to intervene to stop disrespectful behavior.
  • Project manager should ensure that the physical workspace is arranged in a way that facilitates collaborative activities such as pair programming and team problem solving. Ideally, the team should be located in an open space with both individual and common areas.
  • Promote open access to information. Place team members within close proximity of each other whenever possible. Let them solve each-other's problems. Establish daily status meetings to promote the flow and exchange of information. Sustain open information exchange between business domain experts and the development team.
  • Continually encourage teamwork and collaboration. Establish simple rules, but take every opportunity to conduct process reflections: regularly examine what works and what needs improvement. Act with courage to make changes when you feel they are necessary.
  • Work persistently to break down the barriers to information sharing. Keep apprised of cultural sensitivities, egos, and other such factors that may impinge upon its success. Operate with a light touch. Intervene quickly, but wisely to solve personnel issues. Motivate and reward initiative, but manage expectations. Recognize and encourage self-organization, but disallow cliques