ABASYN UNIVERSITY PESHAWAR DEPARTMENT OF COMPUTER SCIENCE LAB TITLE Assignment # ( 1 ) Subject:- Software Project Management Submitted to:- Sir Muhammad Yasir Submitted by:- sarim khan Roll No. :- 15812 Date:- 10–10- 2022 Q # 1 :Describe project and project management? Ans :What Is The Project? According to the Association for Project Management (APM), the definition of a project is a job that is unique and temporary. Projects are carried out to achieve the planned goals and produce the desired results or benefits (outputs). Time and cost are the main foundation of a project. Therefore, a project is often said to be successful if it achieves the desired goals and results within a timescale and budget that is in accordance with the initial agreement. Some examples of projects are software development, product or service development, building construction, public infrastructure development, natural disaster social activities, and others. “Then, are projects and programs the same thing?” This is also often confused by some people. According to the Project Management Institute (PMI), projects are undertaken to create certain desired outcomes in the most efficient way. Meanwhile, the program focuses on coordinating several projects and other interrelated activities over time with the aim of bringing benefits to the organization. Broadly speaking, the project is initiated to create a predictable outcome and then closed when the results are successfully realized. Meanwhile, the program is initiated to create change and realize benefits for the organization. What Is Project Management? Like a car without fuel, a project certainly cannot run without good project management activities in it. According to PMI, project management is the activity of using specific knowledge, skills, tools, and techniques to deliver values and benefits. In simple terms, project management is the application of processes, methods, skills, knowledge, and experience to achieve the objectives of a particular project, according to agreed criteria and parameters. Project management activities to achieve these results have limitations, time and budget. This limitation also distinguishes “project management” from “management” which is a continuous process. This is also what makes a professional project worker must master various skills, techniques, resource management, and good business awareness. Q # 2 :What are 5 common problems of software project failure? Ans :Software development can be a tricky process. If you don’t get it quite right then projects can end up on the scrapheap and with a few different annoyed parties to boot. While there are some common problems that can crop up in development, knowing what they are and how they come about will help you to avoid them. Let’s take a look at 5 of the most common software development issues that people run into. 1. Agreeing to poor requirements A common issue when it comes to failures in software development is starting out on the wrong foot with poor initial requirements. While a project may not include all the requirements of the system upfront - which can be brought in later, particularly if following Agile development practices - both the client and the developer should have a fair idea of project scope in mind. How can you avoid having poor requirements? It is important to have in mind what actual software requirements look like! Here is just one example, but seek out others to get a better idea. Unfortunately, since there is usually far less knowledge of what should be required in the document from the clients’ side, they’ll need to rely on developers to guide them. The requirements gathering phase may take a considerable amount of time. 2. Poor communication between stakeholders Poor communication can happen in any of the relationships involved in the software development process, be it internally in teams, between teams, with client and project management, between finance and project management, etc., etc. This is a more common problem to run into in software development where people have not worked together previously. So how can you avoid this problem, particularly if you are a client looking to engage a new software development house or solo developers? The best way is to have a read through their feedback from previous clients. A list of accolades from previous clients with great results is usually a good indicator. 3. Missing the right team members Different software development projects need different team members depending on the project’s goals. For instance, a new startup developing a B2C web app will need more UX/UI expertise, whereas a company updating its internal legacy systems may need developers with deep C-language knowledge. The bigger the project, the more management will be necessary, too. Hiring for target-language expertise only is not the right way to go about doing software development. It is good practice to have a variety of team members, each with their own expertise, and also match each person’s experience to the type of project. 4. Costing troubles Costing troubles will always crop up in any project where either the client or development team is not experienced in costing. This is often the case in agreements on fixed price projects. Since requirements can change, this may make it difficult for developers who feel like they have already done far over and above the fiscally feasible hours they should have put into a project. They may refuse to do any further work unless a new payment plan is put into place. To reduce the risk of this occurring, it’s better for fixed prices to be avoided and instead work on an hourly rate. Clients should be able to check in on development at all times to see what has been achieved. 5. Inadequate testing Is the software full of bugs? That will happen due to inadequate testing. You can tell poorly made software when any deviations from standard workflows result in strange application behaviour. Unfortunately, this is an all too common occurrence. When continuous testing and test automation are built into the software from the beginning, it can help to alleviate the risk of inadequate testing. Another way to avoid these risks is to have large software applications comprise of microservices with APIs to communicate with each other. By building the software piecewise, and testing with each code update, we can catch bugs quickly and fix them before they combine into a mess. Q # 3 :Can I build a software project without SDLC models? Ans :Why is the SDLC important? • • • • • • • • It provides a standardized framework that defines activities and deliverables It aids in project planning, estimating, and scheduling It makes project tracking and control easier It increases visibility on all aspects of the life cycle to all stakeholders involved in the development process It increases the speed of development It improves client relations It decreases project risks It decreases project management expenses and the overall cost of production How does the SDLC work? Planning phase The planning phase encompasses all aspects of project and product management. This typically includes resource allocation, capacity planning, project scheduling, cost estimation, and provisioning. During the planning phase, the development team collects input from stakeholders involved in the project; customers, sales, internal and external experts, and developers. This input is synthesized into a detailed definition of the requirements for creating the desired software. The team also determines what resources are required to satisfy the project requirements, and then infers the associated cost. Expectations are clearly defined during this stage as well; the team determines not only what is desired in the software, but also what is NOT. The tangible deliverables produced from this phase include project plans, estimated costs, projected schedules, and procurement needs. Coding phase The coding phase includes system design in an integrated development environment. It also includes static code analysis and code review for multiple types of devices. Building Phase The building phase takes the code requirements determined earlier and uses those to begin actually building the software. Testing Phase The phase entails the evaluation of the created software. The testing team evaluates the developed product(s) in order to assess whether they meet the requirements specified in the ‘planning’ phase. Assessments entail the performance of functional testing: unit testing, codequality testing, integration testing, system testing, security testing, performance testing and acceptance testing, as well as nonfunctional testing. If a defect is identified, developers are notified. Validated (actual) defects are resolved, and a new version of the software is produced. The best method for ensuring that all tests are run regularly and reliably, is to implement automated testing. Continuous integration tools assist with this need. Release Phase The release phase involves the team packaging, managing and deploying releases across different environments. Deploy Phase In the deployment phase, the software is officially released into the production environment. Operate Phase The operate phase entails the use of the software in the production environment. Monitor Phase In the monitor phase, various elements of the software are monitored. These could include the overall system performance, user experience, new security vulnerabilities, an analysis of bugs or errors in the system. Q # 4 :Are SDLC and STLC two different aspects of software development process? Ans :- Difference between SDLC and STLC: SDLC STLC SDLC is mainly related to software development. to software testing. STLC is mainly related Besides development other phases like testing is also included. focuses only on testing the software. SDLC involves total six phases or steps. It STLC involves only five phases or steps. In SDLC, more number of members (developers) are In SDLC, development team required for the whole process. In STLC, less number of members (testers) are needed. makes the plans and designs based In STLC, testing team(Test Lead or Test on the requirements. Architect) makes the plans and designs. Goal of SDLC is to complete successful development of Goal of STLC is to complete successful software. testing of software. It helps in developing good quality software. It helps in making the software defects free. SDLC phases are completed STLC phases are performed after SDLC before the STLC phases. phases. Post deployment support , Regression tests are run by QA team to enhancement , and update are to be check deployed maintenance code and included if necessary. maintains test cases and automated scripts. SDLC STLC Creation of reusable software A tested software system is the end result of systems is the end result of SDLC. STLC. Q # 1 :Describe project and project management? Ans :What Is The Project? According to the Association for Project Management (APM), the definition of a project is a job that is unique and temporary. Projects are carried out to achieve the planned goals and produce the desired results or benefits (outputs). Time and cost are the main foundation of a project. Therefore, a project is often said to be successful if it achieves the desired goals and results within a timescale and budget that is in accordance with the initial agreement. Some examples of projects are software development, product or service development, building construction, public infrastructure development, natural disaster social activities, and others. “Then, are projects and programs the same thing?” This is also often confused by some people. According to the Project Management Institute (PMI), projects are undertaken to create certain desired outcomes in the most efficient way. Meanwhile, the program focuses on coordinating several projects and other interrelated activities over time with the aim of bringing benefits to the organization. Broadly speaking, the project is initiated to create a predictable outcome and then closed when the results are successfully realized. Meanwhile, the program is initiated to create change and realize benefits for the organization. What Is Project Management? Like a car without fuel, a project certainly cannot run without good project management activities in it. According to PMI, project management is the activity of using specific knowledge, skills, tools, and techniques to deliver values and benefits. In simple terms, project management is the application of processes, methods, skills, knowledge, and experience to achieve the objectives of a particular project, according to agreed criteria and parameters. Project management activities to achieve these results have limitations, time and budget. This limitation also distinguishes “project management” from “management” which is a continuous process. This is also what makes a professional project worker must master various skills, techniques, resource management, and good business awareness. Q # 2 :What are 5 common problems of software project failure? Ans :Software development can be a tricky process. If you don’t get it quite right then projects can end up on the scrapheap and with a few different annoyed parties to boot. While there are some common problems that can crop up in development, knowing what they are and how they come about will help you to avoid them. Let’s take a look at 5 of the most common software development issues that people run into. 3. Agreeing to poor requirements A common issue when it comes to failures in software development is starting out on the wrong foot with poor initial requirements. While a project may not include all the requirements of the system upfront - which can be brought in later, particularly if following Agile development practices - both the client and the developer should have a fair idea of project scope in mind. How can you avoid having poor requirements? It is important to have in mind what actual software requirements look like! Here is just one example, but seek out others to get a better idea. Unfortunately, since there is usually far less knowledge of what should be required in the document from the clients’ side, they’ll need to rely on developers to guide them. The requirements gathering phase may take a considerable amount of time. 4. Poor communication between stakeholders Poor communication can happen in any of the relationships involved in the software development process, be it internally in teams, between teams, with client and project management, between finance and project management, etc., etc. This is a more common problem to run into in software development where people have not worked together previously. So how can you avoid this problem, particularly if you are a client looking to engage a new software development house or solo developers? The best way is to have a read through their feedback from previous clients. A list of accolades from previous clients with great results is usually a good indicator. 3. Missing the right team members Different software development projects need different team members depending on the project’s goals. For instance, a new startup developing a B2C web app will need more UX/UI expertise, whereas a company updating its internal legacy systems may need developers with deep C-language knowledge. The bigger the project, the more management will be necessary, too. Hiring for target-language expertise only is not the right way to go about doing software development. It is good practice to have a variety of team members, each with their own expertise, and also match each person’s experience to the type of project. 4. Costing troubles Costing troubles will always crop up in any project where either the client or development team is not experienced in costing. This is often the case in agreements on fixed price projects. Since requirements can change, this may make it difficult for developers who feel like they have already done far over and above the fiscally feasible hours they should have put into a project. They may refuse to do any further work unless a new payment plan is put into place. To reduce the risk of this occurring, it’s better for fixed prices to be avoided and instead work on an hourly rate. Clients should be able to check in on development at all times to see what has been achieved. 5. Inadequate testing Is the software full of bugs? That will happen due to inadequate testing. You can tell poorly made software when any deviations from standard workflows result in strange application behaviour. Unfortunately, this is an all too common occurrence. When continuous testing and test automation are built into the software from the beginning, it can help to alleviate the risk of inadequate testing. Another way to avoid these risks is to have large software applications comprise of microservices with APIs to communicate with each other. By building the software piecewise, and testing with each code update, we can catch bugs quickly and fix them before they combine into a mess. Q # 3 :Can I build a software project without SDLC models? Ans :Why is the SDLC important? • • • • • • • • It provides a standardized framework that defines activities and deliverables It aids in project planning, estimating, and scheduling It makes project tracking and control easier It increases visibility on all aspects of the life cycle to all stakeholders involved in the development process It increases the speed of development It improves client relations It decreases project risks It decreases project management expenses and the overall cost of production How does the SDLC work? Planning phase The planning phase encompasses all aspects of project and product management. This typically includes resource allocation, capacity planning, project scheduling, cost estimation, and provisioning. During the planning phase, the development team collects input from stakeholders involved in the project; customers, sales, internal and external experts, and developers. This input is synthesized into a detailed definition of the requirements for creating the desired software. The team also determines what resources are required to satisfy the project requirements, and then infers the associated cost. Expectations are clearly defined during this stage as well; the team determines not only what is desired in the software, but also what is NOT. The tangible deliverables produced from this phase include project plans, estimated costs, projected schedules, and procurement needs. Coding phase The coding phase includes system design in an integrated development environment. It also includes static code analysis and code review for multiple types of devices. Building Phase The building phase takes the code requirements determined earlier and uses those to begin actually building the software. Testing Phase The phase entails the evaluation of the created software. The testing team evaluates the developed product(s) in order to assess whether they meet the requirements specified in the ‘planning’ phase. Assessments entail the performance of functional testing: unit testing, codequality testing, integration testing, system testing, security testing, performance testing and acceptance testing, as well as nonfunctional testing. If a defect is identified, developers are notified. Validated (actual) defects are resolved, and a new version of the software is produced. The best method for ensuring that all tests are run regularly and reliably, is to implement automated testing. Continuous integration tools assist with this need. Release Phase The release phase involves the team packaging, managing and deploying releases across different environments. Deploy Phase In the deployment phase, the software is officially released into the production environment. Operate Phase The operate phase entails the use of the software in the production environment. Monitor Phase In the monitor phase, various elements of the software are monitored. These could include the overall system performance, user experience, new security vulnerabilities, an analysis of bugs or errors in the system. Q # 4 :Are SDLC and STLC two different aspects of software development process? Ans :- Difference between SDLC and STLC: SDLC STLC SDLC is mainly related to software development. to software testing. STLC is mainly related Besides development other phases like testing is also included. focuses only on testing the software. SDLC involves total six phases or steps. It STLC involves only five phases or steps. In SDLC, more number of members (developers) are In SDLC, development team required for the whole process. In STLC, less number of members (testers) are needed. makes the plans and designs based In STLC, testing team(Test Lead or Test on the requirements. Architect) makes the plans and designs. Goal of SDLC is to complete successful development of Goal of STLC is to complete successful software. testing of software. It helps in developing good quality software. It helps in making the software defects free. SDLC phases are completed STLC phases are performed after SDLC before the STLC phases. phases. Post deployment support , Regression tests are run by QA team to enhancement , and update are to be check deployed maintenance code and included if necessary. maintains test cases and automated scripts. SDLC STLC Creation of reusable software A tested software system is the end result of systems is the end result of SDLC. STLC. Q # 1 :Describe project and project management? Ans :What Is The Project? According to the Association for Project Management (APM), the definition of a project is a job that is unique and temporary. Projects are carried out to achieve the planned goals and produce the desired results or benefits (outputs). Time and cost are the main foundation of a project. Therefore, a project is often said to be successful if it achieves the desired goals and results within a timescale and budget that is in accordance with the initial agreement. Some examples of projects are software development, product or service development, building construction, public infrastructure development, natural disaster social activities, and others. “Then, are projects and programs the same thing?” This is also often confused by some people. According to the Project Management Institute (PMI), projects are undertaken to create certain desired outcomes in the most efficient way. Meanwhile, the program focuses on coordinating several projects and other interrelated activities over time with the aim of bringing benefits to the organization. Broadly speaking, the project is initiated to create a predictable outcome and then closed when the results are successfully realized. Meanwhile, the program is initiated to create change and realize benefits for the organization. What Is Project Management? Like a car without fuel, a project certainly cannot run without good project management activities in it. According to PMI, project management is the activity of using specific knowledge, skills, tools, and techniques to deliver values and benefits. In simple terms, project management is the application of processes, methods, skills, knowledge, and experience to achieve the objectives of a particular project, according to agreed criteria and parameters. Project management activities to achieve these results have limitations, time and budget. This limitation also distinguishes “project management” from “management” which is a continuous process. This is also what makes a professional project worker must master various skills, techniques, resource management, and good business awareness. Q # 2 :What are 5 common problems of software project failure? Ans :Software development can be a tricky process. If you don’t get it quite right then projects can end up on the scrapheap and with a few different annoyed parties to boot. While there are some common problems that can crop up in development, knowing what they are and how they come about will help you to avoid them. Let’s take a look at 5 of the most common software development issues that people run into. 5. Agreeing to poor requirements A common issue when it comes to failures in software development is starting out on the wrong foot with poor initial requirements. While a project may not include all the requirements of the system upfront - which can be brought in later, particularly if following Agile development practices - both the client and the developer should have a fair idea of project scope in mind. How can you avoid having poor requirements? It is important to have in mind what actual software requirements look like! Here is just one example, but seek out others to get a better idea. Unfortunately, since there is usually far less knowledge of what should be required in the document from the clients’ side, they’ll need to rely on developers to guide them. The requirements gathering phase may take a considerable amount of time. 6. Poor communication between stakeholders Poor communication can happen in any of the relationships involved in the software development process, be it internally in teams, between teams, with client and project management, between finance and project management, etc., etc. This is a more common problem to run into in software development where people have not worked together previously. So how can you avoid this problem, particularly if you are a client looking to engage a new software development house or solo developers? The best way is to have a read through their feedback from previous clients. A list of accolades from previous clients with great results is usually a good indicator. 3. Missing the right team members Different software development projects need different team members depending on the project’s goals. For instance, a new startup developing a B2C web app will need more UX/UI expertise, whereas a company updating its internal legacy systems may need developers with deep C-language knowledge. The bigger the project, the more management will be necessary, too. Hiring for target-language expertise only is not the right way to go about doing software development. It is good practice to have a variety of team members, each with their own expertise, and also match each person’s experience to the type of project. 4. Costing troubles Costing troubles will always crop up in any project where either the client or development team is not experienced in costing. This is often the case in agreements on fixed price projects. Since requirements can change, this may make it difficult for developers who feel like they have already done far over and above the fiscally feasible hours they should have put into a project. They may refuse to do any further work unless a new payment plan is put into place. To reduce the risk of this occurring, it’s better for fixed prices to be avoided and instead work on an hourly rate. Clients should be able to check in on development at all times to see what has been achieved. 5. Inadequate testing Is the software full of bugs? That will happen due to inadequate testing. You can tell poorly made software when any deviations from standard workflows result in strange application behaviour. Unfortunately, this is an all too common occurrence. When continuous testing and test automation are built into the software from the beginning, it can help to alleviate the risk of inadequate testing. Another way to avoid these risks is to have large software applications comprise of microservices with APIs to communicate with each other. By building the software piecewise, and testing with each code update, we can catch bugs quickly and fix them before they combine into a mess. Q # 3 :Can I build a software project without SDLC models? Ans :Why is the SDLC important? • • • • • • • • It provides a standardized framework that defines activities and deliverables It aids in project planning, estimating, and scheduling It makes project tracking and control easier It increases visibility on all aspects of the life cycle to all stakeholders involved in the development process It increases the speed of development It improves client relations It decreases project risks It decreases project management expenses and the overall cost of production How does the SDLC work? Planning phase The planning phase encompasses all aspects of project and product management. This typically includes resource allocation, capacity planning, project scheduling, cost estimation, and provisioning. During the planning phase, the development team collects input from stakeholders involved in the project; customers, sales, internal and external experts, and developers. This input is synthesized into a detailed definition of the requirements for creating the desired software. The team also determines what resources are required to satisfy the project requirements, and then infers the associated cost. Expectations are clearly defined during this stage as well; the team determines not only what is desired in the software, but also what is NOT. The tangible deliverables produced from this phase include project plans, estimated costs, projected schedules, and procurement needs. Coding phase The coding phase includes system design in an integrated development environment. It also includes static code analysis and code review for multiple types of devices. Building Phase The building phase takes the code requirements determined earlier and uses those to begin actually building the software. Testing Phase The phase entails the evaluation of the created software. The testing team evaluates the developed product(s) in order to assess whether they meet the requirements specified in the ‘planning’ phase. Assessments entail the performance of functional testing: unit testing, codequality testing, integration testing, system testing, security testing, performance testing and acceptance testing, as well as nonfunctional testing. If a defect is identified, developers are notified. Validated (actual) defects are resolved, and a new version of the software is produced. The best method for ensuring that all tests are run regularly and reliably, is to implement automated testing. Continuous integration tools assist with this need. Release Phase The release phase involves the team packaging, managing and deploying releases across different environments. Deploy Phase In the deployment phase, the software is officially released into the production environment. Operate Phase The operate phase entails the use of the software in the production environment. Monitor Phase In the monitor phase, various elements of the software are monitored. These could include the overall system performance, user experience, new security vulnerabilities, an analysis of bugs or errors in the system. Q # 4 :Are SDLC and STLC two different aspects of software development process? Ans :- Difference between SDLC and STLC: SDLC STLC SDLC is mainly related to software development. to software testing. STLC is mainly related Besides development other phases like testing is also included. focuses only on testing the software. SDLC involves total six phases or steps. It STLC involves only five phases or steps. In SDLC, more number of members (developers) are In SDLC, development team required for the whole process. In STLC, less number of members (testers) are needed. makes the plans and designs based In STLC, testing team(Test Lead or Test on the requirements. Architect) makes the plans and designs. Goal of SDLC is to complete successful development of Goal of STLC is to complete successful software. testing of software. It helps in developing good quality software. It helps in making the software defects free. SDLC phases are completed STLC phases are performed after SDLC before the STLC phases. phases. Post deployment support , Regression tests are run by QA team to enhancement , and update are to be check deployed maintenance code and included if necessary. maintains test cases and automated scripts. SDLC STLC Creation of reusable software A tested software system is the end result of systems is the end result of SDLC. STLC. Q # 1 :Describe project and project management? Ans :What Is The Project? According to the Association for Project Management (APM), the definition of a project is a job that is unique and temporary. Projects are carried out to achieve the planned goals and produce the desired results or benefits (outputs). Time and cost are the main foundation of a project. Therefore, a project is often said to be successful if it achieves the desired goals and results within a timescale and budget that is in accordance with the initial agreement. Some examples of projects are software development, product or service development, building construction, public infrastructure development, natural disaster social activities, and others. “Then, are projects and programs the same thing?” This is also often confused by some people. According to the Project Management Institute (PMI), projects are undertaken to create certain desired outcomes in the most efficient way. Meanwhile, the program focuses on coordinating several projects and other interrelated activities over time with the aim of bringing benefits to the organization. Broadly speaking, the project is initiated to create a predictable outcome and then closed when the results are successfully realized. Meanwhile, the program is initiated to create change and realize benefits for the organization. What Is Project Management? Like a car without fuel, a project certainly cannot run without good project management activities in it. According to PMI, project management is the activity of using specific knowledge, skills, tools, and techniques to deliver values and benefits. In simple terms, project management is the application of processes, methods, skills, knowledge, and experience to achieve the objectives of a particular project, according to agreed criteria and parameters. Project management activities to achieve these results have limitations, time and budget. This limitation also distinguishes “project management” from “management” which is a continuous process. This is also what makes a professional project worker must master various skills, techniques, resource management, and good business awareness. Q # 2 :What are 5 common problems of software project failure? Ans :Software development can be a tricky process. If you don’t get it quite right then projects can end up on the scrapheap and with a few different annoyed parties to boot. While there are some common problems that can crop up in development, knowing what they are and how they come about will help you to avoid them. Let’s take a look at 5 of the most common software development issues that people run into. 7. Agreeing to poor requirements A common issue when it comes to failures in software development is starting out on the wrong foot with poor initial requirements. While a project may not include all the requirements of the system upfront - which can be brought in later, particularly if following Agile development practices - both the client and the developer should have a fair idea of project scope in mind. How can you avoid having poor requirements? It is important to have in mind what actual software requirements look like! Here is just one example, but seek out others to get a better idea. Unfortunately, since there is usually far less knowledge of what should be required in the document from the clients’ side, they’ll need to rely on developers to guide them. The requirements gathering phase may take a considerable amount of time. 8. Poor communication between stakeholders Poor communication can happen in any of the relationships involved in the software development process, be it internally in teams, between teams, with client and project management, between finance and project management, etc., etc. This is a more common problem to run into in software development where people have not worked together previously. So how can you avoid this problem, particularly if you are a client looking to engage a new software development house or solo developers? The best way is to have a read through their feedback from previous clients. A list of accolades from previous clients with great results is usually a good indicator. 3. Missing the right team members Different software development projects need different team members depending on the project’s goals. For instance, a new startup developing a B2C web app will need more UX/UI expertise, whereas a company updating its internal legacy systems may need developers with deep C-language knowledge. The bigger the project, the more management will be necessary, too. Hiring for target-language expertise only is not the right way to go about doing software development. It is good practice to have a variety of team members, each with their own expertise, and also match each person’s experience to the type of project. 4. Costing troubles Costing troubles will always crop up in any project where either the client or development team is not experienced in costing. This is often the case in agreements on fixed price projects. Since requirements can change, this may make it difficult for developers who feel like they have already done far over and above the fiscally feasible hours they should have put into a project. They may refuse to do any further work unless a new payment plan is put into place. To reduce the risk of this occurring, it’s better for fixed prices to be avoided and instead work on an hourly rate. Clients should be able to check in on development at all times to see what has been achieved. 5. Inadequate testing Is the software full of bugs? That will happen due to inadequate testing. You can tell poorly made software when any deviations from standard workflows result in strange application behaviour. Unfortunately, this is an all too common occurrence. When continuous testing and test automation are built into the software from the beginning, it can help to alleviate the risk of inadequate testing. Another way to avoid these risks is to have large software applications comprise of microservices with APIs to communicate with each other. By building the software piecewise, and testing with each code update, we can catch bugs quickly and fix them before they combine into a mess. Q # 3 :Can I build a software project without SDLC models? Ans :Why is the SDLC important? • • • • • • • • It provides a standardized framework that defines activities and deliverables It aids in project planning, estimating, and scheduling It makes project tracking and control easier It increases visibility on all aspects of the life cycle to all stakeholders involved in the development process It increases the speed of development It improves client relations It decreases project risks It decreases project management expenses and the overall cost of production How does the SDLC work? Planning phase The planning phase encompasses all aspects of project and product management. This typically includes resource allocation, capacity planning, project scheduling, cost estimation, and provisioning. During the planning phase, the development team collects input from stakeholders involved in the project; customers, sales, internal and external experts, and developers. This input is synthesized into a detailed definition of the requirements for creating the desired software. The team also determines what resources are required to satisfy the project requirements, and then infers the associated cost. Expectations are clearly defined during this stage as well; the team determines not only what is desired in the software, but also what is NOT. The tangible deliverables produced from this phase include project plans, estimated costs, projected schedules, and procurement needs. Coding phase The coding phase includes system design in an integrated development environment. It also includes static code analysis and code review for multiple types of devices. Building Phase The building phase takes the code requirements determined earlier and uses those to begin actually building the software. Testing Phase The phase entails the evaluation of the created software. The testing team evaluates the developed product(s) in order to assess whether they meet the requirements specified in the ‘planning’ phase. Assessments entail the performance of functional testing: unit testing, codequality testing, integration testing, system testing, security testing, performance testing and acceptance testing, as well as nonfunctional testing. If a defect is identified, developers are notified. Validated (actual) defects are resolved, and a new version of the software is produced. The best method for ensuring that all tests are run regularly and reliably, is to implement automated testing. Continuous integration tools assist with this need. Release Phase The release phase involves the team packaging, managing and deploying releases across different environments. Deploy Phase In the deployment phase, the software is officially released into the production environment. Operate Phase The operate phase entails the use of the software in the production environment. Monitor Phase In the monitor phase, various elements of the software are monitored. These could include the overall system performance, user experience, new security vulnerabilities, an analysis of bugs or errors in the system. Q # 4 :Are SDLC and STLC two different aspects of software development process? Ans :- Difference between SDLC and STLC: SDLC STLC SDLC is mainly related to software development. to software testing. STLC is mainly related Besides development other phases like testing is also included. focuses only on testing the software. SDLC involves total six phases or steps. It STLC involves only five phases or steps. In SDLC, more number of members (developers) are In SDLC, development team required for the whole process. In STLC, less number of members (testers) are needed. makes the plans and designs based In STLC, testing team(Test Lead or Test on the requirements. Architect) makes the plans and designs. Goal of SDLC is to complete successful development of Goal of STLC is to complete successful software. testing of software. It helps in developing good quality software. It helps in making the software defects free. SDLC phases are completed STLC phases are performed after SDLC before the STLC phases. phases. Post deployment support , Regression tests are run by QA team to enhancement , and update are to be check deployed maintenance code and included if necessary. maintains test cases and automated scripts. SDLC STLC Creation of reusable software A tested software system is the end result of systems is the end result of SDLC. STLC. Q # 1 :Describe project and project management? Ans :What Is The Project? According to the Association for Project Management (APM), the definition of a project is a job that is unique and temporary. Projects are carried out to achieve the planned goals and produce the desired results or benefits (outputs). Time and cost are the main foundation of a project. Therefore, a project is often said to be successful if it achieves the desired goals and results within a timescale and budget that is in accordance with the initial agreement. Some examples of projects are software development, product or service development, building construction, public infrastructure development, natural disaster social activities, and others. “Then, are projects and programs the same thing?” This is also often confused by some people. According to the Project Management Institute (PMI), projects are undertaken to create certain desired outcomes in the most efficient way. Meanwhile, the program focuses on coordinating several projects and other interrelated activities over time with the aim of bringing benefits to the organization. Broadly speaking, the project is initiated to create a predictable outcome and then closed when the results are successfully realized. Meanwhile, the program is initiated to create change and realize benefits for the organization. What Is Project Management? Like a car without fuel, a project certainly cannot run without good project management activities in it. According to PMI, project management is the activity of using specific knowledge, skills, tools, and techniques to deliver values and benefits. In simple terms, project management is the application of processes, methods, skills, knowledge, and experience to achieve the objectives of a particular project, according to agreed criteria and parameters. Project management activities to achieve these results have limitations, time and budget. This limitation also distinguishes “project management” from “management” which is a continuous process. This is also what makes a professional project worker must master various skills, techniques, resource management, and good business awareness. Q # 2 :What are 5 common problems of software project failure? Ans :Software development can be a tricky process. If you don’t get it quite right then projects can end up on the scrapheap and with a few different annoyed parties to boot. While there are some common problems that can crop up in development, knowing what they are and how they come about will help you to avoid them. Let’s take a look at 5 of the most common software development issues that people run into. 9. Agreeing to poor requirements A common issue when it comes to failures in software development is starting out on the wrong foot with poor initial requirements. While a project may not include all the requirements of the system upfront - which can be brought in later, particularly if following Agile development practices - both the client and the developer should have a fair idea of project scope in mind. How can you avoid having poor requirements? It is important to have in mind what actual software requirements look like! Here is just one example, but seek out others to get a better idea. Unfortunately, since there is usually far less knowledge of what should be required in the document from the clients’ side, they’ll need to rely on developers to guide them. The requirements gathering phase may take a considerable amount of time. 10. Poor communication between stakeholders Poor communication can happen in any of the relationships involved in the software development process, be it internally in teams, between teams, with client and project management, between finance and project management, etc., etc. This is a more common problem to run into in software development where people have not worked together previously. So how can you avoid this problem, particularly if you are a client looking to engage a new software development house or solo developers? The best way is to have a read through their feedback from previous clients. A list of accolades from previous clients with great results is usually a good indicator. 3. Missing the right team members Different software development projects need different team members depending on the project’s goals. For instance, a new startup developing a B2C web app will need more UX/UI expertise, whereas a company updating its internal legacy systems may need developers with deep C-language knowledge. The bigger the project, the more management will be necessary, too. Hiring for target-language expertise only is not the right way to go about doing software development. It is good practice to have a variety of team members, each with their own expertise, and also match each person’s experience to the type of project. 4. Costing troubles Costing troubles will always crop up in any project where either the client or development team is not experienced in costing. This is often the case in agreements on fixed price projects. Since requirements can change, this may make it difficult for developers who feel like they have already done far over and above the fiscally feasible hours they should have put into a project. They may refuse to do any further work unless a new payment plan is put into place. To reduce the risk of this occurring, it’s better for fixed prices to be avoided and instead work on an hourly rate. Clients should be able to check in on development at all times to see what has been achieved. 5. Inadequate testing Is the software full of bugs? That will happen due to inadequate testing. You can tell poorly made software when any deviations from standard workflows result in strange application behaviour. Unfortunately, this is an all too common occurrence. When continuous testing and test automation are built into the software from the beginning, it can help to alleviate the risk of inadequate testing. Another way to avoid these risks is to have large software applications comprise of microservices with APIs to communicate with each other. By building the software piecewise, and testing with each code update, we can catch bugs quickly and fix them before they combine into a mess. Q # 3 :Can I build a software project without SDLC models? Ans :Why is the SDLC important? • • • • • • • • It provides a standardized framework that defines activities and deliverables It aids in project planning, estimating, and scheduling It makes project tracking and control easier It increases visibility on all aspects of the life cycle to all stakeholders involved in the development process It increases the speed of development It improves client relations It decreases project risks It decreases project management expenses and the overall cost of production How does the SDLC work? Planning phase The planning phase encompasses all aspects of project and product management. This typically includes resource allocation, capacity planning, project scheduling, cost estimation, and provisioning. During the planning phase, the development team collects input from stakeholders involved in the project; customers, sales, internal and external experts, and developers. This input is synthesized into a detailed definition of the requirements for creating the desired software. The team also determines what resources are required to satisfy the project requirements, and then infers the associated cost. Expectations are clearly defined during this stage as well; the team determines not only what is desired in the software, but also what is NOT. The tangible deliverables produced from this phase include project plans, estimated costs, projected schedules, and procurement needs. Coding phase The coding phase includes system design in an integrated development environment. It also includes static code analysis and code review for multiple types of devices. Building Phase The building phase takes the code requirements determined earlier and uses those to begin actually building the software. Testing Phase The phase entails the evaluation of the created software. The testing team evaluates the developed product(s) in order to assess whether they meet the requirements specified in the ‘planning’ phase. Assessments entail the performance of functional testing: unit testing, codequality testing, integration testing, system testing, security testing, performance testing and acceptance testing, as well as nonfunctional testing. If a defect is identified, developers are notified. Validated (actual) defects are resolved, and a new version of the software is produced. The best method for ensuring that all tests are run regularly and reliably, is to implement automated testing. Continuous integration tools assist with this need. Release Phase The release phase involves the team packaging, managing and deploying releases across different environments. Deploy Phase In the deployment phase, the software is officially released into the production environment. Operate Phase The operate phase entails the use of the software in the production environment. Monitor Phase In the monitor phase, various elements of the software are monitored. These could include the overall system performance, user experience, new security vulnerabilities, an analysis of bugs or errors in the system. Q # 4 :Are SDLC and STLC two different aspects of software development process? Ans :- Difference between SDLC and STLC: SDLC STLC SDLC is mainly related to software development. to software testing. STLC is mainly related Besides development other phases like testing is also included. focuses only on testing the software. SDLC involves total six phases or steps. It STLC involves only five phases or steps. In SDLC, more number of members (developers) are In SDLC, development team required for the whole process. In STLC, less number of members (testers) are needed. makes the plans and designs based In STLC, testing team(Test Lead or Test on the requirements. Architect) makes the plans and designs. Goal of SDLC is to complete successful development of Goal of STLC is to complete successful software. testing of software. It helps in developing good quality software. It helps in making the software defects free. SDLC phases are completed STLC phases are performed after SDLC before the STLC phases. phases. Post deployment support , Regression tests are run by QA team to enhancement , and update are to be check deployed maintenance code and included if necessary. maintains test cases and automated scripts. SDLC STLC Creation of reusable software A tested software system is the end result of systems is the end result of SDLC. STLC. Q # 1 :Describe project and project management? Ans :What Is The Project? According to the Association for Project Management (APM), the definition of a project is a job that is unique and temporary. Projects are carried out to achieve the planned goals and produce the desired results or benefits (outputs). Time and cost are the main foundation of a project. Therefore, a project is often said to be successful if it achieves the desired goals and results within a timescale and budget that is in accordance with the initial agreement. Some examples of projects are software development, product or service development, building construction, public infrastructure development, natural disaster social activities, and others. “Then, are projects and programs the same thing?” This is also often confused by some people. According to the Project Management Institute (PMI), projects are undertaken to create certain desired outcomes in the most efficient way. Meanwhile, the program focuses on coordinating several projects and other interrelated activities over time with the aim of bringing benefits to the organization. Broadly speaking, the project is initiated to create a predictable outcome and then closed when the results are successfully realized. Meanwhile, the program is initiated to create change and realize benefits for the organization. What Is Project Management? Like a car without fuel, a project certainly cannot run without good project management activities in it. According to PMI, project management is the activity of using specific knowledge, skills, tools, and techniques to deliver values and benefits. In simple terms, project management is the application of processes, methods, skills, knowledge, and experience to achieve the objectives of a particular project, according to agreed criteria and parameters. Project management activities to achieve these results have limitations, time and budget. This limitation also distinguishes “project management” from “management” which is a continuous process. This is also what makes a professional project worker must master various skills, techniques, resource management, and good business awareness. Q # 2 :What are 5 common problems of software project failure? Ans :Software development can be a tricky process. If you don’t get it quite right then projects can end up on the scrapheap and with a few different annoyed parties to boot. While there are some common problems that can crop up in development, knowing what they are and how they come about will help you to avoid them. Let’s take a look at 5 of the most common software development issues that people run into. 11. Agreeing to poor requirements A common issue when it comes to failures in software development is starting out on the wrong foot with poor initial requirements. While a project may not include all the requirements of the system upfront - which can be brought in later, particularly if following Agile development practices - both the client and the developer should have a fair idea of project scope in mind. How can you avoid having poor requirements? It is important to have in mind what actual software requirements look like! Here is just one example, but seek out others to get a better idea. Unfortunately, since there is usually far less knowledge of what should be required in the document from the clients’ side, they’ll need to rely on developers to guide them. The requirements gathering phase may take a considerable amount of time. 12. Poor communication between stakeholders Poor communication can happen in any of the relationships involved in the software development process, be it internally in teams, between teams, with client and project management, between finance and project management, etc., etc. This is a more common problem to run into in software development where people have not worked together previously. So how can you avoid this problem, particularly if you are a client looking to engage a new software development house or solo developers? The best way is to have a read through their feedback from previous clients. A list of accolades from previous clients with great results is usually a good indicator. 3. Missing the right team members Different software development projects need different team members depending on the project’s goals. For instance, a new startup developing a B2C web app will need more UX/UI expertise, whereas a company updating its internal legacy systems may need developers with deep C-language knowledge. The bigger the project, the more management will be necessary, too. Hiring for target-language expertise only is not the right way to go about doing software development. It is good practice to have a variety of team members, each with their own expertise, and also match each person’s experience to the type of project. 4. Costing troubles Costing troubles will always crop up in any project where either the client or development team is not experienced in costing. This is often the case in agreements on fixed price projects. Since requirements can change, this may make it difficult for developers who feel like they have already done far over and above the fiscally feasible hours they should have put into a project. They may refuse to do any further work unless a new payment plan is put into place. To reduce the risk of this occurring, it’s better for fixed prices to be avoided and instead work on an hourly rate. Clients should be able to check in on development at all times to see what has been achieved. 5. Inadequate testing Is the software full of bugs? That will happen due to inadequate testing. You can tell poorly made software when any deviations from standard workflows result in strange application behaviour. Unfortunately, this is an all too common occurrence. When continuous testing and test automation are built into the software from the beginning, it can help to alleviate the risk of inadequate testing. Another way to avoid these risks is to have large software applications comprise of microservices with APIs to communicate with each other. By building the software piecewise, and testing with each code update, we can catch bugs quickly and fix them before they combine into a mess. Q # 3 :Can I build a software project without SDLC models? Ans :Why is the SDLC important? • • • • • • • • It provides a standardized framework that defines activities and deliverables It aids in project planning, estimating, and scheduling It makes project tracking and control easier It increases visibility on all aspects of the life cycle to all stakeholders involved in the development process It increases the speed of development It improves client relations It decreases project risks It decreases project management expenses and the overall cost of production How does the SDLC work? Planning phase The planning phase encompasses all aspects of project and product management. This typically includes resource allocation, capacity planning, project scheduling, cost estimation, and provisioning. During the planning phase, the development team collects input from stakeholders involved in the project; customers, sales, internal and external experts, and developers. This input is synthesized into a detailed definition of the requirements for creating the desired software. The team also determines what resources are required to satisfy the project requirements, and then infers the associated cost. Expectations are clearly defined during this stage as well; the team determines not only what is desired in the software, but also what is NOT. The tangible deliverables produced from this phase include project plans, estimated costs, projected schedules, and procurement needs. Coding phase The coding phase includes system design in an integrated development environment. It also includes static code analysis and code review for multiple types of devices. Building Phase The building phase takes the code requirements determined earlier and uses those to begin actually building the software. Testing Phase The phase entails the evaluation of the created software. The testing team evaluates the developed product(s) in order to assess whether they meet the requirements specified in the ‘planning’ phase. Assessments entail the performance of functional testing: unit testing, codequality testing, integration testing, system testing, security testing, performance testing and acceptance testing, as well as nonfunctional testing. If a defect is identified, developers are notified. Validated (actual) defects are resolved, and a new version of the software is produced. The best method for ensuring that all tests are run regularly and reliably, is to implement automated testing. Continuous integration tools assist with this need. Release Phase The release phase involves the team packaging, managing and deploying releases across different environments. Deploy Phase In the deployment phase, the software is officially released into the production environment. Operate Phase The operate phase entails the use of the software in the production environment. Monitor Phase In the monitor phase, various elements of the software are monitored. These could include the overall system performance, user experience, new security vulnerabilities, an analysis of bugs or errors in the system. Q # 4 :Are SDLC and STLC two different aspects of software development process? Ans :- Difference between SDLC and STLC: SDLC STLC SDLC is mainly related to software development. to software testing. STLC is mainly related Besides development other phases like testing is also included. focuses only on testing the software. SDLC involves total six phases or steps. It STLC involves only five phases or steps. In SDLC, more number of members (developers) are In SDLC, development team required for the whole process. In STLC, less number of members (testers) are needed. makes the plans and designs based In STLC, testing team(Test Lead or Test on the requirements. Architect) makes the plans and designs. Goal of SDLC is to complete successful development of Goal of STLC is to complete successful software. testing of software. It helps in developing good quality software. It helps in making the software defects free. SDLC phases are completed STLC phases are performed after SDLC before the STLC phases. phases. Post deployment support , Regression tests are run by QA team to enhancement , and update are to be check deployed maintenance code and included if necessary. maintains test cases and automated scripts. SDLC STLC Creation of reusable software A tested software system is the end result of systems is the end result of SDLC. STLC. Q # 1 :Describe project and project management? Ans :What Is The Project? According to the Association for Project Management (APM), the definition of a project is a job that is unique and temporary. Projects are carried out to achieve the planned goals and produce the desired results or benefits (outputs). Time and cost are the main foundation of a project. Therefore, a project is often said to be successful if it achieves the desired goals and results within a timescale and budget that is in accordance with the initial agreement. Some examples of projects are software development, product or service development, building construction, public infrastructure development, natural disaster social activities, and others. “Then, are projects and programs the same thing?” This is also often confused by some people. According to the Project Management Institute (PMI), projects are undertaken to create certain desired outcomes in the most efficient way. Meanwhile, the program focuses on coordinating several projects and other interrelated activities over time with the aim of bringing benefits to the organization. Broadly speaking, the project is initiated to create a predictable outcome and then closed when the results are successfully realized. Meanwhile, the program is initiated to create change and realize benefits for the organization. What Is Project Management? Like a car without fuel, a project certainly cannot run without good project management activities in it. According to PMI, project management is the activity of using specific knowledge, skills, tools, and techniques to deliver values and benefits. In simple terms, project management is the application of processes, methods, skills, knowledge, and experience to achieve the objectives of a particular project, according to agreed criteria and parameters. Project management activities to achieve these results have limitations, time and budget. This limitation also distinguishes “project management” from “management” which is a continuous process. This is also what makes a professional project worker must master various skills, techniques, resource management, and good business awareness. Q # 2 :What are 5 common problems of software project failure? Ans :Software development can be a tricky process. If you don’t get it quite right then projects can end up on the scrapheap and with a few different annoyed parties to boot. While there are some common problems that can crop up in development, knowing what they are and how they come about will help you to avoid them. Let’s take a look at 5 of the most common software development issues that people run into. 13. Agreeing to poor requirements A common issue when it comes to failures in software development is starting out on the wrong foot with poor initial requirements. While a project may not include all the requirements of the system upfront - which can be brought in later, particularly if following Agile development practices - both the client and the developer should have a fair idea of project scope in mind. How can you avoid having poor requirements? It is important to have in mind what actual software requirements look like! Here is just one example, but seek out others to get a better idea. Unfortunately, since there is usually far less knowledge of what should be required in the document from the clients’ side, they’ll need to rely on developers to guide them. The requirements gathering phase may take a considerable amount of time. 14. Poor communication between stakeholders Poor communication can happen in any of the relationships involved in the software development process, be it internally in teams, between teams, with client and project management, between finance and project management, etc., etc. This is a more common problem to run into in software development where people have not worked together previously. So how can you avoid this problem, particularly if you are a client looking to engage a new software development house or solo developers? The best way is to have a read through their feedback from previous clients. A list of accolades from previous clients with great results is usually a good indicator. 3. Missing the right team members Different software development projects need different team members depending on the project’s goals. For instance, a new startup developing a B2C web app will need more UX/UI expertise, whereas a company updating its internal legacy systems may need developers with deep C-language knowledge. The bigger the project, the more management will be necessary, too. Hiring for target-language expertise only is not the right way to go about doing software development. It is good practice to have a variety of team members, each with their own expertise, and also match each person’s experience to the type of project. 4. Costing troubles Costing troubles will always crop up in any project where either the client or development team is not experienced in costing. This is often the case in agreements on fixed price projects. Since requirements can change, this may make it difficult for developers who feel like they have already done far over and above the fiscally feasible hours they should have put into a project. They may refuse to do any further work unless a new payment plan is put into place. To reduce the risk of this occurring, it’s better for fixed prices to be avoided and instead work on an hourly rate. Clients should be able to check in on development at all times to see what has been achieved. 5. Inadequate testing Is the software full of bugs? That will happen due to inadequate testing. You can tell poorly made software when any deviations from standard workflows result in strange application behaviour. Unfortunately, this is an all too common occurrence. When continuous testing and test automation are built into the software from the beginning, it can help to alleviate the risk of inadequate testing. Another way to avoid these risks is to have large software applications comprise of microservices with APIs to communicate with each other. By building the software piecewise, and testing with each code update, we can catch bugs quickly and fix them before they combine into a mess. Q # 3 :Can I build a software project without SDLC models? Ans :Why is the SDLC important? • • • • • • • • It provides a standardized framework that defines activities and deliverables It aids in project planning, estimating, and scheduling It makes project tracking and control easier It increases visibility on all aspects of the life cycle to all stakeholders involved in the development process It increases the speed of development It improves client relations It decreases project risks It decreases project management expenses and the overall cost of production How does the SDLC work? Planning phase The planning phase encompasses all aspects of project and product management. This typically includes resource allocation, capacity planning, project scheduling, cost estimation, and provisioning. During the planning phase, the development team collects input from stakeholders involved in the project; customers, sales, internal and external experts, and developers. This input is synthesized into a detailed definition of the requirements for creating the desired software. The team also determines what resources are required to satisfy the project requirements, and then infers the associated cost. Expectations are clearly defined during this stage as well; the team determines not only what is desired in the software, but also what is NOT. The tangible deliverables produced from this phase include project plans, estimated costs, projected schedules, and procurement needs. Coding phase The coding phase includes system design in an integrated development environment. It also includes static code analysis and code review for multiple types of devices. Building Phase The building phase takes the code requirements determined earlier and uses those to begin actually building the software. Testing Phase The phase entails the evaluation of the created software. The testing team evaluates the developed product(s) in order to assess whether they meet the requirements specified in the ‘planning’ phase. Assessments entail the performance of functional testing: unit testing, codequality testing, integration testing, system testing, security testing, performance testing and acceptance testing, as well as nonfunctional testing. If a defect is identified, developers are notified. Validated (actual) defects are resolved, and a new version of the software is produced. The best method for ensuring that all tests are run regularly and reliably, is to implement automated testing. Continuous integration tools assist with this need. Release Phase The release phase involves the team packaging, managing and deploying releases across different environments. Deploy Phase In the deployment phase, the software is officially released into the production environment. Operate Phase The operate phase entails the use of the software in the production environment. Monitor Phase In the monitor phase, various elements of the software are monitored. These could include the overall system performance, user experience, new security vulnerabilities, an analysis of bugs or errors in the system. Q # 4 :Are SDLC and STLC two different aspects of software development process? Ans :- Difference between SDLC and STLC: SDLC STLC SDLC is mainly related to software development. to software testing. STLC is mainly related Besides development other phases like testing is also included. focuses only on testing the software. SDLC involves total six phases or steps. It STLC involves only five phases or steps. In SDLC, more number of members (developers) are In SDLC, development team required for the whole process. In STLC, less number of members (testers) are needed. makes the plans and designs based In STLC, testing team(Test Lead or Test on the requirements. Architect) makes the plans and designs. Goal of SDLC is to complete successful development of Goal of STLC is to complete successful software. testing of software. It helps in developing good quality software. It helps in making the software defects free. SDLC phases are completed STLC phases are performed after SDLC before the STLC phases. phases. Post deployment support , Regression tests are run by QA team to enhancement , and update are to be check deployed maintenance code and included if necessary. maintains test cases and automated scripts. SDLC STLC Creation of reusable software A tested software system is the end result of systems is the end result of SDLC. STLC. Q # 1 :Describe project and project management? Ans :What Is The Project? According to the Association for Project Management (APM), the definition of a project is a job that is unique and temporary. Projects are carried out to achieve the planned goals and produce the desired results or benefits (outputs). Time and cost are the main foundation of a project. Therefore, a project is often said to be successful if it achieves the desired goals and results within a timescale and budget that is in accordance with the initial agreement. Some examples of projects are software development, product or service development, building construction, public infrastructure development, natural disaster social activities, and others. “Then, are projects and programs the same thing?” This is also often confused by some people. According to the Project Management Institute (PMI), projects are undertaken to create certain desired outcomes in the most efficient way. Meanwhile, the program focuses on coordinating several projects and other interrelated activities over time with the aim of bringing benefits to the organization. Broadly speaking, the project is initiated to create a predictable outcome and then closed when the results are successfully realized. Meanwhile, the program is initiated to create change and realize benefits for the organization. What Is Project Management? Like a car without fuel, a project certainly cannot run without good project management activities in it. According to PMI, project management is the activity of using specific knowledge, skills, tools, and techniques to deliver values and benefits. In simple terms, project management is the application of processes, methods, skills, knowledge, and experience to achieve the objectives of a particular project, according to agreed criteria and parameters. Project management activities to achieve these results have limitations, time and budget. This limitation also distinguishes “project management” from “management” which is a continuous process. This is also what makes a professional project worker must master various skills, techniques, resource management, and good business awareness. Q # 2 :What are 5 common problems of software project failure? Ans :Software development can be a tricky process. If you don’t get it quite right then projects can end up on the scrapheap and with a few different annoyed parties to boot. While there are some common problems that can crop up in development, knowing what they are and how they come about will help you to avoid them. Let’s take a look at 5 of the most common software development issues that people run into. 15. Agreeing to poor requirements A common issue when it comes to failures in software development is starting out on the wrong foot with poor initial requirements. While a project may not include all the requirements of the system upfront - which can be brought in later, particularly if following Agile development practices - both the client and the developer should have a fair idea of project scope in mind. How can you avoid having poor requirements? It is important to have in mind what actual software requirements look like! Here is just one example, but seek out others to get a better idea. Unfortunately, since there is usually far less knowledge of what should be required in the document from the clients’ side, they’ll need to rely on developers to guide them. The requirements gathering phase may take a considerable amount of time. 16. Poor communication between stakeholders Poor communication can happen in any of the relationships involved in the software development process, be it internally in teams, between teams, with client and project management, between finance and project management, etc., etc. This is a more common problem to run into in software development where people have not worked together previously. So how can you avoid this problem, particularly if you are a client looking to engage a new software development house or solo developers? The best way is to have a read through their feedback from previous clients. A list of accolades from previous clients with great results is usually a good indicator. 3. Missing the right team members Different software development projects need different team members depending on the project’s goals. For instance, a new startup developing a B2C web app will need more UX/UI expertise, whereas a company updating its internal legacy systems may need developers with deep C-language knowledge. The bigger the project, the more management will be necessary, too. Hiring for target-language expertise only is not the right way to go about doing software development. It is good practice to have a variety of team members, each with their own expertise, and also match each person’s experience to the type of project. 4. Costing troubles Costing troubles will always crop up in any project where either the client or development team is not experienced in costing. This is often the case in agreements on fixed price projects. Since requirements can change, this may make it difficult for developers who feel like they have already done far over and above the fiscally feasible hours they should have put into a project. They may refuse to do any further work unless a new payment plan is put into place. To reduce the risk of this occurring, it’s better for fixed prices to be avoided and instead work on an hourly rate. Clients should be able to check in on development at all times to see what has been achieved. 5. Inadequate testing Is the software full of bugs? That will happen due to inadequate testing. You can tell poorly made software when any deviations from standard workflows result in strange application behaviour. Unfortunately, this is an all too common occurrence. When continuous testing and test automation are built into the software from the beginning, it can help to alleviate the risk of inadequate testing. Another way to avoid these risks is to have large software applications comprise of microservices with APIs to communicate with each other. By building the software piecewise, and testing with each code update, we can catch bugs quickly and fix them before they combine into a mess. Q # 3 :Can I build a software project without SDLC models? Ans :Why is the SDLC important? • • • • • • • • It provides a standardized framework that defines activities and deliverables It aids in project planning, estimating, and scheduling It makes project tracking and control easier It increases visibility on all aspects of the life cycle to all stakeholders involved in the development process It increases the speed of development It improves client relations It decreases project risks It decreases project management expenses and the overall cost of production How does the SDLC work? Planning phase The planning phase encompasses all aspects of project and product management. This typically includes resource allocation, capacity planning, project scheduling, cost estimation, and provisioning. During the planning phase, the development team collects input from stakeholders involved in the project; customers, sales, internal and external experts, and developers. This input is synthesized into a detailed definition of the requirements for creating the desired software. The team also determines what resources are required to satisfy the project requirements, and then infers the associated cost. Expectations are clearly defined during this stage as well; the team determines not only what is desired in the software, but also what is NOT. The tangible deliverables produced from this phase include project plans, estimated costs, projected schedules, and procurement needs. Coding phase The coding phase includes system design in an integrated development environment. It also includes static code analysis and code review for multiple types of devices. Building Phase The building phase takes the code requirements determined earlier and uses those to begin actually building the software. Testing Phase The phase entails the evaluation of the created software. The testing team evaluates the developed product(s) in order to assess whether they meet the requirements specified in the ‘planning’ phase. Assessments entail the performance of functional testing: unit testing, codequality testing, integration testing, system testing, security testing, performance testing and acceptance testing, as well as nonfunctional testing. If a defect is identified, developers are notified. Validated (actual) defects are resolved, and a new version of the software is produced. The best method for ensuring that all tests are run regularly and reliably, is to implement automated testing. Continuous integration tools assist with this need. Release Phase The release phase involves the team packaging, managing and deploying releases across different environments. Deploy Phase In the deployment phase, the software is officially released into the production environment. Operate Phase The operate phase entails the use of the software in the production environment. Monitor Phase In the monitor phase, various elements of the software are monitored. These could include the overall system performance, user experience, new security vulnerabilities, an analysis of bugs or errors in the system. Q # 4 :Are SDLC and STLC two different aspects of software development process? Ans :- Difference between SDLC and STLC: SDLC STLC SDLC is mainly related to software development. to software testing. STLC is mainly related Besides development other phases like testing is also included. focuses only on testing the software. SDLC involves total six phases or steps. It STLC involves only five phases or steps. In SDLC, more number of members (developers) are In SDLC, development team required for the whole process. In STLC, less number of members (testers) are needed. makes the plans and designs based In STLC, testing team(Test Lead or Test on the requirements. Architect) makes the plans and designs. Goal of SDLC is to complete successful development of Goal of STLC is to complete successful software. testing of software. It helps in developing good quality software. It helps in making the software defects free. SDLC phases are completed STLC phases are performed after SDLC before the STLC phases. phases. Post deployment support , Regression tests are run by QA team to enhancement , and update are to be check deployed maintenance code and included if necessary. maintains test cases and automated scripts. SDLC STLC Creation of reusable software A tested software system is the end result of systems is the end result of SDLC. STLC. Q # 1 :Describe project and project management? Ans :What Is The Project? According to the Association for Project Management (APM), the definition of a project is a job that is unique and temporary. Projects are carried out to achieve the planned goals and produce the desired results or benefits (outputs). Time and cost are the main foundation of a project. Therefore, a project is often said to be successful if it achieves the desired goals and results within a timescale and budget that is in accordance with the initial agreement. Some examples of projects are software development, product or service development, building construction, public infrastructure development, natural disaster social activities, and others. “Then, are projects and programs the same thing?” This is also often confused by some people. According to the Project Management Institute (PMI), projects are undertaken to create certain desired outcomes in the most efficient way. Meanwhile, the program focuses on coordinating several projects and other interrelated activities over time with the aim of bringing benefits to the organization. Broadly speaking, the project is initiated to create a predictable outcome and then closed when the results are successfully realized. Meanwhile, the program is initiated to create change and realize benefits for the organization. What Is Project Management? Like a car without fuel, a project certainly cannot run without good project management activities in it. According to PMI, project management is the activity of using specific knowledge, skills, tools, and techniques to deliver values and benefits. In simple terms, project management is the application of processes, methods, skills, knowledge, and experience to achieve the objectives of a particular project, according to agreed criteria and parameters. Project management activities to achieve these results have limitations, time and budget. This limitation also distinguishes “project management” from “management” which is a continuous process. This is also what makes a professional project worker must master various skills, techniques, resource management, and good business awareness. Q # 2 :What are 5 common problems of software project failure? Ans :Software development can be a tricky process. If you don’t get it quite right then projects can end up on the scrapheap and with a few different annoyed parties to boot. While there are some common problems that can crop up in development, knowing what they are and how they come about will help you to avoid them. Let’s take a look at 5 of the most common software development issues that people run into. 17. Agreeing to poor requirements A common issue when it comes to failures in software development is starting out on the wrong foot with poor initial requirements. While a project may not include all the requirements of the system upfront - which can be brought in later, particularly if following Agile development practices - both the client and the developer should have a fair idea of project scope in mind. How can you avoid having poor requirements? It is important to have in mind what actual software requirements look like! Here is just one example, but seek out others to get a better idea. Unfortunately, since there is usually far less knowledge of what should be required in the document from the clients’ side, they’ll need to rely on developers to guide them. The requirements gathering phase may take a considerable amount of time. 18. Poor communication between stakeholders Poor communication can happen in any of the relationships involved in the software development process, be it internally in teams, between teams, with client and project management, between finance and project management, etc., etc. This is a more common problem to run into in software development where people have not worked together previously. So how can you avoid this problem, particularly if you are a client looking to engage a new software development house or solo developers? The best way is to have a read through their feedback from previous clients. A list of accolades from previous clients with great results is usually a good indicator. 3. Missing the right team members Different software development projects need different team members depending on the project’s goals. For instance, a new startup developing a B2C web app will need more UX/UI expertise, whereas a company updating its internal legacy systems may need developers with deep C-language knowledge. The bigger the project, the more management will be necessary, too. Hiring for target-language expertise only is not the right way to go about doing software development. It is good practice to have a variety of team members, each with their own expertise, and also match each person’s experience to the type of project. 4. Costing troubles Costing troubles will always crop up in any project where either the client or development team is not experienced in costing. This is often the case in agreements on fixed price projects. Since requirements can change, this may make it difficult for developers who feel like they have already done far over and above the fiscally feasible hours they should have put into a project. They may refuse to do any further work unless a new payment plan is put into place. To reduce the risk of this occurring, it’s better for fixed prices to be avoided and instead work on an hourly rate. Clients should be able to check in on development at all times to see what has been achieved. 5. Inadequate testing Is the software full of bugs? That will happen due to inadequate testing. You can tell poorly made software when any deviations from standard workflows result in strange application behaviour. Unfortunately, this is an all too common occurrence. When continuous testing and test automation are built into the software from the beginning, it can help to alleviate the risk of inadequate testing. Another way to avoid these risks is to have large software applications comprise of microservices with APIs to communicate with each other. By building the software piecewise, and testing with each code update, we can catch bugs quickly and fix them before they combine into a mess. Q # 3 :Can I build a software project without SDLC models? Ans :Why is the SDLC important? • • • • • • • • It provides a standardized framework that defines activities and deliverables It aids in project planning, estimating, and scheduling It makes project tracking and control easier It increases visibility on all aspects of the life cycle to all stakeholders involved in the development process It increases the speed of development It improves client relations It decreases project risks It decreases project management expenses and the overall cost of production How does the SDLC work? Planning phase The planning phase encompasses all aspects of project and product management. This typically includes resource allocation, capacity planning, project scheduling, cost estimation, and provisioning. During the planning phase, the development team collects input from stakeholders involved in the project; customers, sales, internal and external experts, and developers. This input is synthesized into a detailed definition of the requirements for creating the desired software. The team also determines what resources are required to satisfy the project requirements, and then infers the associated cost. Expectations are clearly defined during this stage as well; the team determines not only what is desired in the software, but also what is NOT. The tangible deliverables produced from this phase include project plans, estimated costs, projected schedules, and procurement needs. Coding phase The coding phase includes system design in an integrated development environment. It also includes static code analysis and code review for multiple types of devices. Building Phase The building phase takes the code requirements determined earlier and uses those to begin actually building the software. Testing Phase The phase entails the evaluation of the created software. The testing team evaluates the developed product(s) in order to assess whether they meet the requirements specified in the ‘planning’ phase. Assessments entail the performance of functional testing: unit testing, codequality testing, integration testing, system testing, security testing, performance testing and acceptance testing, as well as nonfunctional testing. If a defect is identified, developers are notified. Validated (actual) defects are resolved, and a new version of the software is produced. The best method for ensuring that all tests are run regularly and reliably, is to implement automated testing. Continuous integration tools assist with this need. Release Phase The release phase involves the team packaging, managing and deploying releases across different environments. Deploy Phase In the deployment phase, the software is officially released into the production environment. Operate Phase The operate phase entails the use of the software in the production environment. Monitor Phase In the monitor phase, various elements of the software are monitored. These could include the overall system performance, user experience, new security vulnerabilities, an analysis of bugs or errors in the system. Q # 4 :Are SDLC and STLC two different aspects of software development process? Ans :- Difference between SDLC and STLC: SDLC STLC SDLC is mainly related to software development. to software testing. STLC is mainly related Besides development other phases like testing is also included. focuses only on testing the software. SDLC involves total six phases or steps. It STLC involves only five phases or steps. In SDLC, more number of members (developers) are In SDLC, development team required for the whole process. In STLC, less number of members (testers) are needed. makes the plans and designs based In STLC, testing team(Test Lead or Test on the requirements. Architect) makes the plans and designs. Goal of SDLC is to complete successful development of Goal of STLC is to complete successful software. testing of software. It helps in developing good quality software. It helps in making the software defects free. SDLC phases are completed STLC phases are performed after SDLC before the STLC phases. phases. Post deployment support , Regression tests are run by QA team to enhancement , and update are to be check deployed maintenance code and included if necessary. maintains test cases and automated scripts. SDLC STLC Creation of reusable software A tested software system is the end result of systems is the end result of SDLC. STLC.