Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 26 People 1.

Similar presentations


Presentation on theme: "1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 26 People 1."— Presentation transcript:

1 1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 26 People 1

2 2 CS 501 Spring 2007 Course Administration

3 3 CS 501 Spring 2007 From Lecture 1: Overall Aim of the Course We assume that you are technically proficient. You know a good deal about computing, can program reasonably, can learn more on the job. When you leave Cornell, you are going to work on production projects where success or failure costs millions of dollars. Soon you will be in charge! It may be your money! We want you to make your mistakes now and learn from your mistakes.

4 4 CS 501 Spring 2007 Future Experience What will you be doing one year from now? Ten years from now? 1.Careers outside computing 2.Careers in which you personally continue to do technical work 3.Careers in which you are responsible for the technical work of others

5 5 CS 501 Spring 2007 Careers outside Computing A computing background can be valuable in any career: management, government, law, medicine, philanthropy, etc. Education in computing is an asset: Computing is a vital part of almost every organization Education in logical thinking, tackling large tasks systematically Education in computing is a potential weakness: Not every problem can be solved by rational thinking alone Importance of skills with people, judgment, etc.

6 6 CS 501 Spring 2007 Technical Careers Super-technical positions A very few senior positions which are almost entirely technical: e.g., industrial research, universities Even these have substantial organizational aspects Mid-level technical positions Numerous mid-level professional positions Can be state-of-the-art or dead-end Computer professional report satisfaction with their choice of careers

7 7 CS 501 Spring 2007 Careers that take responsibility for the Technical Work of Others A common career progression is from being a technical expert to leading others who do technical work Senior personnel must be familiar with both the strategic organizational aspects and the computing aspects of the work, e.g., Entrepreneur Chief Information Officer Senior consultant Requires good technical insight, not detailed technical expertise Requires organizational, marketing, personnel, financial expertise Product management is a good background for such positions

8 8 CS 501 Spring 2007 Chief Information Officer The senior person in an organization responsible for technology. Usually a vice president. Other job titles include Chief Technology Officer. Background is a combination of technology and management. May have worked as a consultant (possibly internal consultant). Does not require detailed technical expertise.

9 9 CS 501 Spring 2007 High Level Decision Making Big software projects are of strategic important for organizations The senior management have a duty to understand the strategic decisions, the cost options, and the risks. Senior personnel requirement: individual who is familiar with both the strategic business aspects and the computing aspects of projects.

10 10 CS 501 Spring 2007 The Connection to the Client: CS 501 Model Client Software development team Course team

11 11 CS 501 Spring 2007 The Connection to the Client: Typical Organization Customers Software development Marketing Quality assurance Product management

12 12 CS 501 Spring 2007 Quality Assurance The task of Quality Assurance is to ensure that software products are built correctly. At Microsoft, the Quality Assurance staff is as large as the Software Development staff. Develop tools and methodology for creating software that is: testable maintainable free of bugs Validate software by reviews, inspections, testing, etc.

13 13 CS 501 Spring 2007 Product Manager The task of the Product Manager is to ensure that the right product is built and that the right trade-offs are made between timeliness, functionality and costs. This requires an understanding of: Marketing and business considerations Technical options and design criteria Communication among groups with different expertise and priorities A good Product Manager has strong technical and management skills (e.g., a computer scientist with an MBA)

14 14 CS 501 Spring 2007 Career Flexibility Nobody knows where computing will go in the future, but … If you do not learn continuously, you are going out of date fast! Go to seminars, conferences, training courses Be inquisitive – discover things for yourself Technical expertise is most valuable when combined with other skills Understand the organization that you are part of, e.g., budgets, marketing. Develop organizational skills, e.g., presentations, writing, leadership

15 15 CS 501 Spring 2007 Software Development as a Profession Question: Is software development a branch of engineering? Answer: It depends on how you define engineering. Software development demands a high degree of professionalism.

16 16 CS 501 Spring 2007 What is Engineering? A definition of engineering The profession of:... creating cost-effective solutions...... to practical problems...... by applying scientific knowledge...... and established practices...... building things... and taking responsibility for them! With this definition, software development is clearly engineering

17 17 CS 501 Spring 2007 From the National Society of Professional Engineers Only a licensed engineer may prepare, sign and seal, and submit engineering plans... for public and private clients. Licensure for individuals... is a legal requirement for those who are in responsible charge of work,... Federal, state, and municipal agencies require that certain [positions]... be filled only by licensed professional engineers. Many states have been increasingly requiring that those individuals teaching engineering must be licensed. State engineering boards are increasingly... obtaining the authority to impose civil penalties against unlicensed individuals.

18 18 CS 501 Spring 2007 What is Engineering? A second definition of engineering A professional who … is licensed by a professional society … based on a set educational program with a standard body of knowledge and specified experience … who is the only person permitted to oversee certain tasks If this is your definition of engineering it is hard to see it applied to software development

19 19 CS 501 Spring 2007 From Lecture 1: The Craft of Software Development Software products are very varied --> Client requirements are very different --> There is no standard process for software engineering --> There is no best language, operating system, platform, database system, development environment, etc. A skilled software developer knows about a wide variety of approaches, methods, tools. The craft of software engineering is to select appropriate methods for each project and apply them effectively.

20 20 CS 501 Spring 2007 Crafts, Science, Engineering Production Craft Commercial Science Professional Engineering From: Shaw and Garlan

21 21 CS 501 Spring 2007 Crafts, Science, Engineering Production Craft Commercial Science Professional Engineering From: Shaw and Garlan algorithms data structures compiler construction software development methodologies

22 22 CS 501 Spring 2007 Engineers, Texas and the ACM Proposal in the Texas legislature to license professional engineers in Software Engineering What role should the ACM play?

23 23 CS 501 Spring 2007 Software Engineering as Engineering? Part craft -- part engineering Embryonic scientific basis Evolving body of expertise ACM conclusion: Software Engineering is in too much of a craft, too uncertain, and changing too much for the apparatus of a profession Who has the expertise to define a formal Body of Knowledge? What would be in an accreditation exam?

24 24 CS 501 Spring 2007 From Lecture 1: Professional Responsibility Organizations put trust in software developers: Competence: Software that does not work effectively can destroy an organization. Confidentiality: Software developers and systems administrators may have access to highly confidential information (e.g., trade secrets, personal data). Legal environment: Software exists in a complex legal environment (e.g., intellectual property, obscenity). Acceptable use and misuse: Computer abuse can paralyze an organization (e.g., the Internet worm).

25 25 CS 501 Spring 2007 An Old Question: Safety Critical Software A software system fails and several lives are lost. An inquiry discovers that the test plan did not consider the case that caused the failure. Who is responsible: (a) The testers for not noticing the missing cases? (b) The test planners for not writing the complete test plan? (c) The managers for not having checked the test plan? (d) The client for not having done a thorough acceptance test?

26 26 CS 501 Spring 2007 Software Developers and Testers: Responsibilities Carrying out assigned tasks thoroughly and in a professional manner Being committed to the entire project -- not just tasks that have been assigned Resisting pressures to cut corners on vital tasks Alerting colleagues and management to potential problems early

27 27 CS 501 Spring 2007 Computing Management Responsibility Organization culture that expects quality Appointment of suitably qualified people to vital tasks (e.g., testing safety-critical software) Establishing and overseeing the software development process Providing time and incentives that encourage quality work Working closely with the client Accepting responsibility for work of team

28 28 CS 501 Spring 2007 Client Responsibility Organization culture that expects quality Appointment of suitably qualified people to vital tasks (e.g., technical team that will build a critical system) Reviewing requirements and design carefully Establishing and overseeing the acceptance process Providing time and incentives that encourage quality work Working closely with the software team Accepting responsibility for the resulting product


Download ppt "1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 26 People 1."

Similar presentations


Ads by Google