What is project management?Project management is a combination of operations such as applying knowledge, skills, tools, techniques in a project followed by the deliverables of the project. As whole project management is managing time, cost and the scope of a project.
- Generally the project management is the part of internal organizational functions.
- To perform all the tasks in the project execution we need an organization structure which will strategies the project execution & implementation.
- To carry out the project successfully one must have a clearly defined goals & objectives.
- There are several tools available for the successful project management in the market.Most common names can be coined as PERT , CPM , MS_PROJECT , GANNT CHART etc.
- The WBS (Work Breakdown Structure) is very important in the context of project management .
- The project management characteristics are complex,unique,involves high risk,constrained by time & cost.
- The project management is very much resource intensive.
- Ultimately , the successful project depends on the manger's efficiency, effectivity & performing standard of the core managerial activities , i.e. planning , organizing , staffing , Directing , controlling & coordinating.
What is triple constraint triangle in project management?Project cost, schedule and scope are depicted as a project management triangle. The triangle is formed by customer as the center point and the three aspects form the sides of triangle. In order to gain customer satisfaction, the project management team should deliver scope in propose schedule and cost. In case any leg is gets disturbed, the other two legs gets affected. For example, if the customer increases the scope, then the other two legs-schedule and cost- get affected a lot.
How do you handle change request?The impact analysis document preparation followed by re-estimation is the process of handling change request. For example, a table of customer is available in the on going project. The customer also wants the addresses to assign to the project. For that a change request is raised and then an impact analysis of the same is performed. The estimation and the financial aspect of the project are known to the client. The implementation of this change request is continued by either by signing off the client or by agreement of the upper management.
What are the CSFs in the Software project management ?The CSFs (critical success factors) for a successful software project management are listed blow:
-Change management is very essential.
-Leadership & motivating employees for giving direction.
-Team Orientation is crucial.
-Cultural & ethnic diversity is also needed for maintaing a cordial environment.As different companies around the world is having the EEo(equal employability opportunity) foe their employees.
-The cost evaluation must be done diligently in the given time frame.
-Lucidity in communication is very essential.
What is DSS?-DSS is the acronym stands for decision support system.
-DSS is used vastly in the enterprise applications , mainly MIS & ERP based SYSTEMS.
-DSS provides automation & stabilty in the decision making process of the organisation .
-DSS is of two types , i.e. structured & unstructured.
-DSS connects many flow charts in organisational process.
-DSS is used profoundly by the top level management for STRATEGY formulation & planning.
-DSS integrates many business logics with the organisational operational functions.
-DSS can be formulated & built statistically or stochastically.
Describe software and its characteristics.Software is a set of programs, which is designed to perform a well-defined task. We cannot touch the Software but it is used by hardware. Computer hardware and software are made for each other. Only hardware or software alone is useless. There are different types of software and we can roughly categories it into two types.
Example: User defined program/software and other applications that user can directly interact as Microsoft word, Microsoft Excel.
Example: Operating System and other program that supports application software.
Characteristics of software
- Software is not touchable i.e. we cannot touch the software.
- Software is not manufactured but it is developed by software engineers.
- Software is not wear out as time goes on.
Describe the 4 P’s in software project management.Software project management focuses on the four P’s: people, product, process, and project.
The People: For success of any type of project, the most important factor is the skilled people. These people participated actively for the success of project.
Software Engineering Institute has developed a people management capability maturity model (PM-CMM), that guides the organization for improve the capability of people and how to tackle complex applications.
The people management maturity model focus on the following key practice areas for software people: recruiting, selection, performance management, training, compensation, career development, organization and work design development. An organization that follows PM-CMM in the people management area has a higher success rate of software.
The Product: Before developing any software product objectives and scope should be properly defined. The software analyst and customer must meet to define product objectives and scope.
The Process: There are different types of model available that are used to develop the software.
- Linear sequential model
- Prototyping model
- RAD model
- Incremental model
- Spiral model
- WINWIN spiral model
- Component-based development model.
We can choose any model according to the need of software development and need of customer.
The Project: For the success of any project we must understand the risk/problem that may or may not come in future. According to John Reel the following ten points indicate that an information systems project is in trouble:
1. Software people don’t understand their customer’s needs.
2. The product scope is poorly defined.
3. Changes are managed poorly.
4. The chosen technology changes.
5. Business needs change or are ill-defined.
6. Deadlines are unrealistic.
7. Users are resistant.
8. Sponsorship is lost or was never properly obtained.
9. The project team lacks people with appropriate skills.
10. Managers [and practitioners] avoid best practices and lessons learned
How does a project manager can avoid the above given ten points for the success of project.Reel suggests these five-part commonsense approaches to software projects:
1. Start on the right foot.
2. Maintain momentum.
3. Track progress.
4. Make smart decisions.
5. Conduct a postmortem analysis.
What is the W5HH (WWWWWHH) principle given by Barry Boehm?Barry Boehm suggests an approach that addresses project objectives, scope, schedules, responsibilities, management and technical approaches, and required resources. He calls it the WWWWWHH principle.
- Why is the system being developed?
- What will be done, by when?
- Who is responsible for a function?
- Where are they organizationally located?
- How will the job be done technically and managerially?
- How much of each resource is needed?
What are the Framework Activities and Umbrella Activities?Framework activities are those activities that are applicable for all types of application.
- Project definition
- Engineering and construction
- Customer use
Umbrella activities are used in all the phase of SDLC. These activities are not specific to any particular life cycle stage.
1. Software Project Management
2. Formal Technical Reviews
3. Software Quality Assurance
4. Software Configuration Management
5. Re-usability Management
6. Risk Management
7. Measurement and Metrics
8. Document Preparation and Production
Describe capability maturity model (CMM).Every organization has some process to develop the software.
Software Engineering Institute (SEI) has developed a model that provides the different levels of process maturity. In this model, in every level there are some key activities required at different levels of process maturity. There are five level of capability maturity model (CMM).
Level 1: Initial.
Level 2: Repeatable.
Level 3: Defined.
Level 4: Managed.
Level 5: Optimizing.
What is the difference between direct and indirect measures?There are two types of measurement in software engineering process.
Direct measure and indirect measure.
Direct measures include cost and effort applied in the development of software. Direct measures of the software include how many lines of code (LOC) produced, execution speed, memory size, and defects reported.
Indirect measures include functionality, quality, complexity, efficiency, reliability, and maintainability of the software.
Direct measure is easy to compute compare with indirect measure of software. We can calculate the cost of the software development but it is difficult to calculate the functionality and quality of the software.
Describe size oriented Metrics.If a software organization maintains simple records, a table of size-oriented metrics can be created. Size-Oriented Metrics mainly depends upon the size of the software that has been produced. Size-oriented Metrics helps to quantify software projects by using the size of the project to normalize other quality measures. We will consider the following points while creating the table of size-oriented metrics.
- number of lines of code
- number of person-months to complete
- cost of the project
- number of pages of documentation
- number of errors corrected before release
- number of bugs found after release
Describe Function-Oriented Metrics.Function-Oriented Metrics uses the functionality of the software as the normalization value. We cannot measure the functionality of the software directly but it must be derived indirectly using other direct measures.
The concept of Function-Oriented Metrics is suggested by Albrecht who suggested a measure called the function point. While calculating function point five information domain values are considered.
- Number of user inputs
- Number of user outputs
- Number of user enquiries
- Number of files
- Number of external interfaces
To compute function points (FP), the following equation is used:
FP = count total *[0.65 + 0.01 * ?(Fi)]
Where count total is the sum of all FP entries and Fi (i = 1 to 14) is complexity adjustment values.Fi value is based on 14 question. I have not included these 14 questions here; you can get online help for these questions. Each of these questions is answered using a scale that ranges from 0 to 5. Not important-0, Incidental-1, Moderate-2, Average-3, Significant-4, Essencial-5
Compute the function point value for a project with the following information domain characteristics:
Number of user inputs: 30
Number of user outputs: 60
Number of user inquiries: 24
Number of files: 8
Number of external interfaces: 2
Assume that all complexity adjustment values are average.Solution:
How will you measure software quality?The following are main indicators to measure the software quality
Correctness, maintainability, integrity, and usability
Correctness: Software must satisfy the customer needs otherwise it provides little value to its users. If the software is working according to the customer needs then degree of correctness is high. Correctness is the degree to which the software performs its required function. The most common measure for correctness is defects per KLOC (thousands line of code).When considering the overall quality of a software product, defects are those problems reported by a user of the program after the software has been handover to the customer.
Maintainability: Software maintenance and support is one of the most important activities in software engineering. Maintainability or maintenance software engineering is the removal of defects or modification of software, after delivery of software to the customer, to improve the performance it measured through indirect measure. A simple time-oriented metric is mean-time-to-change (MTTC) is used to measure maintainability. It takes time to analyze change request, design modification, testing and distribute the change to all users.
Integrity: In general software is not hundred percent viruses free. Integrity of software is measured in terms of Threat and Security.
Integrity =? [1 – (threat × (1- security))] -> Reference: Roger S. Pressman
Threat is the probability that an attack of a specific type will occur within a given time. Security is the probability that the attack of a specific type will be keep away.
Usability: Software developed by any organization must be easy to use otherwise customer will not happy with you. Usability is an attempt to quantify that how much your software is easy to use.
What is software project planning?It is a set of activities that are collectively called project planning. In project planning a software company considers the following points.
- Scope of the project.
- Feasibility analysis.
- Deadline of the project.
- Estimation of resource cost and schedule.
- Risk analysis.
- Overall Budget.
What is the meaning of scope of the project?The functions and features that are to be delivered to the customer is called the scope of the project. Performance, user interface design, and constraints should meet the customer requirement. Software scope is can be developed after communication with all members those are directly or indirectly involved in the project.
Describe resource planning during the estimation of software project.There are three main categories of software engineering resource: people, reusable software components, and the development environment.
i. Software tools.
iii. Network Resources.
(iii) Reusable software.
i. New components.
ii. Full-experience components.
iii. Part-experience components.
iv. COTS (Commercial off-the-shelf)) components.
Describe the above resource in detail.Human Resource:
There are many people involved while developing software project. The important thing is that the involved people should be skilled, expert in their field and dedicated. If the project is small, few people can manage the entire software engineering task. If the project is very large it may be developed in different geographical location. So, the location of each human resource is specified. The number of people required for the project development can be determined only after an estimate of development effort (e.g., person-months) and deadline is made.
Software components provide the reusability. Already created DLL (components) can be directly used in current software. These components have already tested and used by team members. Organization can use the third party component that is called Off-the-shelf components. Team members can use the components that are available in the organization and have full experience with its functionality. These components are called Full-experience components. If the Members of the current software team have only limited experience in the application area represented by these components and some modifications are required then these components are called Partial-experience components.
Environmental Resources incorporates with hardware and software. All the necessary hardware and software should be present to execute your project smoothly.
Many times software delivery is late, why? Give reason.There are many reasons for late delivery of software few of them are as follows.
- Deadline is unrealistic and decided by someone who has less technical knowledge about project.
- Continue requirement change.
- The numbers of human resources are less that will be required to do the job.
- Future technical difficulties are not considered.
- Requirement is not properly provided by the project manager to the team member.
- Miscommunication among project team member that results in delays.
What are the different project scheduling techniques?Program evaluation and review technique (PERT) and the critical path method (CPM) are two project scheduling methods that can be applied to software development. CPM provides critical path to analyze project and duration. PERT uses
TE = (O + 4M + P) / 6 formula for the expected completion time. Where
M=most likely time
TE =expected time
Describe the risk in software engineering.Risk is a potential problem, it may come or it may not come while developing the software. Risks are uncertain. It is a good idea to analysis the risk, what is the chance to occur the risk, what will be the impact on the project and what are the positive planes to overcome of these risks is. There are two types of risk strategies: Reactive risk strategies and proactive risk strategies. In reactive risk strategies software team come in action when something goes wrong. A proactive risk strategy starts with long before technical work is initiated. Potential risks are identified and their impacts are analyzed. Then, the software team establishes a plan for managing risk.
What are the different types of software risks?The different types of risks are as follows.
Project risks: This type of risk can destroy your project plan. The release date of project may postpone further and cost will increase.
Technical risks: Due to technical risk implementation may become difficult or impossible. Technical risks identify different types of problem such as design, implementation, interface, verification, and maintenance problems.
Business risks: There are different types of business risk such as market risk, strategic risk, sales risk, management risk, budget risk.
What are the different Software Reengineering Activities?Different software activities are as follows:
Inventory analysis: The inventory is nothing but a type of spreadsheet model that contain detailed description of every active application. It should be updated in regular time period.
Document restructuring: Legacy system can have poor documentation or there is no documentation. Organization prepared documentation for better understand of system but is very time consuming.
Reverse engineering: It is used to extract design information from source code. We can understand the system by using reverse engineering.
Code restructuring: In legacy system some module have very poor coding pattern so it is very difficult to understand, test and maintain. In such cases, those module have coding problem, can be restructured.
Data restructuring: When data structure is weak, the data are reengineered. A program with weak data structure will be difficult to accept and enhance.
Forward engineering: Forward engineering is used to recovers design information from existing software and uses this information to change the existing system. It will improve the overall quality of the system.