Before Dev.
- what are the knowledges necessary?
- where can I get the reading material?
- have you learnt them all?
- do you know them in detail?
- where can I get the reading material?
- What is the dev. environment?
- have/have not?
- update necessary?
- do you need to learn it?
- who made it?
- protocols/tutorial for using the env.
- have/have not?
- What are the dev. tools? Do you know all the functionalities necessary for this project?
- languages
- coding tools
- design helper
- version control
- debug
During Dev.
- what is the logic (!! Answer IN GRAPH !!) of this project?
- what is the core computational logic (algorithm)?
- what is the flow of data?
- what is the flow-control structure?
- how many conceptual steps?
- how many repeats per step?
- which steps are subject to conditionals?
- how many conceptual steps?
- What is the estimated performance according to this task-logic (algorithm)?
- what is the optimal standard?
- what is the ancipated bottleneck of this task?
- is optimality achievable?
- If YES:
- what is the threshold condition for reaching optimality?
- if NO or UNCERTAIN:
- how does performance scale with key parameters?
- If YES:
- is optimality achievable?
- What is the design of program structure ?
- what is the role of this program? how should it interacts with other programmes?
- what are the variable inputs/outputs?
- are we expecting changes in the future?
- what will the changes be like?
- are we expecting changes in the future?
- what are the logic steps of this task?
- what are the relations between these steps?
- does any programming paradigm apply?
- which one(s)?
- will the general design princples help in this case?
- which one(s)?
- How should I implement this task-logic?
- examples and legacy codes?
- what are the constants? variable naming conventions?
- Per conceptual steps of the task: what are the functionality modules needed?
- How can I test these modules individually?
- what are the API documents for libraries?
- have I explained how the core codes work?
- How do I test the implementation?
- what is the testing protocol?
- how should I prepare test cases?
- how well should I test the implementation?
After Dev.
- where should I submit the codes for review?
- should I make a document for this program?
- Summary
- difficulties
- inventions
- interesting points
- comments