Ben J. Christensen

Software Development and Other Random Stuff

Learning by Pair Programming

Last week I learned how to program on the iPhone using Objective-C and Cocoa Touch by having two 2-hour pair programming sessions with Brent Coursey and about 8 hours of my own playing around.

I am comfortable now with XCode, Interface Building and Objective-C – enough that I can build code to do what I want it to do, compile, run, debug, test and install on my personal iPhone.

I’ve connected to web services via Objective-C and built a user interface to interact with the services.

All in all it was a good experience and great way to learn – and the pair programming was very useful in speeding up the learning process. Unlike 10 years ago where I plenty of time to learn through trial and error, it was much more effective to sit and watch someone and see how everything worked together. I was able to pick it up very quickly that way.

Of course, 10+ years of object oriented programming in Java translates over well to the thinking and expectations – but the syntax and different ways of doing things were far from natural for a java programmer (especially one who had respectfully ignored the C way of doing things), so the demonstration received through pairing was immediately beneficial. (On second thought, ignoring C probably helped since I saw Objective-C as an OO language from the start – not as C)

A 2 hour session with Kent Beck sold on EBay for $405. That would be quite the experience – would love to do that and see how he or someone else at his level does their craft.

Filed under: Skills

Software Development is Not “Computer Science”

These guys are “computer scientists”.

Being a programmer, developer, architect etc does not in my opinion constitute being a “computer scientist” or working in “computer science”.

Perhaps the most general definition of science can be used for “developers” if we stretch:

- a branch of knowledge or study dealing with a body of facts or truths systematically arranged and showing the operation of general laws: the mathematical sciences.

But that doesn’t describe the whole of it like these definitions do:

- systematic knowledge of the physical or material world gained through observation and experimentation.

- knowledge, as of facts or principles; knowledge gained by systematic study.

As programmers we don’t do this – we use technology (the “applied science”) to build things and solve problems.

We may sometimes pretend to venture into “science” as we “research solutions” – but we’re just looking for knowledge and facts the “scientists” have figured out and then applying them in unique and novel ways.

Calling a programmer a scientist is like calling an artist a chemist because they use chemical compounds (paint, graphite, clay, steel, glue whatever).

Why does this matter to me?

Because by training our programmers in theoretical “Computer Science” educational programs, we are not actually creating employable or productive people. Sure, they have basic skills and theory that can then be applied through further effort – but unless they are one of the rare few to study, analyze and experiment with computer science theory – most of the knowledge gained serves little to no value in applying the techology of software development in real-world programming of software.

Filed under: Skills

Detail Oriented

I’m working on a fairly significant document that covers the requirements and high-level architecture for a new system based on SOA principles to replace an aging application.

The document is approaching 150 pages and beginning to approach something that properly describes the vision and needs so that business and technical folks can have a solid understanding of scope, requirements, priorities and how it will work (plus general direction on how it will be built).

It takes a lot of effort and time to sit down and not only read, but understand the scope of this system. It’s not a simple thing. As much as we try to keep it conceptually simple, there’s a lot going on and a lot of details.

In a few weeks I’m to sit down with a partner team to review and collaborate. My plan was to send over the detailed document for review so we could have a productive meeting to truly discuss missing requirements, strategy, execution planning etc.

However, I’ve been told they don’t “want” to read the detailed version — just a summary — bullet points with perhaps 10-15 pages.

These are senior developers and architects. Not high level business folks.

Attention to detail is in my opinion an absolute requirement for technical people. Decision making without details is dangerous and fairly useless.

My opinion is not high for people who do not care or have the attention span to be detail oriented.

An executive who’s not directly involved in the operations of something – a summary makes sense.

A team or person who is supposed to directly impact the design and delivery of something and its ongoing operations – if the details aren’t part of their focus, they don’t deserve to be involved.

If they don’t have the time to be detail oriented, then either they shouldn’t be working on the project, their time needs to be re-prioritized, or the project isn’t worth doing.

Filed under: Architecture, Management & Leadership, Skills

Some Favorites

photo1234404346795

photo-1

Filed under: Personal

Skill and Trust in Business

Dictionary.com defines skill as:

  • the ability, coming from one’s knowledge, practice, aptitude, etc., to do something well
  • competent excellence in performance; expertness;

Trust is defined as:

  • reliance on the integrity, strength, ability, surety, etc., of a person or thing; confidence.

Two common themes are ability defined as:

  • competence in an activity or occupation because of one’s skill, training, or other qualification
  • power or capacity to do or act physically, mentally, legally, morally, financially, etc.

My experience unfortunately is that skill and ability in people are not abundant – and therefore it is hard to have trust.

More problems are caused by lack of skill than anything else I run into.

Making mistakes and learning from them is part of life – it’s the human experience.

However, there is a reason world class organizations have “senior” people  and restrict the impact of “junior” people’s mistakes by limiting what they are allowed to do and affect until they have gained trust – by demonstrating their ability and skill.

Trust nowadays is given away much too freely – desire, eagerness, willingness do not replace ability and skill.

Trust should not be given unless someone has earned it. People should not expect to be trusted until they’ve earned it by showing they deserve it.

I had someone tell me (after failing on something) that I should trust them more and give them “opportunity” so they could succeed (by giving them the ‘keys to the kingdom’). This is backwards. Prove to me on small things incrementally and trust will be earned and greater opportunities given.

Trust does not work like “innocent until proven guilty”. Trust must be earned. Trust stems from skill, honesty, aptitude, competence and most importantly – time.

If business operations are failing, my opinion is it’s generally due to placing trust and unfair expectations on people who do not have the skill or ability to deliver.

Put the money and time on having the right people – and restrict the impact of “junior” people – and operations will improve.

Filed under: Management & Leadership, Skills

Recruiting IT Talent

An interesting article by James McGovern on recruiting IT talent.

The gist of it is that it’s very difficult to rely upon resumes, and that we as an industry seem to put up with “falsification” of skills and keep people onboard who really don’t have the skills they need to do their job.

It closes with the following statement:

“World class organizations are built on foundations where people can trust each other and don’t have to second guess the ability of the team. If you find yourself in a shop that doesn’t get it and you stay, maybe you are getting exactly what you deserve… ” – James McGovern

Filed under: Management & Leadership

Summary of Bad Week for Datacenters

Filed under: Production Problems

Smitten

I know this isn’t my personal photo gallery — that lives elsewhere — but my wife sent the following picture to me yesterday while she was out with my baby girl and I admit, I’m smitten. She’s my little girl and I’m wrapped around her finger.

photo

Filed under: Personal

Ideal Equipment

The following is my opinion of ideal equipment for developing – and anything else I do.

Picture 6

MacBook Pro 15-inch: 2.8GHz

8GB Memory

7200 RPM 500GB Drive

Picture 7

LED Cinema Display (24″)

Because one display is never enough.

Filed under: Tools

Rackspace DFW Power Issues. Again.

Twice in the last two weeks the Rackspace DFW (Dallas/Fort-Worth) data center has lost power to sections of its facility.

Message from Rackspace CEO Lanham Napier

June 30, 2009

Rackspace community,

Yesterday afternoon at 3:15CDT our data center in Dallas experienced an interruption in power to portions of the facility.  The interruption caused customer servers to lose power and go down.

Notice * July 7, 2009, 11:44 am CDT: Today a portion of our Dallas data center experienced a brief power interruption. Rackspace is aware of this issue and is currently investigating it. We will be sending out periodic updates as more information becomes available.

Picture 4

Picture 5

I commend their transparency through the use of Twitter and their blog, but rather disconcerting since it’s the datacenter I use and pay a premium for the amount of “redundancy” they are supposed to have, and the fact they had issues in November 2007 as well. More information here about that outage.

Filed under: Production Problems

Twitter Updates

  • I *really* wish iBooks and Kindle would let me copy/paste text so I can quote a sentence or paragraph! Ridiculous that I can't. 22 hours ago
  • Great weekend (and ‘food tourism’) in Los Angeles. "Sooo fun!" as described by a certain short person when asked on the drive home. 23 hours ago
  • Small world! Just ran into a colleague from work - a 7hr drive from the office! 1 day ago
  • We made it to LA! Feels like returning home :-) 3 days ago
  • Peter Pan Baby http://twitpic.com/2kg6n4 5 days ago
View Ben Christensen's profile on LinkedIn