In my opinion, it is impossible for a project not to possess any problems. For every team, regardless of the perfection of the team, there will definitely be challenges in order to deliver an extraordinary product. On the contrary, teams that find no problems with themselves are likely to have a big bang eventually. It is because when the problems are discovered, it is too late and likely to be unsalvageable. Therefore, the sooner the problem can be identified, the higher the chance to analyze and solve it. To emphasize, analyzing is definitely vital for figuring out the approach for the best solution.
In our project, To-Do Manager (TDM), one of the biggest and hardest problems we have encountered so far is implementing the multipurpose command bar (textual input) to facilitate the requirements. The problem started around week four when our team decided the architecture and the Application Program Interface (API) for our system. We have not realized the importance of having a well-implemented command bar. At the point of time, we just treated the command bar as a decorated feature for our fancy Graphical User Interface (GUI). Hence, we thought that implementation of the command bar was not a big deal despite that we were given target user Jim, an imaginary geek, who would rather type than use the mouse because of his fast typing speed.
The first part of the problem, which was facilitating requirements, kicked us in last week. After the fifth lecture of CT module, we realized that we had been really off tracked. Dr. Damith spent almost half an hour just to clarify and emphasize on the importance of a multipurpose command bar in the project. This devastating news implied that we have wasted two weeks in figuring out the software architecture that would need to be modified definitely. Moreover, as time went on, we noticed that the problem was not just that bad. The second part came right after discussions about refiguring out the project’s API. We eventually find out that the implementation of the desired multipurpose command bar, especially parsing–commands is extremely hard for us to solve ourselves.
The first cause of this problem is the lack of understanding on the requirements. We somehow shifted the main focus of the project from textual input to graphic interface during discussions. Another major cause is that many of us are perfectionists. We all aimed to build the best TDM with the most powerful multipurpose command bar ever. However, our ambitious goal is really a stumbling block in the implementation of our project.
The best solution for the problem at this point of time is try to find a suitable third–party library for the parsing–commands that can satisfy our requirements. Although using the external works is not encouraged, it is still a good opportunity for us to learn from how people handle the problem. Moreover, the library can be extended to be technically fit for our own project. Another possible solution is to scale down the goal and implement the slightly less ambitious multipurpose command bar, i.e. using flags to indicate transitions instead of users’ languages. Although the original goal has not been achieved completely, it is quite an acceptable solution to the hard problem that we have encountered.