Atjaunināt sīkdatņu piekrišanu

Managing the Unmanageable: Rules, Tools, and Insights for Managing Software People and Teams [Mīkstie vāki]

(Jauns izdevums: 9780135667361)
3.74/5 (592 ratings by Goodreads)
  • Formāts: Paperback / softback, 464 pages, height x width x depth: 230x180x20 mm, weight: 745 g, Illustrations
  • Izdošanas datums: 16-Sep-2012
  • Izdevniecība: Addison-Wesley Educational Publishers Inc
  • ISBN-10: 032182203X
  • ISBN-13: 9780321822031 (Jauns izdevums: 9780135667361)
  • Mīkstie vāki
  • Cena: 46,25 €
  • Grāmatu piegādes laiks ir 3-4 nedēļas, ja grāmata ir uz vietas izdevniecības noliktavā. Ja izdevējam nepieciešams publicēt jaunu tirāžu, grāmatas piegāde var aizkavēties.
  • Daudzums:
  • Ielikt grozā
  • Piegādes laiks - 4-6 nedēļas
  • Pievienot vēlmju sarakstam
  • Formāts: Paperback / softback, 464 pages, height x width x depth: 230x180x20 mm, weight: 745 g, Illustrations
  • Izdošanas datums: 16-Sep-2012
  • Izdevniecība: Addison-Wesley Educational Publishers Inc
  • ISBN-10: 032182203X
  • ISBN-13: 9780321822031 (Jauns izdevums: 9780135667361)
"Mantle and Lichty have assembled a guide that will help you hire, motivate, and mentor a software development team that functions at the highest level. Their rules of thumb and coaching advice are great blueprints for new and experienced software engineering managers alike." -Tom Conrad, CTO, Pandora "I wish I'd had this material available years ago. I see lots and lots of 'meat' in here that I'll use over and over again as I try to become a better manager. The writing style is right on, and I love the personal anecdotes." -Steve Johnson, VP, Custom Solutions, DigitalFish All too often, software development is deemed unmanageable. The news is filled with stories of projects that have run catastrophically over schedule and budget. Although adding some formal discipline to the development process has improved the situation, it has by no means solved the problem. How can it be, with so much time and money spent to get software development under control, that it remains so unmanageable? In Managing the Unmanageable: Rules, Tools, and Insights for Managing Software People and Teams, Mickey W. Mantle and Ron Lichty answer that persistent question with a simple observation: You first must make programmers and software teams manageable. That is, you need to begin by understanding your people-how to hire them, motivate them, and lead them to develop and deliver great products. Drawing on their combined seventy years of software development and management experience, and highlighting the insights and wisdom of other successful managers, Mantle and Lichty provide the guidance you need to manage people and teams in order to deliver software successfully. Whether you are new to software management, or have already been working in that role, you will appreciate the real-world knowledge and practical tools packed into this guide.

Recenzijas

"Managing the Unmanageable is a well-written, must-have reference book for anyone serious about building sustainable software teams that consistently deliver high-quality solutions that meet expectations. It is loaded with incredibly useful and practical tips and tricks to deal with real-life situations commonly encountered by software managers anywhere in the world. It tearlessly peels back the onion layers of the process of managing software developers-whether a handful of co-located programmers or thousands dispersed across the world-through a balance of battle-tested approaches and keen understanding of the various personalities and backgrounds of software team members. Finally, a book on software engineering that focuses on the manager's dilemma of making a team of programmers work efficiently together. Every single software manager should have it on their bookshelf." -Phac Le Tuan, CTO, Reepeet, and CEO, PaceWorks "Becoming a great engineering leader requires more than technical know-how; Ron and Mickey's book provides a practical cookbook for the important softer side of engineering leadership, which can be applied to any software development organization." -Paul Melmon, VP of Engineering, NICE Systems "EXCELLENT. Well-structured, logical, filled with great personal color and many little gems. You guys have done a great job here. Terrific balance between theory and practice, rich with info." -Joe Kleinschmidt, CTO and cofounder, Leverage Software "I started reading the nuggets section and it took fewer than four pages to improve my thinking. What struck me about the nuggets was that I could sense the genesis of this book: two masters of their craft learning from each other. Most books feel like a teacher describing a sterile version of what 'ought to be done' that leaves you wondering, 'Will this work in the "real world"?' Reading the nuggets felt like the sort of guidance that I would get from a trusted mentor. A mentor who I not only trusted, but one who trusted me to take the wisdom, understand its limits, and apply it correctly. It's concentrated like a Reader's Digest for technical management wisdom." -Mike Fauzy, President and CTO, 1stMediCall LLC "Managing the Unmanageable is a great collection of sometimes-obvious and sometimes-not-obvious guidance for software managers. I wish that I had had this book when I first started managing teams, and it still is illuminating. For programmers who step into management, the hardest thing is to learn the soft skills. Ron and Mickey do a great job of illustrating not just the why but also the how." -Bill Hofmann, Vice President of Engineering, Klamr.to "Unique dialogue around the human aspects of software development that is very much overdue." -Mark Friedman, CEO and founder, GreenAxle Solutions ". . . [ W]hat to do on the new employee's first day of work seems unique and very helpful!" -Steven Flannes, Ph.D., Principal, Flannes & Associates "The book provides insight to a unique group of people: programmers. Companies around the planet have and are

Preface xxi
About the Authors xxvii
Chapter 1 Why Programmers Seem Unmanageable
1(8)
What Do Programmers Do?
3(4)
Why Is Becoming a Successful Programming Manager Hard?
7(2)
Chapter 2 Understanding Programmers
9(26)
Programming Disciplines
10(1)
Client Programmers
10(1)
Server Programmers
11(1)
Database Programmers
11(1)
Web Developers and Other Scripters
12(1)
Types of Programmers
13(1)
System Engineers / Architects
14(1)
System Programmers
14(1)
Application Programmers
15(1)
Not Really Programmers
16(1)
Domain Expertise
16(1)
Programmer Job Requirements and Abilities
17(3)
Proximity and Relationship
20(2)
In-House Employees
22(1)
Geographically Distant Employees
23(1)
Contractors
24(1)
Contracted Managed Teams and Outsourcing Companies
24(1)
Generational Styles
25(2)
Personality Styles
27(1)
Left-Brain versus Right-Brain People
28(1)
Night versus Morning People
29(2)
Cowboys versus Farmers
31(1)
Heroes
31(1)
Introverts
32(1)
Cynics
33(1)
Jerks
33(1)
Summary
33(1)
Tools
34(1)
Chapter 3 Finding and Hiring Great Programmers
35(49)
Determining What Kind of Programmer to Hire
37(2)
Writing the Job Description
39(6)
Selling the Hire
45(1)
Recruiting Full-Time Employees (FTEs)
46(1)
Always Be Recruiting
47(1)
Budgeting for Recruiting
48(2)
Recruiter Case Study
50(1)
Employee Referrals
51(2)
Effective Recruiting
53(1)
Recruiting Tips
54(2)
Recruiting Contractors
56(1)
Reviewing Resumes
57(2)
Narrowing the Field
59(1)
Preparing to Interview
60(7)
Interviewing
67(5)
Making the Decision to Hire a Programmer
72(4)
Making the Right Offer to a Programmer
76(6)
Follow Up Until the Programmer Accepts
82(1)
Summary
83(1)
Tools
83(1)
Chapter 4 Getting New Programmers Started Off Right
84(15)
Get Them on Board Early
85(1)
Preparing for Their Arrival
86(1)
First-Day Musts
87(4)
Introductions
91(1)
Ensuring Success
92(3)
Initial Expectations
95(3)
Summary
98(1)
Tools
98(1)
Chapter 5 Becoming an Effective Programming Manager: Managing Down
99(44)
Earning Technical Respect
100(5)
Hire Great Programmers
105(1)
Turbocharge the Team You Have
105(1)
Managing Different Types of Programmers
106(5)
Facilitation
111(1)
Protection
111(2)
Judging and Improving Performance
113(1)
Setting Objectives
114(3)
Performance Reviews
117(5)
Know When to Cut Your Losses
122(1)
Organizational Thinking
123(1)
Staffing
124(1)
Full-Time versus Contractors
124(2)
In-House versus Off-Shore Contractors
126(4)
Organizing
130(1)
Office-Based versus Virtual Teams
130(3)
Programmer Teams--Small versus Large Teams
133(2)
Managing Larger Organizations
135(5)
Troubleshooting a Dysfunctional Organization
140(1)
Deliver Results and Celebrate Success
141(1)
Summary
142(1)
Tools
142(1)
RULES OF THUMB AND NUGGETS OF WISDOM
143(260)
The Challenges of Managing
147(26)
Managing People
173(30)
Managing Teams to Deliver Successfully
203(24)
Chapter 6 Becoming an Effective Programming Manager: Managing Up, Out, and Yourself
227(42)
Managing Up
228(1)
Understand Your Boss
228(2)
Package Your Communications
230(1)
Understand Your Boss's Boss
231(1)
Timing
232(1)
Be a Model Employee
232(1)
Bottom Line
233(1)
Managing Out
234(1)
Collaborating within Your Department
234(1)
Understand Other Departments
235(2)
Leverage Important Support Functions
237(1)
Human Resources (HR)
237(2)
Finance and Managing Budgets
239(3)
Legal
242(1)
Managing Outside the Company
242(1)
Customers
243(1)
Technology Providers
243(1)
Technology Innovators and Work Disruptors
244(1)
Tools Vendors and Suppliers
245(1)
Government, Trade, and International Standards Organizations
246(1)
Industry Consortiums
247(1)
Professional Organizations
247(1)
University Educators
248(1)
Local Connections
248(2)
Bottom Line
250(1)
Managing Yourself
250(1)
Personal Style
250(1)
Appropriate Appearance
251(1)
Work Ethic
252(1)
Know Your Staff
252(2)
Time and Priority Management
254(2)
Communications Management
256(4)
Management Practices
260(1)
Pay Attention to the Person
260(1)
Listen Reflectively
261(1)
Break Down Barriers to Communication
261(1)
Understand What Is Really Important
261(2)
Make Progress Every Day
263(1)
Be Part of the Solution, Not Part of the Problem
263(1)
Follow-Up Management
263(3)
Find a Mentor
266(1)
Bottom Line
267(1)
Summary
268(1)
Tools
268(1)
Chapter 7 Motivating Programmers
269(49)
Motivational Theories
269(1)
Maslow's Hierarchy of Needs
270(1)
McGregor's X-Y Theory
271(1)
Herzberg's Motivation and Hygiene Factors
272(2)
Motivational Factors as Applied to Programmers
274(5)
Putting Theory into Practice
279(1)
Foundational Factors--Causes of Dissatisfaction (When Lacking)
280(1)
Respected as Supervisor
281(1)
Gain Technical Respect
281(1)
Respect Others
281(1)
Establish Your Culture
282(1)
Lead by Example
283(1)
Help Solve Technical Problems
283(1)
Manage and Coach
284(1)
Focus on Your People
285(1)
Having Fun
286(1)
Learning and Growing
287(2)
Good Working Conditions
289(1)
Make the Workplace a Good Place to Work
289(1)
"No Jerks" Rule
290(1)
Be Flexible
291(2)
Feed Your Team
293(1)
Sane Company Policies and Administration
294(1)
Communicate
295(1)
Protect Your Staff from Organizational Distraction
296(1)
Protect Your Staff from Bad Organization Communication and Policies
297(1)
Ethical Management
297(6)
Key Motivating Factors
303(1)
Making a Difference in the World
303(2)
Learning and Growing
305(2)
Toys and Technology
307(1)
Recognition and Praise
307(2)
Having Fun with Your Staff
309(1)
Upside
310(2)
Personal Commitment
312(2)
Technology Offense and Defense
314(2)
Understanding Your Programmers' Motivations Begins on Day One
316(1)
Summary
317(1)
Chapter 8 Establishing a Successful Programming Culture
318(29)
Defining "Successful"
319(1)
The Programming Culture
319(1)
Company Culture
320(1)
Leveraging the Complexity of Your Company's Culture
321(1)
Walling Off Your Company's Culture
322(1)
What Part Does Technology Play in Your Company?
323(2)
What Drives Your Company?
325(2)
Characteristics of a Successful Programming Culture
327(1)
Mutual Respect
328(1)
Innovation
329(1)
Standards
330(1)
Delivery
331(1)
Communication
332(2)
Communication Among Virtual Teams
334(2)
Fairness
336(1)
Empowerment
337(1)
Professionalism
338(1)
No Jerks and Bozos
339(1)
Excellence
340(1)
Programming Excellence
340(1)
Teamwork and Collaboration
341(1)
Passion
341(1)
Customer Focus: "It's the Customer Experience, Stupid!"
341(2)
Learning
343(1)
Environment
344(2)
Summary
346(1)
Tools
346(1)
Chapter 9 Managing Successful Software Delivery
347(56)
Defining the Project
348(1)
Ensure That Requirements and Assumptions Are Clear
349(3)
Limit Requirements to "What," not "How"
352(1)
Seek to Delight Customers
353(1)
Quickly Ballpark the Magnitude of Effort Required
354(2)
Recognize Nonnegotiable Dates
356(1)
Inspire the Team
356(2)
Planning the Work
358(1)
Break the Project into Features, and Prioritize Them
359(2)
Break Features into Tasks and Sub-Tasks
361(1)
Engage Your Team in a Bottom-Up Estimate
362(1)
Assemble Task Estimates into a Project Estimate
362(2)
Look for the Limitations on Estimation
364(2)
Get Agreement Around the Risks, Not Just the Schedule
366(2)
Allocate Sufficient Time for Unit and Project Testing
368(1)
Estimation Is a Unique Challenge Every Time
368(1)
Determine the Pace of the Project
369(1)
Kicking Off the Plan
370(1)
Participate in a Project Kickoff
370(1)
Define "Done"
371(1)
Define "Success"
372(1)
Establish a Project Workbook
373(3)
Executing the Work
376(1)
Design the Work
376(3)
Hold a Design Review
379(1)
Complete a Prototype to Inform the Design
380(1)
Set Agreed-Upon Milestones
381(1)
Confirm That Regular Check-In Meetings Have Been Set
382(2)
Actively Drive Development
384(2)
Ensure That Agreed-Upon Standards and Requirements Are Met
386(2)
Leverage Test-Driven Development
388(1)
Hold Stand-Up Meetings
389(1)
Insist on Code Reviews
389(2)
Running the End Game
391(1)
No New Features
391(1)
Run the Product
392(1)
Be Prepared to Declare Success and Start on the Point Release
392(2)
Know When to Cut Your Losses
394(2)
OEM and International Versions
396(1)
Delivering the Software
396(1)
Celebrate
396(1)
Retrospect
397(3)
Share
400(1)
Refactor
400(1)
Point Releases
401(1)
Summary
401(1)
Tools
402(1)
TOOLS
403(4)
Index 407
Mickey W. Mantle has been developing software for over 40 years, creating hardware and software products and managing development teams. After graduating from the University of Utah (where he was contemporary with computer industry notables such as the founders of WordPerfect, Silicon Graphics, Netscape, Adobe Systems, and Pixar), Mickey had his first job in 1971 developing the overall control software and real-time robotic controls for a six-acre aircraft rework facility for the U.S. Navy at Kenway Engineering (later Eaton-Kenway). He thereafter joined 3-D computer graphics pioneer Evans & Sutherland (E&S) where he coauthored the original 3-D graphics library that paved the way for Silicon Graphics's GL, which has since become OpenGL. At E&S he was a contributor to many notable computer graphics products and first started managing programmers and programming teams. After leaving E&S in 1984, Mickey joined Formative Technologies, a spin-off from Carnegie Mellon University, where he worked with the industry's first workstations (PERQ and Sun Microsystems) dealing with largescale bit-mapped graphics for mapping and CAD applications. But his heart was in 3-D graphics, and he was hired by Pixar shortly after it was bought by Steve Jobs and spun out of Lucasfilm Ltd. in 1986. At Pixar, Mickey managed the development of all of the software for their external products, including the Pixar Image Computer, the Pixar Medical Imaging System, and RenderMan. RenderMan is the gold standard of 3-D photorealistic rendering software and by 2010 had been used on every Visual Effects Academy Award Winner for the past 15 years; 47 out of the last 50 nominees for Visual Effects had chosen Pixar's RenderMan. Mickey left Pixar in 1991, as their focus shifted to making feature-length 3-D animated films and away from external software products, and was recruited to Broderbund Software as Vice President of Engineering/CTO. At Broderbund he managed a vast development organization including applications and system programming, art and animation, sound design and music composition, and quality assurance that produced numerous award-winning PC/Mac games such as Where in the World Is Carmen Sandiego?, Kid Pix, Myst, and Living Books. In late 1997 Mickey joined International Microcomputer Software, Inc., as Vice President of R&D/CTO, where he managed on-site and offshore development and support for numerous Windows/Mac applications such as MasterClips and professional-level products such as TurboCAD. In 1999 Mickey joined Gracenote where he was Senior Vice President of Development (since 2008 Gracenote has been a wholly owned subsidiary of Sony). At Gracenote he managed all development, operations, and professional services associated with the pioneering Web-based CDDB music information service that enables digital music player applications such as iTunes, WinAmp, Sonic Stage, and hundreds of others. Gracenote's products utilize technology ranging from Web services and relational databases to embedded systems and mobile applications, giving him a unique perspective on the wide-ranging needs of the various types of software developed today. He retired from Gracenote in early 2011 to finish this book, develop mobile/tablet applications, and consult with a variety of companies and organizations regarding the management of software people and teams. His experience includes directing R&D teams around the world and managing multidisciplinary teams working 24/7 to deliver successful products. With experience in selecting, establishing, and managing offshore development organizations in India, Russia, Canada, and Japan, he brings insight into the challenges of managing software development using diverse staff and teams that are hours and oceans apart. Ron Lichty has been developing software for 30 years, over 20 of them as a Development Manager, Director of Engineering, and Vice President of Engineering. This followed his first career as a writer in New York, Wyoming, and California, during which he wrote hundreds of articles, published scores of photographs, and authored two books. His software development career began at Softwest in the heart of California's Silicon Valley, coding word-processing products, programming compiler code generators, crafting embedded microcontroller devices like SmartCard-based postage meters and magnetic-keycard hotel locking systems, and designing and developing the computer animation demo that Apple used to launch and promote a new line of personal computers. He was awarded software patents for compression algorithms and wrote two widely used programming texts. Recruited to Apple in 1988, Ron product-managed Apple's development tools, then led the Finder and Applications groups for the Apple II and Macintosh product lines, managing delivery of Apple's "special sauce," its user interface. In 1994 Berkeley Systems recruited Ron to direct development of the then most widely used consumer software in the world, the After Dark screen saver line, to make engineering predictable and repeatable for the seven development teams creating its entertainment products. Brought into Fujitsu to make sense of its long-overdue WorldsAway entertainment product, he lopped off six months of overengineering to take it live in just 11 weeks. Ron then led software development of the first investor tools on Schwab .com, part of remaking a bricks-and-mortar discount brokerage into the premier name in online financial services. He was promoted to Schwab Vice President while leading his CIO's three-year technology initiative to migrate software development across all business units from any-language-goes to a single, cost-effective platform company-wide. Since Schwab, he has been a Vice President of Engineering and Vice President of Products both as an employee and as a consultant, and he has continued to focus on making software development "hum." He headed technology for the California offices of Avenue A | Razorfish, the largest Internet professional services organization in the world; products and development for Forensic Logic, the crime detection and prevention company; engineering for Socialtext, the first commercial wiki company; engineering of the consumer ZoneAlarm line for Check Point; and publisher services for HighWire, the largest Internet provider for scholarly publishing. In consulting engagements in America and Europe, he has helped development groups overcome roadblocks, untangle organizational knots, and become more productive. Ron's developer conference and professional group talks and webinars include implementing Agile and Scrum; the importance of user groups, teamwork, and community; and transforming software development from chaos to clarity. He has been an adviser to a half-dozen start-ups. He cochairs SVForum's Emerging Technology SIG; founded its Software Architecture SIG; chaired East Bay Innovation Group's Software Management Best Practices SIG; and was a member of the board of SVForum, Silicon Valley's largest and oldest developer organization.