Soft­ware Project Phase 1.3: Dis­cussing the Soft­ware Design

Posted on: May 30th, 2009 by Johan van Seijen No Comments

Together with “draft­ing a design” this phase is the one where the soft­ware designer will be most inten­sively involved with his team­mates, most notably the client/end user and the soft­ware devel­oper. This involve­ment rep­re­sents itself iter­a­tively in both phases. The rea­son “dis­cussing the design” has it’s own phase is because it just has to hap­pen and have it’s place in a project plan. The begin­ning of a project is where the strate­gic course is planned.

One of the great­est rea­sons soft­ware projects fail time and time again is because peo­ple are not involved or have the feel­ing they weren’t. So we as soft­ware design­ers, have to yank these peo­ple to the draw­ing board and ask “tell me what you want, I need to know, is this what you want?” or “this is what we came up with, so and so it is a prob­lem for the prob­lem you are cur­rently fac­ing, what do you think? What have we over­looked?” Let me give you a recipe for the num­ber of meet­ings I usu­ally need to come up with, and dis­cuss a design. Let’s say a client has some chal­lenge and knock’s on my door. From the moment of the first knock to a the moment he agrees with a scope usu­ally the fol­low­ing hap­pens, no exaggeration:

Meet­ing #1

We dis­cuss some­thing I call “ini­tial needs”. They are not require­ments or any­thing resem­bling them, but give me and my senior soft­ware devel­oper a clear enough view of what will be nec­es­sary to cover these needs with an appro­pri­ate tech­ni­cal solu­tion. I usu­ally get a “require­ment doc­u­ment” or “design”, a writ­ten doc­u­ment con­tain­ing a cou­ple of pages with text about the prob­lem area and related busi­ness rules. This doc­u­ment could be dis­cussed in a sep­a­rate meet­ing if required.

Meet­ing #2

After we, the senior devel­oper and myself, heard the client ask: “So what do pro­pose you could do?” we took over and came up with a crys­tal clear con­cept design and pro­posed a good tech­ni­cal solu­tion because of our com­bined knowl­edge about what would be nec­es­sary to make a good qual­ity soft­ware prod­uct. Dur­ing a sec­ond meet­ing we dis­cuss our pro­posed solu­tion with the client who gives me ten to twenty per­cent extra func­tion­al­ity to trans­late into “real” require­ments. The client feels he deals with pro­fes­sion­als and hur­ries back to his boss because he wants a go on the finan­cial pro­posal so we can get busy. That is I’ve reas­sured him that his extra wishes fill find their way in a revised design but requires no fur­ther meeting.

Don’t you need more time to clar­ify cer­tain things? I mean, my clients usu­ally are extremely ambigu­ous in the way they speak about what they want.”

Good ques­tion. My clients are exactly the same, like chil­dren in a candy shop, want­ing to have every­thing they can put their hands on. I’ve got a ques­tion for you before I answer the above one:

“What do you do with chil­dren when they come up to you, hands filled with candy?”

Answer: you give them an apple stat­ing it’s healthy.

I thought I was the pro­fes­sional when it came to soft­ware design­ing, not the one pay­ing me, or else he wouldn’t have hired me. Now I don’t want you to actu­ally start bleat­ing that in your clients face, just feel it. If you feel it, you act the part. See­ing your­self as the pro­fes­sional designer means you make a pro­fes­sional design, some­thing your clients will be happy with. Now I can’t do that all by myself, I need a senior devel­oper who knows his busi­ness when it comes to make the sen­si­ble tech­ni­cal choices and dis­cussing those with me. But in the end, hon­estly, I don’t need some­body telling me what a good design needs to look like, that’s my area of expertise.

What is clar­i­fi­ca­tion any­way? If you want a por­trait of your­self you don’t dis­cuss with the painter for hours on end what the por­traits sup­posed to be, do you? Well, with soft­ware design­ing we do and that’s okay because it’s a risky busi­ness with high stakes involved. But ask any soft­ware devel­oper who has a cou­ple of years deal­ing with clients under his belt and you’ll hear the same argu­ment over and over again, which is that clients should stay on their side of the line, not inter­fer­ing with the soft­ware devel­op­ers busi­ness. So it is with soft­ware design­ing, clients can pick the col­ors so to speak, but let pro­fes­sional design­ers deal with the rest.

Scope Creep

One more very impor­tant is that the prod­uct in this phase should be a ver­sion 1.0 of your design. v1.0 means that you have a an agreed upon scope and there will be no more adding func­tional issues. As a designer, you have a respon­si­bil­ity to guard this. If you don’t take this respon­si­bil­ity it’s your ass, because you’ll keep adjust­ing the design till king­dom come. Remem­ber the ten per­cent time­line for a con­cept design, you’ll won’t make it. So guard it, and if you can’t han­dle that, don’t just sit and whine about it, learn fast enough do some­thing about it, find some­body who can it or do both. I’ll turn meet­ings into bat­tle­fields if I’m forced to and think it’s nec­es­sary for the good of the client.

“If you like your chil­dren to stop win­ing now and again, keep feed­ing them candy to shut them up, but that’s deal­ing with the pain short term. You’ll end up being respon­si­ble for them being dia­betic in their teens.”

If that’s okay with you, start over begin­ning with page one because you must have landed directly on this page. When deal­ing with clients, chances are your not each other friends so stop treat­ing each other like you are more con­cerned about main­tain­ing the sta­tus quo than the truth. Trust me, you will be rewarded when main­tain­ing your con­gruity. If you say “no” nine times but “yes” the tenth time, chil­dren are very quick to learn and start nag­ging you until you give in, because they know you will. So they not only end fat and dia­betic, you’ll end depressed because these fat mon­sters will be out of con­trol drain­ing you of every ounce of energy you’ve got. I agree, that’s not what I call a com­pelling future. Stand­ing your ground when you know what’s right is.

Related posts:

  1. Soft­ware Project Phase 1.2: Draft­ing the Soft­ware Design
  2. Soft­ware Project Phase 1.1: Draft­ing the Project Plan
  3. Soft­ware Project Trait #5: Scope
  4. Soft­ware Project Trait #7: Project Iterations
  5. Soft­ware Project Mile­stone #1: Scope Determination

Leave a Reply

You must be logged in to post a comment.