The important things to know:
If you or I have to build something then you or I will have to know few fundamental things before embarking the journey of creation.
- What to build
- Available/Allocated Budget
- For whom to build
- Who wants to get it build
- How long it has to run
- How many people are going to use it
- Will it interact with external systems
- Time frame to build
What to build is not scope of work. The scope of work encompasses everything related to the system, however “what to build” just gives an outline of envisaged system/project.
While deliberating “what to build” we should also fathom – is it really urgent or necessary?
Say, you have to buy a car. You have shortlisted and made up your mind and looking at the sky and you are on the seventh sky. As you lowered head and peeked into your pocket. You found it empty and euphoria evaporated. Hence, it is important to know whether you have fund for your project or not.
Assuming you have money to buy a car or you have allocated fund to buy a car. Now, the next question pops up – for whom do you want to buy a car – is it for your personal use or for your end customer? Once you answer yourself, you proceed for next step. You want to buy for yourself or for your wife. For how many years, do you want to you use car and how frequently you are going to use it? You are the only one user or different users will drive it as well, should it be disabled friendly. Do you want to integrate your car with GPS system? How much time, you would be needing to buy this car?
If you correlate this with your software development or product development, you will find that steps are more or less same, we are just using different lingo to represent software system.
Apart from above mentioned we should consider some more points while developing a system.
- Initial state of the system
- Intermediate of the system
- Final state of the system
Once we are able answer above mention questions and define state transition diagram (not necessarily in the same sequence, as the questions are interwoven and interrelated), we are good to go.