EppsNet Archive: Software Development

Seamless Integration

16 Apr 2013 /
Seaming

(Photo credit: The Bees)

There’s an unwritten rule in the software business that any integration between two systems must be described as “seamless,” the result being that the word no longer has any meaning.

My favorite seamless integration storyline took place years ago when IBM had a joint marketing pact with Vignette, and offered “seamless integration” between the WebSphere application server and the Vignette content management system. In fact, the two systems weren’t integrated at all by any definition of the word “integrated” that I know about. We had to write our own interfaces to move data between them.

The funny thing is, that is seamless integration if you think about it, in that there’s no seam between two things that are not connected at all.

For example, my shirt neatly integrates sleeves, cuffs, pocket, collar . . . but not seamlessly. There are seams all over the place. Whereas the shirt is seamlessly integrated with my pants. I can stuff the shirt in there and if I don’t move around too vigorously, it will stay there and not come out.

What’s so bad about seams, anyway?


Every New Feature is a New Failure Point

14 Apr 2013 /

The TPMS warning light on my car dashboard is lit up, which, according to the owner’s manual, indicates a malfunction in the Tire Pressure Monitoring System, a system designed to alert me, via a different warning light, when the tire pressure gets too low.

It’s a completely unnecessary system to begin with because I can monitor the tire pressure myself, as drivers have done since the invention of the automobile.

Let’s add a completely unnecessary new system so when it breaks, the owner will have to pay to fix it.

Can I just ignore the warning light? I don’t know. The worst-case scenario is that the TPMS not only breaks but creates a domino effect that knocks out a critical system that I actually need.

Toilers in software development can draw their own analogies . . .

Thus spoke The Programmer.


Ron Jeffries: Estimation is Evil

Posted by on 16 Mar 2013

Engineering Humor

9 Mar 2013 /
Root beer

An engineer walks into a bar and orders 1.0E20 root beers.

Bartender: “That’s a root beer float.”

Engineer: “Make it a double.”

[HT: Scott Hanselman]


Generalists Are Better Than Specialists

9 Mar 2013 /
Halo Reach, Forklift.

People ask me what is my “specialty” in software development. My specialty, if I have one, is in not having a specialty. I feel like I can contribute on any task.

That answer throws people off. They repeat the question, explaining that everyone is best at something. Managers especially like the idea of specialists because it simplifies the assignment of work: UI tasks go to the UI guys (or gals), SQL tasks go to the SQL guys, middle-tier tasks go to the middle-tier guys, and so on.

Before launching my illustrious career in software development, I worked on a union construction site. Everyone’s job was defined in excruciating detail — what each union member could and couldn’t do.

For example, if we needed to move a pallet from here to there, we had to find a teamster to drive the forklift. There were a few exceptions to that rule, depending on what was sitting on the pallet. In the exceptional cases, we had to find an operator to drive the forklift.

If we couldn’t find a teamster or an operator, the pallet had to sit where it was. We couldn’t move it. It didn’t matter how many other guys were standing around who knew how to drive a forklift.

Since then, I haven’t been a fan of specialization on work teams. It leads to some people having more work than they can possibly do while other people are standing around idle.

I’d make an exception if work demand could be guaranteed to match the available allocation of specialists (i.e., never), but if not, then give me a team of generalists every time.

Thus spoke The Programmer.


Victor Szalvay: Technical Debt for PMs

Posted by on 5 Mar 2013

There is a Difference

17 Feb 2013 /

There’s a difference between being persistent and floundering.

Thus spoke The Programmer.


Are Daily Stand-Ups Harming Your Team?

3 Jan 2013 /

Woody Zuill: Are Daily Stand-Ups Harming Your Team?


Steve Denning: Outsourcing is the most short-sighted business decision in history

Posted by on 2 Jan 2013

HTML5 Date Tag

21 Dec 2012 /

I learned something interesting about the HTML5 date tag. Look at this calendar dropdown:

HTML5 date tag

Here is the sum total of code needed to make that happen in a Chrome browser:

  1. <input type="date" />

That’s it! No Javascript, no CSS. Programmers these days have it easy.


Rough Layouts Sell the Idea Better Than Polished Ones

29 Nov 2012 /

This was written by an ad man but I can see it applying to other endeavors, like designing a software interface:

Scribbling

If you show a client a highly polished computer layout, he will probably reject it.

There is either too much to worry about or not enough to worry about. They are equally bad.

It is a fait accompli.

There is nothing for him to do. It’s not his work, it’s your work. He doesn’t feel involved.

If he doesn’t like the face of the girl in your rendering, or the style of the trousers on the man on the right, or the choice of the car he’s driving, he’s going to reject it.

He won’t see the big idea. He will look at the girl’s face and think, ‘I don’t like her, this doesn’t feel right.’

It is very difficult for him to imagine anything else if what you show him has such detail.

Show the client a scribble.

Explain it to him, talk him through it, let him use his imagination.

Get him involved.

Because you haven’t shown the exact way it’s going to be, there’s scope to interpret it and develop and change it as you progress.

Work with him rather than confronting him with your idea.


IT Recruiter of the Day

27 Nov 2012 /

From an actual job ad:

Killer, Profitable, Stable and cutting edge technology company looking for genious!!!

It’s funny when someone misspells the word “genius”!

Why are random words like “Profitable” and “Stable” capitalized? Because the recruiter wanted to highlight the adjectives? Then why isn’t “cutting edge” capitalized?

Why isn’t “cutting edge” hyphenated?


IT Recruiters

15 Oct 2012 /
Shoe Salesman

I’ve worked with some great IT recruiters but they’re the exception, not the rule.

I spent a lot of time on LinkedIn recently as part of a job search, and it doesn’t make you feel good about IT as a serious profession when you see how many IT recruiters are former waitresses, bartenders, shoe salesmen . . . honorable professions, but not likely to give a person a good understanding of technology and the people who work with it.

Here’s a sample phone conversation I had with a recruiter:

“First question,” the recruiter says. “Do you have any experience with software development? Because that’s key for this position.”

“Uh, that’s all I’ve done for 25 years. Are you looking at my résumé?”

“Yes, but I don’t see anything about software development.”

“Are you sure it’s my résumé?”

“Yeah . . . I don’t see anything that specifically says software development.”

I’m speechless because this is clearly impossible.

“Hang on,” I say, ”I’m going to bring up a copy of my résumé here. Okay, let’s make sure we’re looking at the same thing.

Developing and maintaining a portfolio of enterprise web applications on ASP.NET. That’s software development.

Designing and implementing business-critical web services in .NET environment. That’s software development.

Design and implementation of multiple concurrent ASP.NET projects on high-volume customer-facing websites. That’s software development.

“Granted, we haven’t seen the word ‘software’ followed by the word ‘development’ but that’s what all of this is, right?”

(I may as well stipulate here that IT practitioners are a pretty bad bunch themselves when it comes to lacking appropriate skills for their work.)


Joshua Kerievsky: Stop Using Story Points

Posted by on 12 Oct 2012

Osmotic Communication

8 Sep 2012 /

Does it take you 30 seconds or less to get your question to the eyes or ears of the person who might have the answer?

 

Osmotic communication means that information flows into the background hearing of members of the team, so that they pick up relevant information as though by osmosis. This is normally accomplished by seating them in the same room. Then, when one person asks a question, others in the room can either tune in or tune out, contributing to the discussion or continuing with their work. [...] When osmotic communication is in place, questions and answers flow naturally and with surprisingly little disturbance among the team.


How to Lose Your Job : A Fictional Memoir (Part I)

4 Sep 2012 /

Because of the huge productivity differences between good programmers and bad programmers — 10x? 28x? More? — my biggest leverage point as a development manager is my ability to hire people.

At my last job, we had an HR Director named Lucy. In every one of our annual Employee Satisfaction Surveys, Lucy’s group had the lowest scores in the entire organization. Nobody liked or respected her.

She was, however, close with the CEO, which made that irrelevant.

Clowns

Lucy’s friend Kathy Slauson runs the Slauson and Slauson recruiting agency, so that’s where we got our programming candidates, who were mostly terrible.

The Slauson agency doesn’t specialize in IT candidates, although they do have a “technical recruiter,” who unfortunately knows nothing about technology.

They don’t bring candidates in for in-person interviews. They take whatever candidates give them in the form of a résumé and they pass the résumés along to clients like me in hopes of being paid a fee.

  1. Candidates send résumés to Slauson.
  2. Slauson sends them to me.

What value does this add over candidates sending résumés directly to me? None.

Slauson doesn’t qualify candidates. They don’t map abilities and skills against the requirements of a position. They add no value to the process, and I had to screen all the résumés myself, the same as if I’d just bought them from a job board.

When I saw that Slauson was just going to throw résumés at me, I asked them to please add a short write-up, indicating why they thought each candidate was a good fit for the job.

What I got was write-ups like “Candidate is good with Technology X,” where Technology X is something I indicated as a job requirement.

When I asked “How did you assess that the candidate is good with Technology X?” they would tell me “We asked him.” Or “It’s on his résumé.”

In other words, “Candidate is good with Technology X” meant “Candidate states that he’s good with Technology X. Unverified.”

 

(If you’re wondering at this point why an HR department would funnel good money to a recruiting agency for doing nothing, go back and reread the part where I mention that Kathy Slauson is a personal friend of Lucy the HR Director.)

 
Money to burn

I said earlier that Slauson has a “technical recruiter.” She was in the office one afternoon and handed me a résumé.

“He doesn’t look like an ASP.NET programmer,” I said after looking it over, “which is what we’re looking for. For example, I don’t see any C# experience.”

“It’s right here,” she said, pointing at the résumé where it said this: C++.

If you’re not a programmer, you might say, well, easy mistake to make. C# (pronounced C-sharp, like a musical note) and C++ (pronounced C-plus-plus) are both programming languages containing the letter C followed by one or more symbols.

But whereas C# is the primary programming language for web development on the Microsoft platform, C++ is a lower-level language used for system development. Nobody does web development in C++.

Not surprisingly, a high percentage of Slauson’s candidates bit the dust in the initial phone screen with me, because the phone screen was their first encounter with someone whose programming knowledge was non-zero and could possibly tell a good programmer from a bad programmer.

According to Kathy Slauson, that was totally unacceptable. She thought that because she had an in with the HR department, we should be hiring every candidate she sent over, qualified or not, and paying her for the privilege, which is the way it worked before I arrived on the scene and screwed up the process.

Money and whiskey

She was always very polite to me in person, assuring me that she was doing her best to improve the quality of candidates, but behind the scenes, she was telling Lucy the HR Director that I shouldn’t be allowed to interview candidates anymore.

(That information was never supposed to reach me but it did.)

Think about that: we had a recruiter telling our HR Director that a manager shouldn’t be allowed to interview their candidates. (The fact that I no longer work there tells you which side of the issue Lucy came down on.)

Kathy also told Lucy that the candidates I was rejecting were perfectly good candidates because after I turned them down, they were being hired at other companies.

Imagine that!

Of course they were being hired at other companies. They were being hired by companies with lower hiring standards for programmers. The best thing that could happen with some of those candidates is for them to be hired by competing organizations.

Do you think Amazon or Google worry that candidates they turn down get hired somewhere else?

(No, I wasn’t trying to match hiring standards with Amazon or Google. I’m just saying that it wasn’t my goal to be the employer of last resort, or to be able to say, “If we don’t hire ‘em, nobody’s gonna hire ‘em!”)

Everyone I hired was an order of magnitude improvement over the people they replaced.

I like to work with talented people. I’m not trying to get rich and I don’t have a career path. I’m trying to learn and get better and contribute to my profession.

If you give me a job where I’m responsible for hiring people, I’m going to hire the best people available, and decline to be force-fed unqualified candidates by a friend of the HR Director.

To be continued . . .


It’s a Seller’s Job Market in IT Right Now, Especially for Agile

31 Aug 2012 /

I recently concluded a 3-month job search. As part of my networking, I met a number of unemployed people in other fields who were having trouble not only getting jobs, but even getting interviews.

I talked to a lot of people and averaged about an interview a day, including phone interviews, mostly for development manager jobs. For every development manager job, there are multiple development jobs, so if you’re a developer, your situation is even better than mine was.

I live in Southern California, but the demand is not just local. I had multiple contacts from companies outside the SoCal area that can’t find qualified candidates.

I’ve been working again for over two months, I no longer have an active résumé on job boards, and I still get emails and calls every day from recruiters all over the country.

Agile and Scrum are in demand

West to Chicago, East to Toledo

The situation with Agile and Scrum right now seems to be that a lot of people are putting it on their résumé but most of them are bluffing.

One hiring manager told me that he’d talked to three dozen candidates who claimed to know Scrum and only one (me) who actually knew it.

Another hiring manager asked me to describe the Scrum process, beginning with a product owner with an idea through the end of the first sprint. It’s a basic question, and when I finished, he thanked me for my answer. “You’d be surprised how many people I ask that question and the answer is a yard sale.”

Actually, you’d be surprised how little I’d be surprised by that.

One recruiter contacted me about a 3-month Scrum Master contract in Toledo, Ohio. A glance at my résumé will tell you that I’ve never worked outside Southern California, so on a list of people likely to take a 3-month contract in Toledo, Ohio, my name would be far, far from the top, but the difficulty of finding a qualified candidate to fill that job is such that the recruiter contacted me anyway.

If you really know Agile and/or Scrum right now, it’s a seller’s market.


Do Google style interview questions illuminate the talent in front of you?

Posted by on 14 Aug 2012

Increase Code Coverage by One Percent

25 Jul 2012 /

Don’t kill yourself striving for 100% coverage of code with automated unit tests. But take a few minutes to increase your coverage by 1%.

Most likely, that means going from 0% to 1%. And that’s the biggest improvement of all.


The Game Blame Game

22 Jul 2012 /
Washington Bullets uniform

My boy is playing NBA 2K12 and points out that my Where’s Waldo shirt looks like the Washington Wizards (nee Bullets) throwback uniforms.

“Where’s John Wall-do?” he says.

Ha ha. I get my comeback opportunity a few minutes later when his game player passes to a teammate, who scores, but his player doesn’t get credit for an ssist.

“HOW CAN THAT BE ANYTHING BUT AN ASSIST FOR ME?!” he shouts in disbelief. “That’s bad programming.”

“Oh I doubt that,” I say. “The people who program video games are a lot smarter than the people who play them.”


Next Page »