Since the entire project is locally stored and accessible to one programmer or researcher, any collaborative effort will be extremely difficult, and require manual duplication and syncing of the project with other developers. With this primitive method of project version control, it is not clear what the main differences between different versions of the project are, unless a very detailed documentation is provided along with each version detailing the differences between the current, its ancestor (i.e., the previous version of the project) and its descendant (i.e., the next version of the project), or parallel independent versions of the project (i.e., the project branches). However, since this is practically impossible, the programmer or the researcher has to either skip documenting all minor improvements and therefore, lose track of detailed changes in the code, or otherwise, worsen the first caveat mentioned above, by generating more and more redundant copies of the same codes and data for the sake of keeping track of all minor stages of the development. This means that in order to keep track of every minor stage of the program development, one has to create a new complete copy of the project, with its own dedicated directory. In professional programming, all minor developments and changes to a project must be tracked and well-documented (only the major versions of the project (called deliverable in programming terminology) are supposed to be available to non-developers or customers. ![]() Difficulty in tracking minor developments in the project.Using this method, it is easy to forget which directory you are in, and to accidentally write to the wrong file or to mistakenly overwrite files you did not mean to. High risk of errors and irreversible mistakes.So, there is a lot of code and data redundancy in using such an approach to keeping track of your project’s version history. But, each one has its own dedicated separate folder. Obviously, the new version of your project will have a lot in common with the previous version. Data redundancy and storage inefficiencyĮvery time you want to develop your existing project and take it to the next level, you have to make a whole copy of the last version of your project to start the new development (i.e., the next version of your project). ![]() Obviously, tracking minor development stages of the project leading to each of the deliverables would be a very difficult task with such project management method.Ĭlearly, there are many disadvantages and caveats with maintaining the structure of your project and codes similar to the content of the above figure: Each folder contains one version of the project and its corresponding codes and results at a given time (i.e., one deliverable). ![]() The figure shows part of the content of a directory dedicated to a research project. Back in the early years of my graduate studies when I started scientific research and programming, the directory containing my first project looked something like the following figure.Īn example of bad coding style and poor project maintenance.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |