This semester brought many successes and failures for our project. MIND, which stands for MIND Is Not DICOM, accomplished it's primary task of replacing the stock query/retrieve program supplied by CTN. Since this was the most important goal, we feel that this project was a success. However, we failed in achieving any but the most basic goals.
Despite developing only part of what we had intended, we learned about many aspects of software development. First, we learned that using a pre-existing library is not as easy as it may seem. The fact that a package is made publicly available does not guarantee that proper documentation exists. Further, there are very few places one can go for help. These libraries can be large enough as to take many weeks in which to gain proficiency. In the end, it proved easiest to learn a class by forcing oneself to actually use it, as opposed to learning all one could before starting. Second, we learned group members can not always be counted on to finish their classes. The amount of code produced is not directly related to the number of people in the group. In fact, simply synchronizing with other group members can impede progress. Finally, this project involved a significant amount of non-coding tasks, such as writing documentation and weekly reports.
Given the opportunity to start this project again, we would have split the project up earlier in the semester. Waiting to have a grasp on the libraries slowed down overall progress. It should have been an individual task to learn CTN and FLTK. We did not actually split the project into individual classes until at least half way through the semester. Second, we would have kept in closer contact with our client. It proved easy to misinterpret our client's requirements without talking to him frequently. Third, now that we know various sources of information regarding CTN and FLTK, these would have assisted us in learning FLTK and CTN quicker. For example, we did not find out about the usenet group, comp.protocols.dicom, and the FLTK mailing list. Finally, we would give the group meetings more purpose. By setting up weekly meetings without an agenda, we did not get much work done. Had we created a schedule of some sort, we could have more closely monitored progress within the group.
We learned that FLTK worked very well. FLUID proved an easy to use interface generator and the interface was consistent and easy to use. It was helpful to be able to spend time coding without worrying about interface details. Also, contacting Stephen Moore from CTN proved an extremely important resource for information. Often he responded to CTN problems within an hour of sending him an e-mail. Our project would not be nearly as complete without his help.
However, we experienced far more difficulties. First and foremost was the CTN server we set up on orbit. Setting up this server was originally deemed an easy task, until we actually started installing the software. It took at least three weeks to get this server functioning properly. Since this is essential to being able to test our project, the rest of the project had to wait. Second, splitting the project up turned out to be futile. Without being able to enforce progress on each class, it was far too easy for one to get behind. Thus, many classes were not completed at the end of the semester. Third, weekly meeting times proved difficult for people to reach and even remember at times. Fourth, there were far too many distractions in the Intel lab. Often there were five or ten people playing Quake, which not only distracted us from our meeting, but even got many members playing instead of working.
Given the problems we experienced over the semester, we did a good job in completing what we did. Our program can replace query_client, the program supplied by CTN. It not only provides all of its functionality, but also adds a few necessary features for real-life usage. Thus, our project does what it was asked to. Further, Jeff will be developing it further over the course of the summer to complete the unimplemented features. Further, our client appears content with the results of this project. Though the road has been long, winding, and at times contained many pitfalls and potholes, the final destination was reached. As Frost stated, "I [We] took the one less traveled by, and that has made all the difference."