# User:Drmksharma/lectuernotes/sm

CONCEPT NOTES

Students may use the given concept notes as overview of the subject , meanwhile you will get ppt and pdf files of class

lectuers time to time by mail .

1: Introduction to Software Project Management
What is software project development
What is A Software project and its different parts
Software development as a project an overview
Why projects fail, how to make them succeed.

Many software organizations have problems delivering quality software that is finished on time and meets the users' needs. Luckily, most software project problems have surprisingly few root causes, and these causes are well understood. Solutions to these problems have been discovered, explained, and tested in thousands of software organizations around the world. These solutions are generally straightforward and easy to implement. However, they are not always intuitive to people who do not understand project management, and that makes them difficult to introduce. It's possible to make projects succeed by recognizing the common causes of project failure, and applying basic project management principles in order to address those causes.
2: Software Project Planning

Using a Vision and Scope document to identify needs; Elements of a project plan.
If a project manager does not really understand the context in which the software is being built, then the only thing that the project team sees is the urgency; they lose track of the needs. They can see the individual problems that they are working to solve, but they may lose track of the big picture. Unless the team understands the needs that drive the project, they may end up with a narrow focus, causing them to waste time addressing problems that are of little importance to the stakeholders. It’s easy to build great software that solves the wrong problems, but the only way to build the appropriate software is for everyone in the project to understand and agree on both why and how that software will be built before the work begins. That’s the purpose of project planning.
3. Project Estimation

Helping the project team create realistic estimates.
To someone who has never estimated a project in a structured way, estimation seems little more than attempting to predict the future. This view is reinforced when off-the-cuff estimates are inaccurate and projects come in late. But a good formal estimation process, one that allows the project team to reach a consensus on the estimates, can improve the accuracy of those estimates, making it much more likely that projects will come in on time. A project manager can help the team to create successful estimates for any software project by using sound techniques and understanding what makes estimates more accurate.
4: Project Schedules

Creating, optimizing and tracking a project schedule.

The project schedule is the core of the project plan. It is used by the project manager to commit people to the project and show the organization how the work will be performed. Schedules are used to communicate final deadlines and, in some cases, to determine resource needs. They are also used as a kind of checklist to make sure that every task necessary is performed. If a task is on the schedule, the team is committed to doing it. In other words, the project schedule is the means by which the project manager brings the team and the project under control.
5: Reviews

Different practices for reviewing work products.
A review is any activity in which a work product is distributed to reviewers who examine it and give feedback. Different work products will go through different kinds of reviews: the team may do a very thorough, technical review of a software requirements specification, while the vision and scope document will be passed around via email and have higher level walkthroughs. Reviews are useful not only for finding and eliminating defects, but also for gaining consensus among the project team, securing approval from stakeholders, and aiding in professional development for team members. In all cases, the work product coming out of the review has fewer defects than it had when it was submitted—even though the author thought it was “complete” before the review. Every defect that is found during a review is a defect that someone did not have to spend time tracking down later in the project.
6: Software Requirements

Eliciting requirements, creating a software requirements specification and controlling changes.
Most software is built to meet the needs of someone other than the programmer. If those needs are going to be satisfied, the behavior of the software must be planned before the software is built. Software requirements engineering is the art and science of developing an accurate and complete definition of the behavior of software that can serve as the basis for software development. Like project management, programming, and testing, software requirements engineering encompasses a set of skills that require training and practice. Many projects are delayed (or fail completely) because development begins before anyone on the project team really understands how the software should behave. The solution to this problem is to take the time to gather and verify the software requirements — documentation that completely describes the behavior that is required of the software — before the software is designed, built, and tested.
7: Design and Programming

Reviewing the design, refactoring, unit testing and project automation.

While many development problems originate outside of the programming team, there are some basic changes that the programmers can make that will improve the quality of the code they produce. Most teams, even ones with skilled and talented programmers, are vulnerable to the same design and programming problems. These problems can be addressed with a few basic tools and techniques—which can often be put in place entirely within the programming team, without involving anyone else in the organization.

8: Software Testing

Test plans, test cases, defect tracking, automation and post-mortem reports.
In software testing, quality is defined as “conformance to requirements.” Every use case, functional requirement, and other software requirement defines a specific behavior that the software must exhibit. When the software does not behave the way that the requirements say it must behave, that is a defect. This means that your software testers are responsible for figuring out whether the software that was produced by the team behaves in the way that the requirements it was built from say that it should. Throughout the entire software project, the team does many things to find and prevent defects. Once the software has been built, it’s time to look back and make sure that it meets the requirements. The goal of software testing is to make sure that the product does what the users and stakeholders need it to do. Software testers review the final product to make sure that the initial requirements have been met.

9-10: How to diagnose and fix a troubled software project
There's an old saying: "There's only one way to be right, but a million ways to be wrong." This is not necessarily the case with software projects. In practice, the vast majority of projects go wrong in one of a small number of ways. Throughout Part I of "Applied Software Project Management," many scenarios are identified which highlight the most common causes of project failure. Lecture 1 and 2 shows how projects can fail due to problems with project planning, estimation, and failure to hold reviews. Lecture 8 shows project problems that are caused by poor requirements engineering practices, bad programming habits, or a lack of software testing. Both lectures cover many scenarios that typify how projects fail, and point to some of the tools, techniques and practices that project managers can use to fix them.
11: Understanding Change

Why change fails, and how to make your changes succeed.

It would be nice if it were sufficient to understand why projects fail, and to know how to apply specific tools, techniques and practices to fix them. Unfortunately, that's not enough. Building better software requires changing the way things are done in your organization, and change makes many people very uncomfortable. Project managers around the world have tried to implement straightforward improvements to the way they build software, only to find that they can't convince the other people in their organizations to agree to discuss those changes, much less to actually alter the way their projects are carried out. It can be frustrating to see a problem, feel like you have the solution, and not be able to do anything about it. By understanding the most common ways that people respond to change and learning how to convince or reassure the ones who are resistant to change, it is possible to overcome these obstacles and successfully make the changes that your organization needs.

Managing your organization, team and project.
In a sense, part of the job of the project manager is to serve as an information conduit. The project manager helps information flow from the team up to senior management in the form of project status and analysis information. It is his job to understand all of the work being done, so that it can be summarized to the people who make the decisions about the future of the project; they need this information to make informed and intelligent decisions. This requires that the project manager put a lot of effort into understanding what it is the team is doing and why they are doing it. The project manager cannot simply ask for estimates, fit those estimates in a schedule, and quiz the team on the percentage they’ve completed. He must understand what actions each team member is taking to complete the task, and what possible complications they are running into. The project manager is the only person looking at how the tasks interrelate; he is the only one with the perspective to see the problems and, ideally, fix them.
13: Managing an Outsourced Project

Avoiding the common pitfalls that happen when working with an outsourced vendor.
Managing projects is hard. Scope creeps, changes go uncontrolled, defects are introduced, schedules are delayed…and that’s all in your own organization, where your software engineering team is right down the hall. Imagine how difficult it is to get even these results when your team is in another organization in an entirely different building—and possibly in a city halfway around the world! When you hire a company outside your organization to build your software, you open up yourself, your project, and your organization to exactly these problems.

Old semester Notes

e-Governance : Definitions ‘E-Government' or e-Governance is defined as ‘The utilization of the Internet and the world-wide-web for delivering government information and services to the citizens.’ (United Nations, 2006; AOEMA, 2005) , Like when you are using Indian railway website to reserve or book a online ticket for you , you are using one of e-Governance application .

'Electronic Governance' essentially refers to the approach ‘How government utilized IT, ICT, and other web-based telecommunication technologies to improve and/or enhance on the efficiency and effectiveness of service delivery in the public sector.’  Like when you are using ATM facility of a Bank to collect cash any time from any where or you are using on line fund transfer facility of an Indian bank is an application of e-Governance .


Examples of e-Governance applications

Public Grievances: Electricity, Water, Telephone, Ration Card, Sanitation, Public Transport, Police Rural Services: Land Records, Below Poverty Line (BPL) /EWS Families Police: FIR Registration, Lost and Found , Valuables, Persons, Dead Bodies

Social Services: Pension ,Old Age, Widows, Exgratia Scheme ,Acquisition / Rehabilitation & Compensation ,Registration of Licenses and Certificates,Ration Cards, Birth Certificates, Death Certificate, Domicile Certificate, Caste / Tribe Certificate, Arms Renewal, Registration of Documents, School Registration, University Registration, Motor Vehicle Registration, Driving License Public Information:

Employment Exchange Registration, Employment Opportunities, Examination Results, Hospitals / Beds Availability / Services, Railway Time Tables, Airline Time Tables, Road Transport Time Tables, Charitable Trusts, Government Notifications, Government Forms, Government Schemes EWS Services:

Civil supplies, Old Age Pension, Widow Pension, Handicapped Pension / Services, Ex Gratia Payment Agriculture Sector:

Speeds Information, Pesticides, Fertilizers, Crop disease, Weather Forecast - short range / District wise, Market Price Utility Payments / Billing

Electricity, Water, Telephone Commercial Taxation & Return Filing, Income Tax, Corporate Tax, Custom Duty, Central / State Excise Duty, Sales Tax, House Tax, Property Tax, Road Tax, Company Returns Government:

Electronic Procurement, Education University Model for E-Governance


Evolution of e-governance
E‐Governance originated in India during the seventies with a focus on in‐house government
applications in the areas of defence, economic monitoring, planning and the deployment of ICT to manage data intensive functions related to elections, census, tax administration, etc. The efforts of the National Informatics Center (NIC) to connect all the district headquarters during the eighties was a watershed. From the early nineties, e‐governance has seen the use of IT for wider sectoral applications with policy emphasis on reaching out to rural areas and taking in greater inputs from NGOs and private sector as well. While the emphasis was initially on automation and computerization, later on forays began to be made into connectivity, networking, setting up systems for processing information and delivering services. At a micro level, this ranged from IT automation in individual departments, electronic file handling, access to entitlements, public grievance systems, service delivery for high volume routine transactions such as payment of bills, tax dues to meeting poverty alleviation goals through the promotion of entrepreneurial models and provision of market information. The thrust has varied across initiatives, with some focusing on enabling the citizen‐state interface for various government services, and others focusing on bettering livelihoods.