TIE-50200 Logiikkasynteesi
Transcription
TIE-50200 Logiikkasynteesi
TIE-50200 Logiikkasynteesi Lec 14 – Project management Erno Salminen Department of Computer Systems Tampere University of Technology Spring 2014 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/40 Department of Pervasive Computing 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/40 Department of Pervasive Computing 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/40 Department of Pervasive Computing 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/40 [N. Holmes, The Data Doughnut and the Software Hole, Computer, Vol. 39, Iss. 6, June 2006, pp. 100 - 99.] Department of Pervasive Computing Mng 1: Unrealistic or unarticulated project goals Get the end users involved Get technical people involved when 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 See also: #6/40 Both from customer’s and developer’s side http://www.youtube.com/watch?v=1GSV2kVkO1w http://laughingsquid.com/the-expert-a-hilarious-sketch-about-thepain-of-being-the-only-engineer-in-a-business-meeting/ Department of Pervasive Computing 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 Small details are solved ”automatically” when the common vision is clear 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/40 Department of Pervasive Computing 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/40 Department of Pervasive Computing 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 Aim for MVP (minimum viable product) Minimum set of features to gather early feedback Release early, releasy often #9/40 Department of Pervasive Computing Mng 2c: Badly defined requirements Prioritize requirements and changes 1. These features are absolutely necessary Bring the biggest revenue Create biggest losses if they fail These might be incorporated if schedule allows 3. These are definitely rejected ”Asialliset hommat suoritetaan, muuten ollaan kun Ellun kanat” – Vänrikki Koskela 2. Dumbstriking real-life quote ”Even if things are lower on the priority list, they are still as important…” Small list of personal duties for a day/week is a great help Relieves memory burden, improves concentration, helps prioritizing #10/40 Department of Pervasive Computing Mng 2d: req’ However, changes are inevitable 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!) Apply a fast disciplined change procedure Postpone/discard most, accept only the critical changes #11/40 Erno Salminen - April. 2011 Department of Pervasive Computing 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 #12/40 Department of Pervasive Computing Mng 3b: Poor project management Do not update your organizational structure every month 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 Short sprints It is psychologically rewarding to see progress The larger the project, the greater the gap between the actual and the planned delivery date In courses, the actual exercise time is often 20-80% more than students estimated #13/40 Actual Planned [C. Jones, Social and Technical reasons for software project failure, J. Defense SW Eng., 2006] FP=function point, sw complexity metric Department of Pervasive Computing Mng 3c: Poor project management Avoid excess bureaucracy Be careful with bonus systems #14/40 “It is easier to be forgiven than granted“ – Stuba Nikula. Follow this guideline with care ”Three highly paid managers, in three continents, wasted many hours of work for deciding, if employee can attend 150 EUR seminar” – true story ”All important decisions regarding EDA 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 the productivity of the lamp factory was measured as kilograms– urban legend or a true story? Department of Pervasive Computing Mng 4: Poor estimates of needed resources Do not overestimate your (team’s) capabilities Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law. Remember mythical man-month [F.P. Brooks] #15/40 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 Pervasive Computing Mng 4b: needed resources Account the other duties of the labor administrative tasks, other projects, vacations... might account 30-50% of work hours 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 distracting concentration Many tasks, e.g. debugging, require uninterrupted concentration Multitasking reduces productivity by 2040%. Can you afford that? [Anderson, Study: Multitasking…, CNN.com, Aug. 2001] #16/40 Department of Pervasive Computing On ”multitasking” Many tasks require coordinating with another team member, interrupting the current task #17/40 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 Pervasive Computing On ”multitasking” [refs] 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 #18/40 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 Pervasive Computing 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 weekly/daily live reporting instead of written one every now and then Excess reporting is usually a sign that management does not know what people actually do #19/40 Department of Pervasive Computing 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… #20/40 Department of Pervasive Computing 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 harddisk failure, 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! #21/40 Department of Pervasive Computing What happens if André is fired or quits? Mng6: Unmanaged risks Acknowledge that important people may leave Hence, all codes must have an easy-start Anyone can repeat the basics Common repository Makefile, testbench, examples, cocumentation Estimate risk’s probability and associated cost #22/40 Department of Pervasive Computing 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…” Preferably no phones, no laptops, no distractions – just the current topic Don’t wait for late comers – it’s their loss, not yours Prepare well if you are to present something Write down who is responsible for task X and when Do not use passive voice (bugs will be fixed…) Make sure that everyone has access to memos Accept and welcome the debate Remember to ask ”stupid” questions Don’t shoot the messenger #24/40 Department of Pervasive Computing 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!)…NOT #25/40 Erno Salminen - April. 2011 Department of Pervasive Computing Context7: poor comm + bad req #26/40 Erno Salminen - April. 2011 Department of Pervasive Computing Just poor communication… http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/00000/6000/300/635 #27/40 Erno Salminen - April. 2011 Department of Pervasive Computing 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] #28/40 In MS Wröd Department of Pervasive Computing Context 9: Stakeholder politics Stakeholder (corporate), a person, group, organization, or system who affects or can be affected by an organization's actions Conflict of interests arise in large consortium #29/40 Maximizing personal/own group’ profit Not everyone is honest Requires diplomacy and negotiation skills Department of Pervasive Computing Context 9: Stakeholder politics #30/40 Opposing all changes vs. useless ”improvements” Legal and regulatory matters, auditing, certification ”Not invented here!” ”We have always done it that way” ”We can’t optimize that because that makes our older product look stupid…” Elop effect: ”Hmm, this is surpising, our sales drop catastrophically when we just said our product is crap and new ones are not coming soon” ”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 Pervasive Computing Context 9: Stakeholder politics (2) #31/40 ”We will offshore these jobs and the new people will master them instantly. No problem.” ”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 have invested much money in this death march and therefore we’ll continue on and on” Erno Salminen - April. 2011 http://3.bp.blogspot.com/_Xq0nPfnJPHQ/S-1MZkeavI/AAAAAAAAAFs/uAbBPBbCxSY/s1600/dilbert.gif Department of Pervasive Computing #32/40 Erno Salminen - April. 2011 Department of Pervasive Computing http://i.snag.gy/kdu77.jpg 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 #34/40 ”Make sure that simple things work...” limit the scope of its implementation to minimize potential damage Department of Pervasive Computing Impl 11: Sloppy development practices No version control (see later slide) Some steps not repeatable by others than the orig. designer Many manual, error-prone steps #35/40 Automate as mush possbile, e.g. with scripts make, run test, analyze_perf… Unrecognized vendor-lock Licenses, EDA tool setup/projetc files, local files, OS, undocumented tricks… Creates a single point of failure, e.g. due to long sick leave Proprietary file format prevents moving to better environment/chip Design works only with certain (old) tool/OS version Non-existing/outdated/poor documentation Poor link between docs and code No review process No headers in files (designer, purpose, project…) Department of Pervasive Computing Impl 11: Sloppy development practices (2) Inadeqaute verfication/test suite Plain stupidity: ”What do you mean that price list must be correct? It’s an estimate, get it?” – true story Ignoring the compiler warnings Dead code Inconsistent naming Not checking return values Not using assertions 25% of admin time spent going down blind alleys due to bad msgs [Candea] Forgetting that code lives forever Prepare that it will be read and modified many years after development ”I hope someone else will check it” ”I’ll code this first and test after that” [Candea, http://resist.isti.cnr.it/free_slides/dependable/candea/Lecture-08_(Manageability).pdf] #36/40 Department of Pervasive Computing 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… Not just for ”ready” files Very few things are ready ever. Most things are somewhat ready and always under development Depends on company policy regarding continuous integration Helps backup process Easy throw-away code prototyping Keeps track of your work (how many #37/40 changes in a week?) Keeps track who did what One can go back to see any previous version Write reasonable commit log messages Version control is must for all work Department of Pervasive Computing 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 #38/40 Obtain early estimates and bounds Establish the critical choices early Automate the implementation via synthesis Carry out a small pilot project first Separate computation and communication Separate function and architecture Remember it’s a proof-of-concept, not final implemtation! Techniques for this challenge are addressed in TIE-50506 SystemDesign Department of Pervasive Computing Impl 12b: Inability to manage complexity Many projects have hundreds to thousands of files “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 Try to make functionality obvious Try to make misuse hard (e.g. add checks and asserts to the code) Dst and source parameters always in the same order Similar naming convention Use consistent measurement units #39/40 If some function users meters as units, no function should use millimeters Names should not be too long but they should also be tothe-point Department of Pervasive Computing Summary Many things can go wrong Some things will go wrong Often most things go ok Ensure that they are the important ones Be careful and precise Understand the real problem Don’t be greedy – Prioritize – Min. viable product Prefer real work over bureaucracy Remember where the money comes from Hopefully these generic lessons help you to recognize common pitfalls in real life and avoid them #40/40 Erno Salminen - Nov. 2008 Department of Pervasive Computing 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 http://www.coleyconsulting.co.uk/failure.htm #42/40 Department of Pervasive Computing 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] #43/40 Department of Pervasive Computing 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.] #44/40 Erno Salminen - Nov. 2008 Department of Pervasive Computing 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, high requirement creep drops productivity by 77%, skipping inspections by 48%... 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/ #45/40 Department of Pervasive Computing 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 #46/40 Department of Pervasive Computing 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” #47/40 Department of Pervasive Computing 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 E.g. ”Eight is beautiful” #48/40 Department of Pervasive Computing 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 D. Galorath, Software Project Failure Costs Billions.. Better Estimation & Planning Can Help, Galorath Inc., June 2012, [online]. http://www.galorath.com/wp/software-project-failure-costs- billions-better-estimation-planning-can-help.php #49/40 Department of Pervasive Computing
Similar documents
TKT-1212 Digitaalijärjestelmien toteutus
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...
More information