Saturday, January 15, 2011

Writing tip: Concise language

You are "paying" for each word, and if your idea is too expensive to communicate, it will never be heard - let alone implemented. Therefore it's imperative that developers have good writing skills if they want to become influential. One metric of good writing is that it is concise. Here is a brainstorm of tips.

Tip: Remove un-needed words and phrases

If the word adds zero value, then remove it.
//Remove "Anything about"
Anything about schemas will drive architecture.
Schema will drive architecture.

//Remove phrase "my approach"
I’ll need to confirm my approach with Bob
I’ll need to confirm with Bob

//Restructure sentence to remove the word "it"
It takes effort to ask for something.
Asking for something takes effort.
Tip: The word is implied, so you don't need it.
//Implied that you're concerned, which is why you're talking about it
My concern is that X is bad.
X is bad

//The word "something" is implied
If there’s something more to it.
If there's more to it.

//The word "about" is implied by estimate, and the number being rounded
We estimate the list to have about 10,000 rows.
We estimate the list to have 10,000 rows.

//The phrase "Ed mentioned" implies "Discussing with Ed"
Discussing with Ed yesterday, he mentioned that...
Ed mentioned yesterday that...
Tip: remove duplicate words

Sometimes people use duplicate words. Maybe because (1) they think it drives the point home, (2)
they feel like it has to be long (schools trained them to write "at least 500 words"), (3) they
can't think of a single word to describe both sub-words.
//Just pick one - either "harsh" or "ruthless"
The production environment is harsh and ruthless
The production environment is ruthless
Tip: Replace a phase with a single word
Sometimes a big phrase can be replaced with a single word because that single word is the definition of the big phrase.
//Replace the entire phrase with one word that means the same thing
The application must be able to handle an increasing amount of demand.
The application  must be scalable.
Tip: Condense two sentences into one
//Remove a descriptive sentence by applying it to the noun directly.
I'd like to set up a call. An hour should be enough time.
I'd like to set up a one-hour call.
Tip: Avoid un-needed commas
If you have a bunch of small phrases joined by multiple commas, consider restructuring it into a single sentence. Even if it doesn't make it more concise, it will probably make it easier to read.
//Remove comma
and for each line, trims it.
and trims each line.
//Merge two short sentences into 1:
We are creating a custom list. It will have 1000 rows.
We are creating a custom list containing 1000 rows.
 
//Restructure sentence
Yesterday, Ed mentioned that...
Ed mentioned yesterday that...
 
//Restructure sentence
If you approve of this design, please let me know.
Please let me know if you approve of this design.

Monday, January 10, 2011

Writing tip: Avoid abstract words

We all know that influential developers need good communication skills. I love technology, but if you can't communicate your technical ideas to your coworkers, then they won't be adopted.

You need to be concise, else people will just tune you out. One way to do that is to choose a more descriptive work that packs more meaning.  Your word count remains about the same - it's absolutely not just rambling on - but the sentence caries more meaning.

Of course sometimes you deliberately want the more abstract word, but it's good to be aware of the more-descriptive alternatives so that you can make a conscious choice of what's best for the situation.


Weak wordCommentConsider InsteadExample
Do, DoesDoes what?create, build, make, install
Bob does builds
Bob installs builds
RunWhat does the "running" do?scrubs, cleans, updates, processes, installs, configures
The service runs on the directory
The service cleans the directory
ChangeHow does it change?insert, update, delete, improves
The tool changes the file
The tool updates the file
ProcessorWhat does the process do?copier, uploader
FileProcessor tool
FileUploader tool
It, Object, ThingWhat kind of thing?C# class, SQL script, COM+ object
It runs fast.
The C# class runs fast
TalkWhat kind of talking?discussed, reasoned, concluded, negotiated, argued, explained
Bob talked about structs
Bob explained structs
IssueWhat kind of issue?bug, feature request, task, problem
 
This is an issue
This is an error
OtherIn what way?previous, next, remaining, bigger, smaller
I need the other node
I need the previous node
GoodIn what sense?faster, more reliable, higher revenue 
This feature is good
This feature is faster
PeopleWhat kind of person?manager, employee, developer, analyst, users
 
People will like this feature
Managers will like this feature
SentHow?FTPd, emailed, faxed
I sent the files
I emailed the files


Wednesday, January 5, 2011

They should not complain if...

Every project and team always has issues. I'm a big fan of making things better. No one wants to hear complaining (not to be confused with constructive criticism or a call for action). Here's a brain dump of when people should not complain:
  • They don't have a better alternative
  • They can't specify what the actual problem is (saying "something seems wrong, but I don't know exactly what" isn't complaining)
  • If their manager asks "what can I do", and they can't tell them
  • They caused the problem
  • They were warned, and did it anyway
     

Sunday, December 26, 2010

Migrating blog

I've officially migrated my blog from .Net Developer's Journal (http://www.timstall.dotnetdevelopersjournal.com/) to my own domain - http://www.timstall.com/. .NDJ dropped their blogs, so it was inevidable.

It was an interesting technical adventure - I decided to use blogger based on some friend's recommendations, and was pleased with their API - it just worked:
http://code.google.com/apis/blogger/docs/2.0/developers_guide_dotnet.html#CreatingPublicEntries

I was able to set titles, publish dates, suggested Urls, and even dynamically add categories.
I could then write a simple app that posts 40+ entries a day (Blogger only allows a certain limit, so I couldn't do all 500 posts in an hour), so I made the migration tool run over several days.

[UPDATE] I added a page: http://www.timstall.com/p/timstalldotnetdevelopersjournalcom.html to help redirect traffic.

Monday, September 27, 2010

How does a techie know when they're learning the business?

[This was originally posted at http://timstall.dotnetdevelopersjournal.com/how_does_a_techie_know_when_theyre_learning_the_business.htm]

Obviously there's a gradual scale, but here's a brain dump:
  • You can talk to a non-tech person without using tech speak (Your business skills are strong enough that you don't need to "hide" behind your tech skills to bail you out).
  • You can list at least three industry-specific success metrics (besides standards like "revenue" and "profit").
  • You can use business decisions as a "tie-breaker" between technologies.
  • You can prioritize features and defend your reasoning.
  • You know why your CEO or supervisor is upset.
  • You know where your revenue comes from, and how it flows through the company’s various systems and departments. Looking at the production database (that records transactions), you can make an educated guess if this year was financially better than last year.
  • You can read the year-end report.
  • When a new boundary case comes up in the code, you can make an educated guess before verifying with the business analyst. Then you send the business analyst (BA) an email like "I think it's X because of A and B, would that be right?", and the BA can just reply with a "yes" instead of a detailed email correcting all your concepts.

Sunday, August 15, 2010

Secrets to Winning at Office Politics - Part 2

[This was originally posted at http://timstall.dotnetdevelopersjournal.com/secrets_to_winning_at_office_politics__part_2.htm]

Following up on my previous post, here are several good quotes from the other chapters of the very good book, Secrets to Winning at Office Politics.

Chapter 4: Political Psych 101: Allies and Adversaries

  • "Positive relationships build political capital." (pg. 53)
  • "Allies can be grouped into three categories: Friends, Partners, and Connections." (pg. 55)
  • "colleagues usually judge your personality and your competence separately." (pg. 55)
  • "Those who loudly complain that 'it's who you know' are usually the same ones who never take the initiatives to get to know anyone." (pg. 59) --> as an introverted hermit, this hits home with me.
  • "adversaries fall into three groups: focused, emotional, and vengeful" (pg. 63) --> you want to be aware that someone who seems adversarial because they're just focused on their goal is not necessarily out to get you personally.
  • " is not an adversary - [they're] simply a difficult person." (pg. 67)
  • "Usually, the most effective containment strategy [with adversaries] is to increase your leverage." (pg. 68)

Chapter 5: Political Games: Moves and Countermoves

  • "Political games re played for emotional rewards" (pg. 83)
  • "Political game players always have a socially acceptable explanation for everything they do." (pg. 83)

Chapter 6: How to commit political suicide

  • "If you want to commit political suicide, simply start engaging in any behavior that consumes a disproportionate share of management's time and attention." (pg. 107)
  • "Once people arrive at a conclusion, they unconsciously continue to gather evidence that supports their opinion." (pg. 109)
  • "There are four common causes of career destruction: (1) poorly controlled emotions, (2) a victim mentality, (3) self-centered foals; and (4) foolish reactions to change." (pg. 110)
  • "Many political suicides are so caught up in their own concerns or delusions that when the ax falls, they are totally shocked." (pg. 121)
  • "It's a heckuva lot easier to blame somebody else." (pg. 123)
  • "if your colleagues are happily  and productively engaged while you're fuming with rage, then you need to take a closer look at yourself." (pg. 124)
  • "When someone indicates that your behavior is a problem, don't automatically reject that possibility." (pg. 126)
  • "When you are trying to recast your image, remember that others will not immediately notice the change in your behavior. If you're waiting for the applause, it may seem awfully quiet for a while." (pg. 127)
  • "if you're not the problem, but people think you are, the political effect is unfortunately the same." (pg. 127)

Chapter 7: Power, Power, Who has the Power?

  • Don't confuse "power" with "authority".
  • "... any strength, carried too far, becomes a weakness." (pg. 137)
  • "Here are some questions to consider in determining a person's power level: ... Do they talk more about the past or the future? ... Who can they go see without an appointment? ..." (pg. 137)
  • "Some timid souls, fearing that they will be perceived as pushy, overbearing, or insensitive, simply give their power away." (pg. 138)
  • "If you want to look ridiculous, just try using power that you don't have." (pg. 140)
  • On pg. 147, the author presents a 2x2 "Power Grid":
    • High level of position and high degree of influence --> Power Players
    • High level of position and low degree of influence --> Empty suits
    • Low level of position and high degree of influence --> Persuaders
    • Low level of position and low degree of influence --> Weaklings
  • "An organization's culture is largely determined by the beliefs, values, and preferences of the Power Elite... you must adjust to the culture established by the reigning Power Elite. There is not one chance in a million that you are going to change it." (pg. 149)

Wednesday, August 11, 2010

BOOK: Secrets to Winning at Office Politics - Part 1

[This was originally posted at http://timstall.dotnetdevelopersjournal.com/book_secrets_to_winning_at_office_politics__part_1.htm]

I am more of a clumsy walrus than a suave politician, so I was fascinated with the book Secrets to Winning at Office Politics. The author conveys her points with hard-hitting stories, 2x2 windows (to show the whole context), and explicit principles. Probably one of the five best books I've read.

At least twice each chapter, I smacked myself in the head, saying "D'oh - that's what I did wrong in that situation". A general theme of the book is that politics aren't necessarily dirty and corrupt - having good political skills can actually be a service to your coworkers because you can be easier to work with and help them achieve their goals.

There were so many good quotes, that I'm splitting it into multiple blog posts.

Chapter 1: Politics is not a dirty word

  • "Our hope was that we could keep him from destroying his career."
  • "...keep them from becoming their own worst enemy" (pg. xvii)
  • "'politics' is what naturally happens whenever people with different goals, interests, and personalities try to work together." (pg 3)
  • "...not everyone is interested in promotions. Autonomy, security, responsibility, skill development, challenge, and interesting work are a few of the other rewards that people often hope to find through their jobs." (pg 5)
  • "...it's pretty tough to find tutoring in office politics." (pg 6)
  • You must be able to answer the question: "How would you like things to be different?" (pg 7)
  • "Wishing is a passive activity that can easily degenerate into whining and complaining. Goals, on the other hand, help to define the actions we need to take." (pg 9)
  • There are four political types, behavior that (pg 11):
    • Helps your business and helps your personal goals --> winner
    • Helps your business and hurts your personal goals --> martyr
    • Hurts your business and helps your personal goals --> sociopath
    • Hurts your business and hurts your personal goals --> dimwit
  • "Never advanced your own interests by harming the business or hurting other people." (pg. 17)

Chapter 2: Political Intelligence and the facts of life

  • " wondered why every place he worked was filled with stupid, incompetent people." (pg. 24) --> Sure there are bad companies, but after 10 years and 3 places, if everything is still bad, you probably need to do some self reflection.
  • "Clinging to the belief that the workplace should function demographically will only doom you to frustration and disappointment." (27)
  • The organization facts of life: (pg. 27)
    • #1: Organizations are not democracies.
    • #2: Some people have more power than others.
    • #3: Virtually all decisions are subjective.
    • #4: Your boss has control over much of your life.
    • #5: Fairness is an impossible goal
  • "The person with the most power wins" (pg. 29)
  • "Getting worked up about fairness is a waste of time and politically stupid. People who are obsessed with fairness tend to whine, and nobody likes a whiner... politically intelligent people concern themselves with leverage, not fairness." (pg. 31)

Chapter 3: Forget Fairness, Look for leverage

  • "she was pulling a power play at the wrong time" (pg. 36) - with respect someone moving houses, who got angry at the movers and threatened not to pay while they still had all her furniture in their truck.
  • "Winners are able to accurately calculate the Leverage Equation in any given situation." (pg. 38)
  • "being the boss doesn't necessarily mean that you have the most leverage." (pg. 39)
  • "Never intentionally offend anyone at work." (pg. 43)
  • "'Fairness' seldom determines what happens to you at work - leverage usually does." (pg. 45)
  • "...too much passion can be dysfunctional. Dedication to your work may make you credible and persuasive, but those who are too emotionally invested in their jobs can become defensive and inflexible." (pg. 49) --> I always thought passion was good, but it's possible that good passion can be misdirected for a bad result.

More in the next post...