TKT-1212 Digitaalijärjestelmien toteutus
Transcription
TKT-1212 Digitaalijärjestelmien toteutus
TKT-1212 Digitaalijärjestelmien toteutus Lec 14 – Project management Erno Salminen Department of Computer Systems Tampere University of Technology Spring 2013 Department of Computer Systems What variables define ”success” and ”failure” 1. Scope and quality – user gets the job done 2. Scedule – it is ready on time 3. Budget – it is cheap enough IT project statistics [Chaos 2009] 32% Succeeded - delivered on time, on budget, with required features and functions 44% Challenged - late, over budget, and/or with less than the required features and functions 24% Failed - cancelled prior to completion or delivered and never used [http://community.ca.com/blogs/theitgovernanceevangelist/archive/2009/05/04/understanding-project-failure-rates.aspx] #2/35 Department of Computer Systems Why talk about failure? There is not exact formula for success However, there are quite exact predictors for failure Interactive part: list 5 reasons for project failure with your partner Most of the following notes may seem obvious when written out. Nevertheless, such simple mistakes do occur in real life #3/35 Department of Computer Systems Sources R.N. Charette, Why software fails [software failure],Spectrum, IEEE, Vol. 42, Iss. 9, Sept. 2005, pp. 42 - 49. N. Holmes, The Data Doughnut and the Software Hole, Computer, Vol. 39, Iss. 6, June 2006, pp. 100 - 99. Coley consulting, Why projects fail http://www.coleyconsulting.co.uk/failure.htm W.S. Humphrey, Five reasions why software projects fail, Computer World, May 2002, http://www.computerworld.com/s/article/71209/Why_Projects_Fail #4/35 Department of Computer Systems Failure reasons fall into 3 categories 1. Project management –related 2. Context–related 3. Implementation-related Note that only category 3 is technical matter Most could be avoided with common sense and more or less human-science Although, the cited surveys discuss SW projects, the discussion may be generalized to HW and HW/SW projects as well [R.N. Charette, Why software fails [software failure],Spectrum, IEEE, Vol. 42, Iss. 9, Sept. 2005, pp. 42 - 49. ] #5/35 [N. Holmes, The Data Doughnut and the Software Hole, Computer, Vol. 39, Iss. 6, June 2006, pp. 100 - 99.] Department of Computer Systems Mng 1: Unrealistic or unarticulated project goals Get the end users involved You must infiltrate technical people to the meeting where the goals and requirements are captured There is no free lunch: ”If you choose A, you cannot have B” – R. Colwell Do you want a good car or a cheap car? Do we optimize performance or power? Most simple thing, often forgotten Don’t be too greedy “Is it feasible?” #6/35 Both from customer’s and developer’s side http://www.youtube.com/watch?v=1GSV2kVkO1w Department of Computer Systems Management 1b: unclear goals Remember also the self-evident showstoppers ”evident to one’s self and to nobody else” - A. Bierce ”Oh, I forgot to mention that our Gizmo must cost less than 1€...” Hence, aim for quantifiable goals Goals that are unambiguously met or not E.g. ”This projects cuts expenses by 8%. Expenses are calculated as...” Motivate your workers to aim for the common goal Reward them for success Don’t reward bonuses for regular or bad performance Motivation can also go terrible wrong: meaningless ”Company values” just worsen things #7/35 Department of Computer Systems Mng 2: Badly defined requirements Critical step in the project Poor requirement Fig: [J.P. Bowen, M.G. Hinchey, Ten Commandments of Formal Methods ...Ten Years Later, Computer, Vol. 39, Iss. 1, Jan. 2006, pp. 40 – 48] document creates Ambiguity for the design - which way to choose? Contradictory goals – which one is right? Most customers are inexperienced in requirement capture Get your most experienced engineers involved #8/35 Department of Computer Systems Mng 2b: Badly defined requirements Review and validate requirements thoroughly Speak up if the requirements do not make sense Get acceptance on black-and-white Track their consequences – what other parts are affected, how this can be verified in end product… Remember: Even if product meets the specification, it may not meet customer’s wishes Late changes to requirements are also problematic The sooner the better; the less the better e.g. Pentium bug: optimize area just before tape-out E.g. legendary ”Eight is beautiful” – Ken Kutaragi (Cell processor was a success, nonetheless!) #9/35 Department of Computer Systems Mng 2c: Badly defined requirements However, changes are inevitable Apply disciplined change procedure Postpone/discard most, accept only the critical changes Prioritize requirements and changes 1. These features are absolutely necessary 2. 3. They bring the biggest income They create biggest losses if they fail These might be incorporated if schedule allows These are definitely rejected ”Asialliset hommat suoritetaan, muuten ollaan kun Ellun kanat” – Vänrikki Koskela Dumbstriking real-life quote ”Even if things are lower on the priority list, they are still as important…” #10/35 Department of Computer Systems Mng 3a: Poor project management Information hiding seldom pays off Give reasons to decisions Tell what exactly was promised to the customer Everyone should have access to the requirements and code database Don’t forget where the money comes from Ensure that everyone knows in which project they are involved in Ensure that project is properly ended and not just fading within time Do not update your organizational structure every month #11/35 Department of Computer Systems Mng 3b: Poor project management Long projects are also more late Split to small projects instead of ”sqeezing” Settle few milestones that have to be met Convert the huge last week’s panic into several but smaller mid-week panics The larger the project, the greater the gap between the actual and the planned delivery date Actual Planned #12/35 [C. Jones, Social and Technical reasons for software project failure, J. Defense SW Eng., 2006] Department of Computer Systems Mng 3c: Poor project management Avoid excess bureaucracy Be careful with bonus systems #13/35 “It is easier to be forgiven than granted“ – Stuba Nikula. Follow this guideline with care ”Three managers, in three continents, wasted many hours of work for deciding, if employee can attend 150 EUR seminar” ”All important decisions [regarding tools] are made at least 2 organization steps above the level where the consequences are understood” ”No. I won’t sell you this spare part, because then we wouldn’t have any in stock, and what if someone wants to buy one? ” – true story ”We’ll give you a 50% bonus because that is what you got last year. – But this year was a great success, bonus should be 100% –Hmm, we’ll pay according to the net profit of Division E –But I work in Division B!” – true story Soviet chandeliers tore the ceilings because factory productivity was measure as kilograms– urban legend or a true story? Department of Computer Systems Mng 4: Poor estimates of needed resources Do not overestimate your (team’s) capabilities Everything takes longer than you think Remember mythical man-month [F.P. Brooks] #14/35 Many tasks won’t finish sooner with more workers Often they are more late (managing overhead grows) Compare digging a well and trench However, one ”super-designer” may account 5-10 regular engineers in certain tasks Especially verification (e.g. 40-80% of project’s time) Comments regarding the exercise work, anyone? They are rare! Make them feel comfortable, bake them cookies etc. Ensure that project has enough resources right from the start. Otherwise, you’ll be late from day one Department of Computer Systems Mng 4b: needed resources Account the other duties of the labor administrative tasks, other projects, vacations... Most people are productive when they can concentrate on one thing at a time Task switching takes time Even if the pending task is small, it is in the back in the brain and distracts concentration Multitasking reduces productivity by 20-40%. Can you afford that? [Anderson, Study: Multitasking…, CNN.com, Aug. 2001] #15/35 Department of Computer Systems On ”multitasking” Many tasks require coordinating with another team member, interrupting #16/35 the current task of the assisting member. In this atmosphere, it is not unusual for developers to fail to recall the need to perform a specific task, known as prospective memory failure. In addition, productivity is negatively affected: Czerwinski’s study [3] showed that tasks which resumed after interruption were more difficult to perform and took twice as long. O’Conaill’s study [15] found 40% of interrupted tasks are not resumed at all [during the same day] Further research [13] observed 57% of tasks were interrupted, and the time spent working uninterrupted was very small. A recent study [12] of software engineers working at Microsoft indicated that 62% of developers surveyed believed recovering from interruptions was a serious problem. Opportunities for breakdowns in communication are possible across numerous boundaries [11]. A large divide exists in communicating between managers and programmers. The reasons for this are several: technical inexperience, differing personality types, team structures,and personnel removal. Moreover, programmers are often buffered from upper management concerns, budget constraints, schedule concerns, and task priorities. Erno Salminen - April. 2011 Department of Computer Systems On ”multitasking” Citation on previous slide taken from Chris Parnin and Carsten Görg, Design Guidelines for Ambient Software Visualization in the Workplace, VISSOFT 2007: 18-25. 2006 References: [3] M. Czerwinski, E. Horvitz, and S. Wilhite. A diary study of task switching #17/35 Erno Salminen - Nov. 2008 and interruptions. In CHI ’04: Proceedings of the SIGCHI conference on Human factors in computing systems, pages 175–182, New York, NY, USA, 2004. ACM Press. [15] B. O’Conaill and D. Frohlich. Timespace in the workplace: dealing with interruptions. In CHI ’95: Conference companion on Human factors in computing systems, pages 262–263, New York, NY, USA, 1995. ACM Press. [13] G. Mark, V. M. Gonzalez, and J. Harris. No task left behind? Examining the nature of fragmented work. In CHI ’05: Proceedings of the SIGCHI conference on Human factors in computing systems, pages 321–330, New York, NY, USA, 2005. ACM Press. [12] T. D. Latoza, G. Venolia, and R. Deline. Maintaining mental models: a study of developer work habits. In ICSE ’06: Proceeding of the 28th international conference on Software engineering, pages 492–501, New York, NY, USA, 2006. ACM Press. [11] H. Krasner, B. Curtis, and N. Iscoe. Communication breakdowns and boundary spanning activities on large programming projects.Empirical studies of programmers: second workshop, pages 47–64,1987. Department of Computer Systems Mng 5: Poor reporting of the project’s status Bit boring, but essential No reason to make things look nice – be realistic and honest Seek trade-off between being a yes man and a negative creep Report concisely 1. 2. 3. 4. What has been done? How do you know it works? What has not been done although planned? Why? What will happen next? Opt for live reporting instead of written one Excess reporting is usually a sign that management does not know what people actually do #18/35 Department of Computer Systems Mng 5: Poor status reporting http://blogs.warwick.ac.uk/images/steverumsby/2007/02/15/dilbert2007916360215.gif http://space.mit.edu/cxc/local/dilbert_status_report.jpg P.S. Dilbert would be most funny if it was fictional. Unfortuantely, it is a documentary comic… #19/35 Department of Computer Systems Mng6: Unmanaged risks Mother nature is a bitch and Murphy was an optimist Prepare for the delays You don’t exactly what it is, but it will happen part delivery, manufacturing, vacations, bugs, higher priority tasks, sick leave, vacations, damaged equipment... What if COTS does not work as expected? What if our subcontractor goes out of business within 5 years? Question: How does a large project get to be one year late? Answer: One day at a time! React early! #20/35 Department of Computer Systems What happens if André is fired or quits? Mng6: Unmanaged risks Acknowledge that important people may leave Hence, all codes must have an easystart Makefile Testbench Examples Documentation Estimate risk’s probability and associated cost #21/35 Department of Computer Systems Reasons related to context Erno Salminen - April. 2011 Department of Computer Systems Context 7: Poor communication Poor communication among customers, developers, and users Right hand does not know what the left one is doing Make sure that each meeting has agenda and concise written conclusion ”Today, we’ll decide…” Prepare well if you are to present something Make sure that everyone has access to those memos Who is responsible of doing X by which date? Do not use passive voice Accept and welcome the debate Remember to ask ”stupid” questions Don’t shoot the messenger #23/35 Department of Computer Systems Context 7: Poor communication Gets worse when number of stakeholders grows Do not underestimate the power informal communication and face-to-face meetings, such as coffeebreaks Locate the team members near to each others Some prefer ”war rooms” [Teasley, IEEE Tran SW eng, 2002] I really like waiting for others in meetings, especially looking at computer booting, projector setup, looking at file browsing and guessing the file version, waiting the slide show setup (it’s F5!)… #24/35 Erno Salminen - April. 2011 Department of Computer Systems Context7: poor comm + bad req #25/35 Erno Salminen - April. 2011 Department of Computer Systems Just poor communication… http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/00000/6000/300/635 #26/35 Erno Salminen - April. 2011 Department of Computer Systems Context 8: Commercial pressure Rush to the market Feature explosion for marketing purposes (aka. scope creep) Complicates development and maintenance, overhead (area, mem. footprint, runtime, power) Overoptimizing the price Challenger shuttle O-ring… Insufficient resources Using cheap and poor EDA tools Fig. 1 [R. Boecker et al., Reducing the Gap Between What User Know and What They need to know, in. Universal Usability, 2002] #27/35 In MS Wröd Department of Computer Systems Context 9: Stakeholder politics #28/35 Stakeholder (corporate), a person, group, organization, or system who affects or can be affected by an organization's actions ”Not invented here!” ”We have always done it that way” ”We can’t optimize that because makes our older products look stupid…” Elop effect: ”Hmm, surpising, our sales drop catastrophically although we only said our product is crap” ”Are you absolutely sure that it does not infringe any existing patent?” ”Despite its novelties, we oppose your suggestions for optimization [because it may bring cutdowns in our budget in a long run]” Elop effect: [http://communities-dominate.blogs.com/brands/2011/08/coiningterm-elop-effect-when-you-combine-osborne-effect-and-ratner-effect.html] Department of Computer Systems Context 9: Stakeholder politics (2) #29/35 ”At the moment, we can’t hire anyone to send the bills” ”No, I cannot serve the paying customer because I’m making reports about our sales” ”We won’t sell your application at our store. And that is just because. And we will sue your sorry ass if you complain” ”We will offshore these jobs and the new people will master them instantly. No problem.” Erno Salminen - April. 2011 http://3.bp.blogspot.com/_Xq0nPfnJPHQ/S-1MZkeavI/AAAAAAAAAFs/uAbBPBbCxSY/s1600/dilbert.gif Department of Computer Systems Reasons related to implementation Erno Salminen - April. 2011 Department of Computer Systems Impl 10: Use of immature technology Or technology unfamiliar to the developers or vendors Project’s success should not hinge on the adequate performance of new technology A project can be based on an emerging technology thoughtful assessment that such a technology has extraordinary potential differential value achieved by being an early adopter Even in these cases, first carry out pilot projects that provide experience with the technology #31/35 ”Make sure that simple things work...” limit the scope of its implementation to minimize potential damage Department of Computer Systems Impl 11: Sloppy development practices No version control (see next slide) Poor documentation No headers in files (designer, purpose, project…) Inconsistent naming No review process Ignoring the compiler warnings Not checking return values Not using assertions 25% of admin time spent going down blind alleys due to bad msgs [Candea] ”I hope someone else will check it” ”I’ll code this first and test after that” Plain stupidity: ”What do you mean that price list must be correct? It’s an estimate, get it?” – true story [Candea, http://resist.isti.cnr.it/free_slides/dependable/candea/Lecture-08_(Manageability).pdf] #32/35 Department of Computer Systems Impl 11b: must use version control Use version control (Git, SVN, ...) Works well with text: .txt, .c, .h, .vhd, .tex, .java, .html., xml, .csv, .py… Teaches one to take logically consistent steps in a project Add files, update, commit, check log… Helps backup process Easy throw-away code prototyping Keeps track of your work (how many changes in a week?) Keeps track who did what One can go back to see any previous version Version control is must for all work #33/35 Department of Computer Systems Impl 12: Inability to manage complexity Limit the scope Divide-and-conquer, separation (orthogonalization) of concers Reuse everything you can Model-based design, model-driven engineering #34/35 Separate computation and communication Separate function and architecture Obtain early estimates and bounds Establish the critical choices early Automate the implementation via synthesis Carry out a small pilot project first Techniques for this challenge are addressed in TKT-2431 SoC Design Department of Computer Systems Impl 12b: Inability to manage complexity “The most important aspect of any design is how it is partitioned. The second most important aspect of any design is its interfaces.” – M. Keating Minimize coupling between modules Dst and source parameters always in the same order Similar naming convention Use consistent units #35/35 If some function users meters as units, no function should use millimeters Try to make functionality obvious Names should not be too long but they should also be tothe-point Try to make misuse hard (e.g. add checks and asserts to the code) Department of Computer Systems Another views Department of Computer Systems Why projects fail [Coley Consulting] 1. Lack of User Involvement 2. Long or Unrealistic Time Scales 3. Poor or No Requirements 4. Scope Creep 5. No Change Control System 6.Poor Testing #37/35 Department of Computer Systems Five reasons why software projects fail [W.S. Humhrey, ComputerWorld] 1. Unrealistic schedules 2. Inapproriate staffing “The only way to complete an engineering project rapidly and efficiently is to assign an adequate number of people and then protect them from interruptions and distractions.” Agreed! 3. Changing requirements during development 4. Poor-quality work 5. Believing in magic [http://www.computerworld.com/s/article/71209/Why_Projects_Fail] #38/35 Department of Computer Systems Another view of the schedule factors Each bar denotes a factor used in schedule estimation. For example, very capable personnel may bring up to 4.18x reduction in schedule (cost). Such factors have been refined in COCOMO II and other similar estimation methodologies. [B.W. Boehm, Improving Software Productivity, Computer, Vol. 20, Iss. 9, Sept. 1987, pp. 43 - 57.] #39/35 Erno Salminen - Nov. 2008 Department of Computer Systems Productivity factors Table shows the best and worst differences to nominal development Decrease factor is usually larger than increase It is much easier to mess up than being extra productive E.g. trying reuse crappy SW is doomed, having no inspections by 48%, high requirement creep by 77%... From: P. Goldberg, Producing Production Quality Software - Lecture 14, New York Univ., 2005, online http://www.cs.nyu.edu/artg/Producing_Production_Qualit y_Software/Fall2005/ #40/35 Department of Computer Systems Further reading on project management Robert P. Colwell, The Pentium Chronicles: The People, Passion, and Politics Behind Intel's Landmark Chips, Wiley-IEEE Computer Society, 2005 Author is former chief IA32 architect for Pentium II, III, and 4 microprocessors Brilliant stuff #41/35 Department of Computer Systems R. Colwell, Pentium Chronicles ”The very essence of engineering is the art of of compromise, of trading-off one thing to another” ”The act of codifying one’s thinking unfailingly reveals conceptual holes, mental vagueness, and outrigth errors” ”Nothing will ever be attempted if all possible objections must be first overcome” One must take some risks ”You cannot run a project from ten thousand feet” #42/35 Department of Computer Systems Further reading on project management (2) David Shippy and Mickie Phipps, The Race for a New Game Machine, Kensinkgton Publishing Corporation, 2008 Designing Cell processor at Sony/Toshiba/IBM Design Center (STI) Chip used in Playstation3 and Xbox 360 Authors lead the development of the new PowerPC processor Brilliant stuff #43/35 Department of Computer Systems Further reading History's Worst Software Bugs (Wired) http://www.wired.com/news/technology/bugs/0,2924,69355,00.html Software Horror Stories (Nachum Deshowitz, Tel Aviv University) http://www.cs.tau.ac.il/~nachumd/horror.html Failure Rate (collection of failure rate statistics from IT surveys) http://www.it-cortex.com/Stat_Failure_Rate.htm The DailyWTF http://thedailywtf.com/ More on management's role in IT project failures: the failure rate of IT projects is quite high (John Glaser) http://www.allbusiness.com/technology/306312-1.html #44/35 Department of Computer Systems
Similar documents
TIE-50200 Logiikkasynteesi
reasons for this are several: technical inexperience, differing personality types, team structures,and personnel removal. Moreover, programmers are often buffered from upper management concerns, bu...
More information