Solutions to Software Engineering Foundation-PartⅠ
2005-09-04 14:24
405 查看
Building Terminology
Responsibilities Within a Project Team
Project Start-up Activities
Critical Start-up Documents - Project Plan
Solution to task | Rationale behind solution | |||
What is software? Software is NOT just a set of programs. | Complete software is a set of programs, related documentation, and data. For example, in the above scenario it is apparent Ken has not provided appropriate manuals and documentation with the software to enable the customer to use the software successfully. | |||
What is Software Engineering? Software Engineering DOES NOT mean only documenting each step of the development cycle. | Software Engineering is a structured and systematic approach to software development. Software is developed by using an engineering approach as opposed to hardware that is manufactured. Software Engineering has three aspects to it
| |||
What is good software? The definition of good software is not limited to delivering bug-free, efficient, and user-friendly software. | A good software should also take care of the following aspects: · It should be delivered on-time · It must meet all the customer requirements (explicit & implicit) · It should have good quality · It should be user-friendly The software described in the scenario is obviously not user-friendly if the employees are facing so many problems in using it. | |||
What is good project? A good project is not limited to delivering software that meets the acceptance criteria. | A software project is not restricted to meeting the acceptance criteria. The software should fulfil all the explicit and implicit requirements of the customer. It should provide a deployable solution to address the business problem and not just meet specifications. Any software project should meet one or more needs of the business environment, for example: · Improve responsiveness of the system · Decrease cost of doing business · Provide an innovative solution The software created by Ken might be meeting the acceptance criteria for the project but is not providing a successful business solution to the client nor is it leading to business expansion for Ken’ s organization. | |||
Do you follow process or procedure while working on projects? | A process is a set of practices performed to achieve a goal. It provides a constructive, high-leverage focus on the result. The process might include tools, methods, materials, and people. There is a procedure to complete each unit of work. A process defines these units of work and establishes the link between them. A process shows flow of procedures and links them based on commonality. People follow a procedure to complete a piece of work but they need a process to know how to do it smarter and better. Had there been a defined process for working on projects, the new team described in the scenario would not have to rewrite the code created by earlier team. It is possible that some of the implicit user requirements might have been lost when the new team redid the coding and this resulted in the problems with deployment of the software. | |||
What is your definition of a good developer? Someone with a good productivity. | Productivity is a critical attribute of a good developer. However, the productivity must be determined in context of the following:· Focus on quality · Focus on software attributes such as efficiency, reusability, maintainability · Expertise with software tools · Ability to learn, innovate, and question | |||
Which is critical for the success of a developer – productivity or quality? The developer needs to be more productive to remain competitive in the industry. The QA team manages the quality. | The critical factor for a developer success is not productivity or quality but productivity and quality. The developer needs to deliver both. |
Need for a Mature Process
Solution to task | Rationale behind solution |
Why is the success of initial projects not being reflected in the new ones? The new projects belong to a different vertical as compared to those completed by the organization in the past. In addition, the new projects are being managed by new teams. The organization lacks a stated process of executing a project. A fire-fighting point (Ed Young) has been identified for the team but other than that the organization is depending on individual capabilities to complete the project successfully. | The organization has a procedure for executing projects. However, the procedure that they followed for the retail projects might not be applicable as is for the new projects. No code and documents were kept to ensure reusability of components and improve quality of new products. The organization needs a software process that defines how to execute a project. As the processes mature, the organization should be able to repeat the processes across projects and move toward a system when all the processes can be measured and managed. The organization is operating at the highest level of maturity when it is continuously optimising its work processes to enhance efficiency. |
Do you think the organization has a mature process? The organization definitely does not have mature processes for software development. | For organization to demonstrate a mature process, it should be able to develop quality software efficiently and consistently. |
How can organizations measure and improve the maturity of their processes? Organizations can adapt global software management standards such as: · ISO 9001/2000 – International Standards Organization (ISO)’s Quality System Requirements that states standards for software system quality requirements. · CMM – Capability Maturity Model, which is the most popular software process improvement initiative developed by Software Engineering Institute (SEI). | The SEI-CMM explains the activities, methods, and practices that are necessary to improve maturity of software process. The CMM model provides a set of guidelines so that organizations can make a transition from ad hoc, chaotic processes to mature, disciplined software processes. The focus is on identifying key process areas and the best practices that will help in implementing a disciplined software process. The CMM framework provides a mature model that establishes an organization-wide focus as follows: Process of doing things is repeated in subsequent projects. There are policies, procedures, and practices that commit the organization to implementing and performing consistently. Best practices are shared and implemented across projects and teams. Practices are defined such that they can be transferred across project boundaries and can be implemented as an organization-wide standard. Variations in implementing best practices are reduced. The focus is on quantitative measurement and analysis so that capability baselines are established for an organization. Practices are continuously improved to enhance capability. |
SEI-CMMi Model
Solution to task | Rationale behind solution |
Continuous assessment | The organization is a small organization and as such it does not have too many support groups. There are no defined organizational processes. However, the organization does exhibit expertise in some key process areas, which are a key to its success. Therefore, it is recommended that the organization go for a Continuous model instead of the Staged model. |
Project Management & Engineering KPAs within the Continuous model | The organization demonstrates expertise in understanding customer requirements well and converting them into viable technical solutions. As such, it will be best for the organizations to go for SEI-CMMi assessment for Project Management and Engineering process areas. |
Identifying Key Roles
Solution to task | Rationale behind solution |
Solution 1 Key Roles w Commercial Project Manager/Program Managerw Project Manager w Team Leader w Team Members/Developers w Quality Tester | This solution identifies the basic roles, which are common to any software project. For example, a Program Manager is required who can interact with the client and the Project Manager can concentrate on the project. This solution also emphasizes on Quality as planning and management of quality assurance activities is one of the key tasks required for building good projects. Though it clearly emphasizes on the development and testing aspect of the project, the other aspects related to implementation and training are missing. |
Solution 2 Key Roles w Commercial Project Manager/Program Managerw Project Manager w Team Leader w Team Members/Developers w Quality Tester w Subject Matter Expert | This solution identifies the role of a subject matter expert. For example, a Financial Expert would be required to provide technical inputs for the project in the above scenario. The implementation aspect is still missing in the solution. |
Solution 3 Key Roles w Commercial Project Manager/Program Managerw Project Manager w Team Leader w Team Members/ Developers w Quality Tester w Subject Matter Expert w Configuration Manager | This solution emphasizes on the implementation of the software and identifies configuration management as another important aspect for the success of a project. This is the best solution out of the three, because it covers all the aspects and identifies all the roles highlighted in the scenario. |
Solution to task | Rationale behind solution | ||||||||||||||||||||||
| 1. The Project Manager manages and takes decisions on all the technical aspects of the project. The project plan and cost estimation/plan is created by the Project Manager. 2. The Technical Architect is responsible for the complete design and implementation of the product. 3. Coding of the project is done by the Developer. The developer also tests each feature. 4. All the testing for quality assurance is done by the QA/Tester. 5. All aspects related to the project deployment are handled by the Configuration Manager. Building environments is a part of configuration management only. 6. As discussed earlier, the final decisions on technical issues are taken by the Project Manager. 7. Product deployment is done by the Configuration Manager. 8. The Subject Matter Expert has an expertise in specialized areas, therefore knowledge or tips are given by Subject matter Experts on different subjects. 9. The Team leader guides the team and handles all internal issues within the team. 10. The Reviewer does the final inspection and audits for the project. |
Solution to task | Rationale behind solution |
1. The project team did not study the requirements carefully. | 1. The team did not read and discuss the requirements of the project and landed up into crisis. They made assumptions and concentrated on just few requirements. |
2. The issue should have been clarified in the initial stages of the project, also known as the project start-up phase. | 2. The initial phase, also known as a project start-up phase is marked by a certain set of activities known as project start-up activities. All the requirements related to the project are given by the client in this phase. |
3. Request For proposal (RFP) should have stated this information. | 3. Prospective clients document their requirements, scope and terms and conditions into an RFP (Request for Proposal). The RFP is then floated by the client to potential service providers for bidding. |
4. The team should have properly studied the requirements for the project to avoid chaos. | 4. The team should have studied the RFP thoroughly and should have planned accordingly. The cost and the budget should have been planned considering the fact that the project is to be delivered in three different languages. |
Critical Start-up Documents- RFP and Contract
Solution to task | Rationale behind solution |
The key components of an RFP are: · Specifications for accepting a proposal:§ Company description and background. § Company History · Purpose and details of the project. · Requirement specifications. · Platform and architecture description. · Time duration in which the project should be ready for implementation. | · Detailed company description should be included in the RFP as it will help the client in analysing and understanding the requirements. · The need and purpose for the project should be clearly defined along with as comprehensive details of the requirements as possible. · If possible, a brief description of the technical specifications and constraints of the required project should be included. For example, to be able to run on Windows platform should support all browsers. · In case there are some time restrictions, it should be mentioned clearly to avoid confusion. |
Solution to task | Rationale behind solution |
The key components of the Project plan are: w Purpose of document. w Project description/approach. w Project scope and objective. w Project team members/ role and experience. w Project quality plan. w Risk management and contingency plan. w Project pre-requisites. w Planning assumptions. w Project level product flow diagrams.w Project financial budget/ timeline.w Project level table of resource requirements.w Requested / Assigned specific resources. | · The Project management team must be clear with the purpose of creating the project plan. As it will help the tem in understanding the need of the plan and requirements of the project.· The scope (What to do) and objective of the project must be clearly defined. · Defining roles and experience of the team members helps in establishing confidence of the client in the capabilities of the vendor. · The quality plan is also defined in the beginning and the team should adhere to this plan till the end of the project. · The risks are also identified in the beginning of the project. · The plan must describe every detail of the project including the pre-requisites and assumptions so that the entire team and the client has common understanding about the current state and execution requirements of the project. · The flow of information and data should be drawn, as graphical representations are easier to understand for all stakeholders. · The financial constraints and project timeline must be defined. · All the details related to resources including requirements and assignment of resources. |
相关文章推荐
- Solutions to Software Engineering Foundation-PartⅡ
- RecapQuiz of Software Engineering Foundation-PartⅠ
- Introduction to Software Engineering 2017年9月20日 作业1
- Selected solutions to exercise of "The C Programming Language" 2e (Part 5)
- Why do I choose to major in software engineering?
- Software Engineering vs. CS, how to teach SE?(团队阅读作业)
- Selected solutions to exercise of "The C Programming Language" 2e (Part 6)
- How to Get My Paper Accepted at Top Software Engineering Conferences
- A Software Engineering Approach to LabVIEW
- Selected solutions to exercise of "The C Programming Language" 2e (Part 7, End of Chapter 1)
- 团队阅读作业三——Software Engineering vs. CS, how to teach SE?
- Unable to load configuration. - bean - jar:file:/H:/Program Files/Apache Software Foundation/T
- Model-View-Presenter Using The Smart Client Software Factory (Introduction To CAB/SCSF Part 25)
- Reaction to 构造之法 of Software Engineering From The First Chapter toThe Fifth Chapter
- Selected solutions to exercise of "The C Programming Language" 2e (Part 1)
- Introduction to Software Performance Testing Part
- Unable to load configuration. - bean - jar:file:/C:/Program Files/Apache Software Foundation/T
- Selected solutions to exercise of "The C Programming Language" 2e (Part 2)
- Introduction To The Smart Client Software Factory (CAB/SCSF Part 18)
- Selected solutions to exercise of "The C Programming Language" 2e (Part 3)