Friday, July 22, 2016

Improving as a software developer

The question was posed: "What could I do to improve/advance on software development?" Here's what I answered:

There are many things you can do to improve, and I’m sure you’ll get some good answers. From my point of view, however, there is one thing to do that underlies all the other suggstions:

Never pretend you know what you don’t know.

Always be ready to ask for help in learning new things.


You may think you have to look extra smart and experienced to land a good job, but it’s quite the opposite. Just show your willingness and eagerness to learn.

Some people might not value this approach, but they’re not people you want to associate with. They’re probably pretenders themselves. They're certainly not Agile developers.

Monday, July 18, 2016

Becoming a better programmer

The questioner asked, "What should be my next step to becoming a better programmer?" In response, a dozen or more advisors suggested learning various technical skills. Most of the advice was good, but misdirected in a typical fashion, so I offered the following thoughts and references:

If you’re like most programmers, you’re already too involved in technical details and your ability to deal with other people is less than adequate. Studies of programmers at work show that typical programmers spend 70% of the time dealing with other people. (Agile programmers may spend even more.) [see, The Psychology of Computer Programming]

So, if you want to improve, perhaps you should devote some time to developing your People Skills. At the very least, you'll learn how to solve "people problems" more efficiently, thus leaving you more time, in a better mood, to do the technical work of programming.

Saturday, July 09, 2016

How Can A Developer Earn More Money?

The question on Quora was, "What is the best career advice for a software developer to earn a higher salary?

There were many logical answers, but in my experience the best way to earn a higher salary is to go to work for a badly managed company with lots of legacy code that they can’t get anyone to maintain. 

The managers of such an organization are usually desperate for a way out of the mess they've put themselves in, but being bad managers, the only idea they have about getting out is to buy their way out. They think that if they pay ridiculously high salaries, they can induce some foolish programmers to come and bail them out.

So, if maximum money is your only concern, find a company like this and work there until you can't stand it any longer, then take your money, leave, and find some other badly managed company.

Don't stay too long. The company may go bankrupt and not pay what they owe you. Warning sign: when they tell you your paycheck will be delayed, leave immediately.

If you want to know how to recognize badly managed companies, take a look at my 


Eventually, you may grow tired of this strategy and decide there are more things in life than maximum money. When that time comes, quit and look for a well-managed company, following some of the good advice in the other answers to this question on Quora.

Thursday, June 30, 2016

The Most Important Aspect of Software Testing

On a public forum, the question was, "What are the most important aspects of software testing?"

A number of good answers were given, but all tended to emphasize finding errors. To me, that's a limited view of testing. I would say, instead, that the most important aspect of software testing is to provide information about the state of a software product. That is, not just errors, but what's good and bad about the product. And, by the way, what's just mediocre.

For instance, the speed of the product might not be in error, but could be good, bad, medicre, or perhaps acceptable to some or all possible users. It's the tester's job to document that.

Or, there may be a feature that works okay, but is not so easy to use. Is that an error? Who knows, but in any case, it's a fact that the sponsor of the project will usually want to know about, and providing that information is the tester's job.

One more example: if a tester merely finds and reports errors, small wonder that developers feel that testers are nattering nabobs of negativity. Test reports should describe what's good—what's wonderful—about a product, and testers must never forget that part of their job.


You can read more about important aspects of testing in my book, Perfect Software And Other Illusions About Testing.

Thursday, June 16, 2016

What's something I can do right now to increase my productivity?

I was recently invited to answer the question in the heading. There were already 99 other answers, some of them very interesting. I tried reading all the answers, but gave up after the first two dozen or so. All that stuff about lists and apps and schedules and methods with trademarked-names might have been okay for some folks, but they didn't do much for me. I don't really use any of them, but I’ve been an incredibly productive person all my life.

I've published around a hundred widely acclaimed books, plus hundreds of articles. I've invented useful things and won a handful of awards for my writing. More than ten thousand people follow my tweets and my workshops are filled with people from all over the world. While doing all these things, I've also found the time and energy to support many volunteer causes.

My secret? I can do all these things because I apply just one principle:

Do what you love doing.

If you love it, you won’t need any of this tricks and tips. You might use some of them or make your own if they help you do what you love, but if you’re not doing what you love, no tricks will help much.

But, you say, "there are just some things I have to do, whether I love them or not." Well, first of all, re-examine those things and make a NOT-TO-DO list, to remind you to stop doing things you hate and don’t really have to do. And if there are still things left that you think you must do, experiment.

For instance, stop doing them for a few days or so and see if it matters. I remember when I had a job where we were supposed to put out a daily report for our manager’s manager’s manager. I started doing it every other day, and nothing happened. I switched to once a week, but again nothing happened. I cut down to once a month. Nothing.

After seven months, this senior manager finally came raging into my office demanding his daily report. I calmed him down and showed him what it had cost to do it daily when he only needed it maybe once a year. We negotiated a deal where on the day he needed it, I would drop everything and produce it in about two hours. That gave him what he needed and saved me two hours a day, 199 working days a year. Now, that’s productive.

But you may still have to accomplish a task that’s really needed, so your experiments don’t work. In that case, examine HOW you accomplish the task and use your imagination to find a way to do it that you really enjoy. For example, you can make a game of the task.

For instance, I once had a rather dull report I had to write regularly so I started each time by picking ten words at random from a large dictionary. Then I challenged myself to use all ten words somewhere in my report. Not only did this make the report into fun game, but I improved both my writing and my vocabulary. And, oh yes, people told me they enjoyed reading those reports, so maybe it made them more productive, tool.

If you enjoy doing a task, you won’t procrastinate, and you’ll do it with gusto. Voila! You’re now the most productive person around.

Not only does this principle work for you, but you can teach it to those who work with you, principally by example. When you do this, you're practicing a powerful form of leadership, helping all those other people be more productive. Think of it this way: It's the opposite of the dreaded micro-management. Instead of telling people how to do things your  way, you're encouraging them to find their was to do things so they'll be a productive as you are.

(You think I’m making this all up? Well, how many people do you know who have accomplished what I’ve accomplished. You can check my website (www.geraldmweinberg.com) and then find some other people with a comparable history and ask them if they enjoy what they do, all day. I don't think you'll find many of them who spend their day making lists—unless they've made it into a list-making game.

Monday, June 13, 2016

5 Ways Writing a Book Builds Your Consulting Business



If you're a consultant, or want to be, you need to read this blog by my colleague, Tonya Price: 

5 Ways Writing a Book Builds Your Consulting Business


I agree with all of Tonya's 5 points, and I'd like to point out one other way writing a book helps you become a successful consultant. Writing a book is not a one-way street, sending ideas from you to clients and prospects. Writing a book is a way for you to learn new ideas and new ways of expressing your ideas.

In my experience, if I want to learn some new material, the best way to do that is to write a book about it. Even if I never publish the book—even if I never even finish it—and don't achieve Tonya's five benefits, I still benefit by becoming a better consultant.

So, even if you're afraid that you don't write well enough to be a successful author, you ought to start writing a book about something you'd like to better understand. And, a good first step is to take advantage of the Write Stuff 2016 bundle of ebooks.

 5 ways to a book helps your consulting

Wednesday, May 25, 2016

The Write Stuff 2016 Bundle

Email-logo
Bundle_103_cover
Curated by Kristine Kathryn Rusch
Hundreds of writing books get published every year, and most of those books are written by people who have written…a book on writing. I kid you not. These people have a method or a scheme or they teach a writing class—even though I have no idea how they get those gigs. (Okay, I do. They get an MFA, which universities seem to think is more important than actual writing experience.)
Those writing books have nothing in common with the writing books in this bundle. Together, the authors of the books in The Write Stuff 2016 Bundle have more than two-hundred years of writing experience, and have contributed more than five hundred award-winning and bestselling books (fiction and nonfiction) to the world of literature.
We know writing, the writing life, and what makes a writing career. And we want to share it all with you.
Even though the books in this bundle discuss craft, including one of the classic writing books of all time, most of the books you'll find here explore the career killers, things like how to put butt in chair on a regular basis, how to organize your business career, and the all-important (at least to me) how to make a living as a writer.
So if you are a writer, or are simply dreaming of becoming a writer, this bundle is for you. – Kristine Kathryn Rusch
The initial titles in the Write Stuff 2016 Bundle (minimum $5 to purchase) are:
  • Weinberg on Writing - The Fieldstone Method by Gerald M. Weinberg
  • How to Negotiate Anything - Freelancer's Survivor Guide by Kristine Kathryn Rusch
  • Stages of a Fiction Writer by Dean Wesley Smith
  • Business For Breakfast Vol 2.: The Beginning Professional Publisher by Leah Cutter
  • The Rational Writer: Nuts and Bolts by Mindy Klasky
If you pay more than the bonus price of just $15, you get all five of the regular titles, plus five more:
  • Creating an Online Presence for Writers by Cat Rambo
  • How to Make a Living With Your Writing by Joanna Penn
  • Heinlein's Rules - Five Simple Business Rules For Writing by Dean Wesley Smith
  • Writing the Novel from Plot to Print to Pixel by Lawrence Block
  • The Writer's Business Plan: A Plain English Guidebook by Tonya D. Price, MBA
The bundle is available for a very limited time only, via http://www.storybundle.com. It allows easy reading on computers, smartphones, and tablets as well as Kindle and other ereaders via file transfer, email, and other methods. You get multiple DRM-free formats (.epub and .mobi) for all books!
Read more.