您的位置:首页 > 大数据 > 人工智能

Solutions to Software Engineering Foundation-PartⅠ

2005-09-04 14:24 405 查看
Building Terminology
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

People
Technology
Process
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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.

 
Responsibilities Within a Project Team
Solution to task
Rationale behind solution
Responsibility
Role
1. Creating project plan and budget plan
Project Manager
2. Managing the design and implementation of the final product
Technical Lead/Architect
3. Building and testing features designed to meet the specifications and customer expectations
Developer
4. Developing testing strategy, plans and scripts
QA/Tester
5. Maintaining and managing the build environments
Configuration Manager
6. Deciding on the final critical trade-offs
Project Manager
7. Planning and managing product deployment
Configuration Manager
 
8. Providing domain knowledge
Subject Matter Expert
 
 
9. Providing technical direction to the team members
Team Leader
10. Performing Audits
QA/Reviewer
 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.

 Project Start-up Activities

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.
 
 Critical Start-up Documents - Project Plan

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.

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐