PDA

View Full Version : System Design - Phase 1


sarettah
03-25-2005, 11:18 AM
"I close my eyes and soon I find I'm in a playground in my mind....." (Clint Holmes)

OK, you have this great idea, let's say for an affiliate management system. You've been in the biz a while, you have a couple of dozen paysites out there and none of the available solutions is exactly what you want. In your mind's eye you can see exactly what you think this thing should look like and you decide you are going to have it custom programmed for you.

So, how do you go about it....

STEP 1: Putting the team together.

You need a team, even if you are going to only have one person handling the design, coding and implemantation, it will take a team in order to communicate your vision effectively.

Your team consists first of all of you, the visionary. You are the one that has the picture in your little playground and therefore you are the only one that can get that picture on to the table for everyone else to see.

Your team also needs to include the designer. If it is database driven, you might actually need two designers. One to command the system design and one to command the database design. You also might have a program designer involved. In the current structure of the adult net, these three positions are often filled by one person who is constantly shifting hats throughout the process.

The most important members of your team during this phase are the users. The folks who are actually going to interface with the system. They need to be brought in early and need to commit to stay with the project throughout.

Then you need to appoint a project lead. This should not be you ! The project lead is a mediator, a designer, a facilitator and a manager all rolled into one. If you decide that you yourself are going to lead the project then you need to divorce yourself, while wearing the project lead hat, from your vision and instead be able to see your vision the way it is being communicated rather than the way it is in your head. Since this is extremely hard to do, after all, you have emotional investment in the project that will always cloud you, it is best to appoint someone else as project lead. The project leader does not have to be a programmer or a designer, but he/she has to understand the design process in order to be effective. They have to be a babysitter, a facist boss, a compassionate coworker and a leader all rolled in to one. The proper project lead can often make or break the project.

Ok, so you have picked a team. You have yourself, you have a guy that is going to do all the design work, you have a group of users and you have a project lead. So now what do you do?

Step 2: Communicating the vision.

This involves lots of people time, so it is probably the most expensive part of the process and it will at times be infuriating because it will appear to you that a whole bunch of people are being paid some big dollars just to sit on their asses and it will be a while before you will see any tangible output from it.

CALM DOWN !

Let your project lead handle it, bite your lip and hold back your "boss" comments. Instead try to relax into your role in the team. For this phase, the project lead is the boss. Try not to interfere with him. If you picked the proper person, then you need to trust that they know what they are doing. And for the love of god, never call your project lead to task in front of the team! If you have a problem with the Project Leads methodology then handle it in private, not in public. During this phase you are not the boss, you are a user, the most important user because it is your vision that the team is trying to build. You need to be open minded and tough skinned throughout the project.

During this phase, the project lead and designer(s) should be having a lot of sit down and talking time with you and the users. They are trying to pull the vision from your head, get the users input on the feasibility of the vision and then communicate it back to you and the users to ensure that you are all on the same page.

Have you ever played the "secret" game ? That is where you sit in a group of people, doesn't matter whether it is 3 or 4 or 100. You pass a secret to the person next to you, they pass it to the next person and so on and so forth until it comes full circle back to you. Never is the secret exactly the same when it gets back to you as when you passed it to the first person. This is because we all see and hear through our own individual filters. Getting past these filters is what the team is trying to do during this phase. The designers should be holding meeting after meeting with the users and yourself. They should be asking questions, then going away, making various diagrams and then coming back to the user group and presenting the diagrams and the picture they have. This process needs to be repeated for as long as it takes for everyone to agree on what exactly the vision is and what it looks like.

From this process, the designers should ferret out all sorts of information that they need to be able to build this thing that until now only existed in your little playground.

The type of information output from these sessions will include:

all entities involved in the process.
all transactions between the entities.
and most importantly, all expected outputs from the system.

A good system will be designed backwards. From the required outputs, the necessary inputs can be determined. Most non system design folks try to design left to right (ie: here is the info I am going to input and then determine what outputs) That is assbackwards. To determine the inputs, the design team needs to ferret out all outputs.

Once they have sucked all this data from you and the users, done a bunch of diagrams and reached consensus from the team on what it is they are building, you are ready to move onto the next step which is the actual design of the system and the database (if one is necessary).

(Just for info, this is the same process whether the system is automated or not. If you want a good solid system whether it is computerized or not, it will take time and money and effort... But in the long run it will be worth it)