How to Start that Big Development Project

About to begin that big development project? Where do you begin? It’s important to discover exactly what needs to be developed before you develop it, so start by collecting information. This information will help you answer the question, are you building the right product?
Here are some things you will need to identify and write down:
1. The people who are involved with the work - You are developing a program or tool that will be used by users for a specific purpose. Who are these users? Who they are will affect how you program.
2. The thing the people you identified above use to do their work - You are being asked to develop a program or tool most likely with the hopes of making a task easier for workers. In order to find the best solution, you need to understand how the people are currently solving the problem. What program are they using to do the work right now?
3. The processes that are involved with the work - You need to have a good understanding of all the processes needed to complete a task. If the work the users are doing involve multiple steps, you need to make sure the program coordinates all of these tasks effectively.
4. The information required to do the work - You could make a great program, but it can be totally useless if it doesn’t provide the information required to do the work. Identify the information the users will need and find a way to make it available within the program. If the users need to look elsewhere for the information, they may look elsewhere for the entire solution as well.
5. The inputs required to do the work - You need to find out exactly what sort of information will be input into the system before you begin creating the system. You don’t want to reach a point near the end of development and realize the entire thing is useless because users cannot include vital information! While a keyboard and mouse are also common input devices, you may find that your users specifically also need a webcam or microphone input device to complete certain tasks.
6. The outputs created by the work - Fairly logical, but still necessary to discover! How will you manipulate the users data to provide useful results? What is the end goal the users hope to reach by using the program you are developing?
Once you have discovered all the necessary information, you then need to begin interpreting it!
1. Create descriptions of the people who do the work - Do this by creating personas for all of the main groups of users that will likely be using the system.
2. Describe the different goals involved with the work - Based on the information you collected, you should be able to identify all the goals the different users hope to accomplish by using the system. You need to know all of these, as this is what you will be developing your program to do!
3. Document the work step by step - We all hate documents, but if you want to save time and money, get the job done right the first time and write down exactly what you need to do. According to the Nine Causes of Software Error, faulty requirements and documentation errors are the leading causes of bugs and errors.
4. Create different scenarios regarding how various aspects of the work are done - By now, you have identified different types of users, you know what each of their goals are with respect to using the system and you have written down step by step processes to achieving these goals. Now, how do you combine all this information logically? Think about how the work is done by the users. If one user is using the system to enter available inventory and another is selling the inventory that is available, the program you develop needs to coordinate this logically such that the total inventory count is correct! What happens if you have 10 toasters and you sell one while Bob is counting boxes in the stock room? Then Bob goes to his computer and types in 10 toasters, while Joe hands one to a customer and there is really 9! Later that day, Joe will sell someone a toaster when there are none left!
5. Create charts and diagrams showing the work flow - If you’re working on a large project, you need charts to show the entire work flow. This makes it much easier to see and find the associations between various methods.
6. Trace the different scenarios, the different people, and their work descriptions through the charts and diagrams - Make sure all the users can in fact reach their goals by tracing paths through the charts you created. If all users can reach and accomplish all of their possible work tasks, you’re on the right track!
As you can see, when you’re working on a large project, there is plenty to do before you even write a single line of code. Many people like to jump to coding and creating prototypes right away in order to get user feedback more quickly. This is a mistake. Don’t waste your time creating something the users will ask you to change or modify once you show them. If you know what they want from the start, this will limit the amount of modifications you will need to make after the users get to test the software. When in doubt, look back to the Three General Principles of Quality Assurance to make sure you are on the right track!
Update: If you’re about to begin work on a software project, do not underestimate the importance of Software Project Management. Project Management plays a HUUUUUGE role in the final success or failure of a project. Read this article from Software-Engineer-Training.com which provides an Introduction to Software Project Management.
July 12th, 2007 at 6:41 am
[...] to Collect the Information you Need July 12th, 2007 by Deceth We’ve told you How to Start that Big Development Project, but we haven’t told you how to go and find all that information we say you [...]