The Career Programmer (eBook)
XXXII, 544 Seiten
Apress (Verlag)
978-1-4302-0119-9 (ISBN)
The crucial wisdom-guide to surviving within the programming industry in 2006. Provides raw material for surviving and thinking smart in today's industry. Delivered with the wit and aplomb to make a serious topic entertaining and palatable
TE Conquer Master self-defense techniques to shield yourself, your project, and your code from corporate politics, arbitrary management decisions, and marketing-driven deadlines
Explains how the individual programmer or project manager can work within the existing system to solve deadline problems and regain control of the development process
Founder of Practical Strategy Consulting, Christopher Duncan is the bestselling author of Unite the Tribes and The Career Programmer. He's been a frequent guest on radio shows across the country, his monthly columns have been read by hundreds of thousands worldwide, and he is widely acclaimed for his immensely practical approach to success in the real world where self interest and office politics are often more prevalent than common sense. This keen insight does not come by accident. Christopher has an unusually diverse background which includes a career in sales consulting, life as a professional musician, and experience fighting deadlines as a cubicle-dwelling software developer. He's also performed mind-numbing factory work, labored on construction sites, and built components for guided missiles. Currently, he writes, speaks and mentors professionals on career and business strategies. He understands the problems and goals of your people, from the lowest-paid workers to the executive elite, because he's been there himself and lived to tell the tale. Whether he's talking about the job-related anxieties of the night watchman's attack chihuahua or explaining the relationship between bunny slippers and corporate productivity, his humor and light-hearted antics will entertain your audience as he shares his vision of success through the pursuit of American excellence. Lively, expressive, and a consummate professional with three decades of stage experience, Christopher delivers an exciting and practical message to your people, inspiring them to reach for their very best and showing them how to get there in the real world, where things don't always go according to plan. Most importantly, he makes sure that everyone has a little fun in the process. He can be reached at www.PracticalStrategyConsulting.com.
When Chris Duncan first asked me to do the foreword to his book, I didn't think it would be that tough to do. How hard could writing a foreword be? Compared to some of the projects I worked on in the past such as BoundsChecker, writing a book, or my current job of debugging others' impossible bugs, writing a foreword should be a piece of cake. However, within reading a couple of pages of The Career Programmer, I became extremely nervous because Chris is a far better writer than I can ever hope to be. The last thing I want to do is detract from great writing, and more importantly, an extremely important message for the software business. You've probably looked at the back cover or flipped through the pages and noticed that this book is not what you would expect to find in the computer books section of the typical bookstore. There are a billion books on how to use the hot technology du jour and maybe a few on project management, but this is the first book to directly address the developer and what it takes to get your real job done. Isn't it amazing that the software engineering field has been around this long and this is the first book written for the real engineer? We'd love to say that we spend our days coding, but we really don't.
Founder of Practical Strategy Consulting, Christopher Duncan is the bestselling author of Unite the Tribes and The Career Programmer. He's been a frequent guest on radio shows across the country, his monthly columns have been read by hundreds of thousands worldwide, and he is widely acclaimed for his immensely practical approach to success in the real world where self interest and office politics are often more prevalent than common sense. This keen insight does not come by accident. Christopher has an unusually diverse background which includes a career in sales consulting, life as a professional musician, and experience fighting deadlines as a cubicle-dwelling software developer. He's also performed mind-numbing factory work, labored on construction sites, and built components for guided missiles. Currently, he writes, speaks and mentors professionals on career and business strategies. He understands the problems and goals of your people, from the lowest-paid workers to the executive elite, because he's been there himself and lived to tell the tale. Whether he's talking about the job-related anxieties of the night watchman's attack chihuahua or explaining the relationship between bunny slippers and corporate productivity, his humor and light-hearted antics will entertain your audience as he shares his vision of success through the pursuit of American excellence. Lively, expressive, and a consummate professional with three decades of stage experience, Christopher delivers an exciting and practical message to your people, inspiring them to reach for their very best and showing them how to get there in the real world, where things don't always go according to plan. Most importantly, he makes sure that everyone has a little fun in the process. He can be reached at www.PracticalStrategyConsulting.com.
Contents at a Glance 5
Contents 7
Foreword 14
About the Author 18
Acknowledgments 20
Introduction 22
PART I SOFTWARE DEVELOPMENT IN AN IMPERFECT WORLD 34
CHAPTER 1 Welcome to the Corporate World 36
So You Thought You’d Just Be Coding All Day, Eh? 36
What’s a Nice Programmer Like Me. . . 38
Why People Run Businesses and Pay Programmers 39
The Corporate World Is Not Logical 41
You Can’t Win If You Don’t Play 44
The Food Chain 46
The Various Species of Programmers 49
CHAPTER 2 Business Is War. Meet the Enemy. 54
Unrealistic Deadlines 54
Vague Definition of Requirements 61
Inadequate Time for Analysis and Design 64
Sometimes the Enemy Is Within 67
No Time or Resources for Testing 69
Poor Company Management 71
Internal Politics 74
The Unexpected 75
CHAPTER 3 Good Coding Skills Are Not Enough 78
What’s in It for Me? 78
Who Needs These Skills? 82
Taking Control of Your Time 84
Enhancing Design 86
Improving Interaction 86
Getting What You Want 87
PART II GUERILLA TACTICS FOR FRONT-LINE PROGRAMMERS 90
CHAPTER 4 Preventing Arbitrary Deadlines 92
Defining the Process 93
Commissioning a New Software Project 96
Identifying the Requirements 97
Building Your Testing Environment 98
Entering the Design Phase 99
Estimating the Effort 101
Coding Bliss 103
Testing the Candidates 104
Addressing the Installation Issues 104
Managing the Beta Phase 105
CHAPTER 5 Getting Your Requirements Etched in Stone 108
You Don’t Have to Like It. It Just Has to Be Clear. 109
Where Does the Power Lie? 110
Politics Are an Inescapable Reality 112
Identifying the Other Influential People 114
Selling the Process 115
The Definition Questions 116
Preparations for Effective Information Gathering 117
Defining the Requirements 119
When the Party’s Over 121
Coping with a Hostile Environment 122
Politics Are Never Far Away 126
CHAPTER 6 Effective Design Under Fire 128
Design? What Design? 129
Estimating the Design Effort 130
Rolling Your Own Design Methodology 133
Hitting the High Points 138
Effective Prototyping 139
When You Can’t Get Even This MuchTime 141
Onward to Implementation 143
CHAPTER 7 Practical Estimating Techniques 144
Understanding the Process 145
Avoiding Common Mistakes 146
The Myth of the Eight-Hour Day 147
Crunching the Numbers 149
Converting Hours to Delivery Dates 151
Don’t Forget the Final Details 154
Wrapping Up the Project 156
What If Things Didn’t Go by the Book? 157
CHAPTER 8 Fighting for Quality Assurance 160
How Do We Get Away with Buggy Releases? 161
Justifying a Quality Assurance Effort 162
What’s a Tester? 164
Building Your Team 166
Training Your Testers 167
Make the Testers Feel Like a Part of the Team 169
Establishing the QA Process 171
CHAPTER 9 Keeping the Project Under Control 174
Keeping Track of Your Time 174
Managing Your Team 176
Improving Your Coding Discipline 177
Thinking Ahead to Debugging 180
Incorporating Version Control 181
Improving Productivity 182
Knowing When to Walk Away 184
Optimizing Your Meetings 185
Wrapping It Up 189
CHAPTER 10 Managing Your Management 192
Improving Communications 193
Instituting Change 196
Bolstering Your Position 198
Frontal Assaults (For Those Who Respond to Reason) 200
Stealth Tactics (When Reason Is Not Enough) 202
Credibility, the Key to Success 204
CHAPTER 11 Corporate Self-Defense 208
What Do You Have to Lose? 209
Picking Your Battles 210
Avoid Being a Target 213
Assessing the Lay of the Land 214
Escape and Evade 215
If You Must Attack 216
Improving Your Skills 218
PART III BUILDING A BETTER CAREER 220
CHAPTER 12 Controlling Your Destiny 222
Considering Your Options 223
The Company Man 225
The Mercenary 227
The Entrepreneur 230
Off to the Races 232
CHAPTER 13 Get a Job (Sha na na na. . .) 234
The Usual Suspects 235
Fame for Fun and Profit 239
Getting the Word Out 240
Digging Deeper 241
Shuffling Paper 242
Face Time 248
CHAPTER 14 Career 2.0 252
Captain, She Canna Take Much More o' This! 252
Life Beyond Coding 253
Where’s a Compass When You Need One? 256
Abandon Ship! 258
Where Do We Go from Here? 259
Turning Passion into Paychecks 260
CHAPTER 15 Flying Solo 264
Many Hats 265
Getting the Picture 271
Know Your Weaknesses 272
Creating Your Deliverables 273
Distribution Decisions 274
Getting the Word Out 275
Continuing Education 276
CHAPTER 16 Job Security 278
Long-Term Thinking 280
Taking Care of Your Peers 281
Improving Communication 282
Overcoming Fear of Change 283
Turning Drudgery into Games 284
Promoting Your Agenda 285
Becoming a General 286
Inspiring Innovation 287
Generating Enthusiasm 288
Promoting Unity 290
The Indispensable Programmer 291
Index 294
3 CHAPTER Good Coding Skills Are Not Enough (p. 45-46)
But I just wanna be a programmer! Why do I need all of these non-coding skills? Can’t I just sit in my cubicle and concentrate on programming? Sure you can. In fact, the overwhelming majority of programmers worldwide do just that. Of course, the overwhelming majority of programmers worldwide also have an extremely common set of complaints about their jobs. The simple reality of the matter is that your job is probably not anywhere near as good as it could be, and neither is your software. We’ve already identified a large number of culprits that appear to be responsible for the problems we encounter, but, when it all comes down to the bottom line, it’s your fault. Ouch. Can I say that? Well, perhaps, if only because I’m safe for the moment from the sting of a whiteboard eraser.
How can all of the shortcomings in your software development shop—so many of which are typically caused by managerial decisions that exhibit about as much common sense as a lima bean—be your fault? Simple. If you sit on your hands and do nothing, then you’re part of the problem when you could be part of the solution. Wait, that sounded a bit like one of those trendy catch phrases. Maybe I’ve been hanging out in the corporate world too long. If I’m suggesting that you take a more active role in dealing with the issues you face as developers, I suppose it’s not that different from asking you to storm a machine gun nest. Of course, all those years of dealing with maintenance programmers has undoubtedly prepared you better for such a task. Still, to be practical about it, anyone taking risks should have a reason for doing so. In other words, what’s in it for you?
What’s in It for Me?
Probably one of the biggest hassles in any full-time programmer’s career is sacrificing your life to countless hours of unproductive—and very often unpaid— overtime. It’s bad enough that you’re given a situation where you can’t get the job done working forty hours a week. The way most businesses are run, the end result may well be yet another release disaster, even if you put in eighty hours a week. That’s not exactly a rewarding experience, particularly if you have to give up your life for it. When we fire up the editor, what we’re reaching for is the next killer app. We are artists as much as anything else. To put blood, sweat, and tears into a project (okay, maybe not the former if you don’t have to interact with the maintenance programmer) only to have management ship it in a half-baked state can be downright infuriating, and that’s with a full night of sleep. I have no desire to work day and night as it is. Doing so on a project destined for failure adds insult to injury.
Along those lines, one of the things that are in it for you as an artist is the ability to ship a better-quality product. Whether your name is in the About box or not, your signature is on every piece of software you ship. We all tend to take a great deal of pride in our accomplishments, so who wants to be associated with anything other than a spectacular success? Do I work for money or for ego? Both. (In that order, for the record, but definitely both.) If you want to be involved in projects that make you proud, you have to do your part to help them survive in the wild.
Actually, I’ve always had a pretty bad attitude towards companies that take advantage of programmers and expect them to dedicate their every waking minute to the job. Maybe it’s because I’ve been a musician all my life and have seen how nightclubs and other aspects of the music industry tend to pay almost nothing. They get away with this because they know we love music so much that we’d probably play for free and are usually happy to take whatever we can get. A low-paying gig on the weekend is more fun than no gig. Because of this, bar gigs pay today almost exactly what they paid twenty years ago— really. It’s an unfair and predatory practice, but is so common that it’s become the accepted norm. If you push for more equitable pay, you’re simply told that they’re not doing anything different than every other venue in town. That’s typically true, but it doesn’t make it right.
Many software development companies employ this exact approach in dealing with programmers, and for the same reasons. We got into this business because we were passionate about programming. We tend to do it at home in the evenings and on weekends just for fun. With the same predatory attitude, these sweatshops take advantage of our love for development and make continual overtime an accepted norm.
I have a friend who is a programmer working in such an environment. In fairness, I must say that he was told up front in the interview that, due to the stock options giving the employees a sense of ownership in the company, they hired only those people who were willing to dedicate above-average hours to the job. Nonetheless, he has been killing himself the past few weeks working late hours. I made some of the usual jokes with him regarding end-of-theproject crunch time and asked when the release date was. His answer floored me, even though it’s nothing new. He said there was no deadline, it was simply a corporate culture. If you weren’t putting in all the extra hours, you just weren’t working hard enough.
Erscheint lt. Verlag | 22.11.2006 |
---|---|
Zusatzinfo | XXXII, 544 p. |
Verlagsort | Berkeley |
Sprache | englisch |
Themenwelt | Sachbuch/Ratgeber ► Beruf / Finanzen / Recht / Wirtschaft ► Bewerbung / Karriere |
Mathematik / Informatik ► Informatik ► Programmiersprachen / -werkzeuge | |
Schlagworte | computer programming • computer project management • Controlling • Job • Management • Marketing • programming • Quality assurance |
ISBN-10 | 1-4302-0119-3 / 1430201193 |
ISBN-13 | 978-1-4302-0119-9 / 9781430201199 |
Haben Sie eine Frage zum Produkt? |
Größe: 1,3 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.
Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich