Special thanks to Professor Nicholas Rowe for his past help designing this content and exercise.
Also thanks to Professor Catherine Watson for her past refinements to this content.


Edit

Understanding Clients

As a professional, you will be dealing with clients.

No matter how good of a software developer you are, if you “stuff things up” with clients, then it’s going to impact the work you can get.

How can we get an understanding of clients in order to design a product that we will present back to them?

How can you understand their needs?

Chances are, you’ll need to ask questions!


The Importance of Asking Questions

No matter what information the client has already shared with you, chances are you will need to know more from them along the way.

You’ll need to ask questions that will guide your design.

It’s good to practice the psychology of asking questions, in order to get something you want.

Edit Design meetings

You will be expected to apply the following content in the design meetings (with “clients”).

We will have some in-class activities to practice this.


Types of Questions

When asking your client a question, it’s important you understand what type your question is.

Before we look at the acceptable form of questions, we have to get one thing clear.

You should never ask “Searchable questions”.

Edit

A Searchable question is a question that:

  • You should (or could) know if you have done the mildest bit of research about your client.
  • Appears very apparent based on everything that has already been presented.
  • You can find out yourself by checking their website.

Searchable questions will undermine your credibility, and should be avoided.


This leaves us with the following types of questions you can ask.

These questions don’t have to come in any particular order, and aren’t always clear-cut. They can sometimes overlap.

You will want to answer a mixture of these sorts of questions, as they each serve a different goal.

1) Contextual questions

These sorts of questions are asking around what the client is doing—besides the actual project.

It might be about getting a sense of their history and values as a company.

The purpose of these questions is to see how:

  • You can feed this information (their values, etc) into the project, or
  • You can expand into other future projects they might end up doing.

2) Analytical questions

In these questions, you are seeking rationales and trying to get into their head space.

  • Why do they want this done?
  • How do they want this done?

Getting answers to these sorts of questions will allow you to demonstrates more initiative.

With this knowledge and insightful understanding, you will be able to do more than they requested.

You will be able to expand it and present more to them.

Your ideas will add value, but will only come by truly understanding the underpinning rationale.

3) Descriptive questions

These questions are actually about the design itself and what it is.

Here you’re trying to get a rich and deeper description, not just a yes/no answer.

You’re trying to develop a more vivid picture of what they seek to achieve within this design.

This will probably be one of your most focused areas of your questions.

4) Judgemental questions

Here, you are seeking a yes/no answer.

“Is this what you want?”

You are seeking clear boundaries.

Sometimes you need to ask these sorts of questions to overcome any ambiguity.

However, you probably don’t want to lead with these sorts of questions as you might end up being “locked in” to some decisions that might not be ideal.


But keep in mind…

Clients might not always be ready to give you an answer.

They might actually not know what they want.

Early on in the process, they might not be able to give you answers to Judgemental (or even Descriptive) questions.

You might need to start with more Contextual and Analytical questions.

See your role as to co-construct with your client, rather than expect them to tell you everything.

This is your opportunity to use your initiative to help the clients, with suggestions and alternatives.

When you ask questions, you should:

  • Be proactive and foresee rationale.
  • Be ready to offer options and alternatives.
  • Be ready to present the pros and cons of possibilities.


Edit

SOFTENG 206 Design Meetings: RULES

In this course, we will simulate design meetings with clients.

Clients do not have access to Ed Discussion. You can only ask questions during design meetings.

Clients are only available at the agreed design meeting times. You will be informed when these are on a weekly basis. They will not respond to design questions outside the designated design meetings.

If you cannot attend a meeting with the client, you cannot ask them “Hey, I can’t make it. Please still go ahead without me, and just flick me a recording later to review in my own time”. Instead, you will have to request your colleague to represent you, and they can ask questions on your behalf. If you make it a habit, your clients will quickly take their money elsewhere.

Remember:
This course is more than just learning to write code.
You’re not here to learn to be a “Code Monkey”.
You’re here to learn to be a professional Software Engineer. We want you to practice how you present yourself to clients, demonstrate your credibility and initiative, and make meaningful conceptual and design contributions to the project. This is much more valuable than “writing code”.

Besides the type of questions described above, there are two additional types of questions that you can ask during our design meetings:

  • Design questions for “clients”, and
  • Technical questions for “lecturers”.

Design questions

These questions aim to discuss design choices of the product and its GUI. Avoid asking questions like “How do you want us to implement functionality X?”, or “What kind of information should we provide to the user?”. If clients knew how to do things, they would not have hired you!

Software engineering is an engineering discipline, and it involves the essential art of you being an engineer that understands the role of taking the initiative in making design decisions and standing by them.

You need to discuss with the clients multiple design alternatives (maximum 2 or 3) to achieve the same goal. You should also tell clients what you think are the pros and cons of each alternative. Only in this way can you get (informed) feedback from the clients. Come to the meeting prepared with some alternative design choices for discussion. Be ready to provide your professional opinion, and ready to explain why you feel it’s suitable for the client.

Technical questions

You can ask some high-level technical questions to the lecturers if you are not sure how you should implement something. These should be high-level questions like “How can I pass data across scenes?”, and not low-level implementation details such as “Which method should I write to accomplish X?”.