UnReal Estate Catalog System Project Evaluation

Supplier Group #10

April 17,1997


Table of Contents


Satisfaction of the original Customer Specifications:

The final production version of the UnReal Estate Catalog System has met all of the original specifications that the Customer group has put forward. In fact, the system has exceeded those specifications in many respects. Reality In Programming has added a tutorial function to train new agent users at UnReal Estates Inc. and has added a comprehensive context sensitive help for agents and administrators alike. All of the Search and Administration criteria have been met and the system functions quickly, efficiently and securely. The System uses a double redundant system so that no information is removed from the database without Management/Administration authority.

The only portion that was not fully complete was the Import and Export of mass listings. These two functions were an enhancement to the original specifications that we at RIP thought would be needed and were not completed simply because we received no formatting specifications from UnReal Estate Inc.. These functions are already partially included and could be completed and fully tested for the company within three days of receiving the formatting information.

Back to Top


Usefulness of the Design Process:

The design process used to build the systems for our customers at first, seems very structured. This is a misconception. Most of the time that the group spent on the project was on writing documentation. This time could have been far better spent on the analysis of the project under the tutelage of our TAs. There are several problems involved with this idea. First is the consensus that our TAs were not nearly as well informed or knowledgeable as we would have presumed. It was very difficult to get information on the "what and how" that was required for the document that was currently being worked on and nearly impossible to get information on how that document was to be marked. Secondly, a detailed and proper analysis of projects of the size and complexity that we were working on would be nearly impossible because of the time constraints and the lack of "real world" knowledge that our groups had. This meant that some corners inevitably had to be cut.

Another concern that our group had was the interaction of the Customer and Supplier groups. The Customer group cannot fulfill its Supplier’s needs with a simple and uninformative response to the massive amounts of information they receive. Several pages of comments cannot possibly cover all of the problems that a 100+ page document can have. One possible way of fixing this problem is to set one or several people as liaisons for the two groups and having them report back to their groups every week. This seems like a lot of work for that one or two people that get this job but it must happen to limit the size and number of errors in the document and subsequently the analysis.

Supplier Group Ten fortunately did not suffer the problem of lack of communication with its customer group to the extent that some other groups did. We were blessed with an excellent leader who took charge from the beginning and followed through until the very end. We also had an excellent idea of what and how the problems could be solved. This led to our group working smoothly and efficiently through the duration of the analysis and building of the UnReal Estates Catalog System.

Back to Top


The Test Plan:

Supplier Group Ten took a page right out of Microsoft’s book with its testing of the product. We tested each function as it was built and as it was added to the main program. We then posted the current version on the Web. Each member of the group was expected to download, test and comment on any improvements or errors that they found. This was also done with friends of the group members. We assumed that the more people we involved, the more errors we would find. Everyone did do this to a point and it did reveal many problems with the program flow and program logic. This cycle occurred at least ten times during the development of the project.

Another thing that we did was to set one of our members to perform a regression test of the entire program. This included the observation of all help contexts, the performance of all of the tabs, buttons, displays and the error messages that came out within the program. All of the errors found were reported to the programming team and fixed at the soonest possible time. To do a true regression test would have taken the entire team a great deal of time and this was not feasible but the combination of the testing continually throughout the design process and the major test at the end the program is well tested.

Back to Top


The Management Structure:

As stated before we had an exceptional group leader and this can be extended to the entire group. We did not have to stray from our management structure very much during the project. The only thing that really changed significantly was the coding team. This originally had four people in it. In the end one person did about ninety-five percent of the code alone. For future reference, this is not the way things should work. We chose a software package to develop the project that was new to everyone and few people had any access to. This should not be the case but the university supplied no GUI programming language that anyone in the group had any experience with.

We found it difficult to keep the group structures for the documentation in accordance with our original Management Plan. People moved from group to group, working on things that had to be completed. This had to happen simply because people had projects from other classes or from outside of school that would not allow them to spend the required time on that document. Our group leader delegated the responsibility well and we had no serious overlapping or document that was undermanned. To the point we followed our management plan very closely and adapted to any problems very well.

Back to Top


Comparison of the time taken for each portion of the Project:

As a rule we used our time well during the analysis, design, documentation and coding portion. The program itself was started on the third week of classes and was continually updated and fixed so that it would meet all of our stated requirements. The documentation portions were also started early and all finished on time. The timeline is fair in most respects. The exceptions are that the logs and midterms followed too close to other major requirements. The members of the group found that with the stresses of other classes, these two portions were the most problematic.

The Overall Design Document was also a problem with many of our members. This could be removed from the timeline or more likely incorporated in to the time spent on the Detailed Design Document. Since the ODD was a building block for the DDD we believe that using the extra time on simply building the DDD would have been beneficial and would have produced much better quality documents.

Back to Top


How the Project would change if was to be done in the "Real World":

Few of the group members had any type of professional experience in the "Real World". Those that did have that experience saw some major changes that would have taken place. Firstly, the Customer group would not have been a mock group. This would have led to much more interaction between our two groups. It would have also led to much more motivation on the parts of the Customers. This did cause us some problems during the development of the system. Those people that have worked in the workforce commented "A company that is far more motivated that its customers is always going to head in a direction that is not what the customers want-- Interaction is the key."

Another constraint that would have been removed in the business world would be that of the laborious documentation. Not to say that documentation is not needed in the real world but a lot of the documentation for the project contained a lot of "filler" to meet the number of page requirements. The Documentation time line would have also been specified by the Supplier in the real world not by an outside source. This would lead to a much less rushed set of documentation and thus, documentation of a better quality.

One of the most important differences would have been the removal of other outside factors that limited the amount of time that the group could work on the project. Several of the experienced members said that once you are put on a project you work on it and maybe several other small projects until completion. Few people in the real world have a daily work load as large as a student taking five courses (three of which are CPSC major classes). The fact that we would have been able to put a majority of our time and thought in to the project in the real world would have produced a much more comprehensive and complete system for our customers. (This is not saying that our system is not complete, but a lot of other groups have encountered this problem.)

Finally, a different approach to coding and testing the system would have been used. In industry, people that know how to engineer software are hired. All of the members in the group would be expected to work to a specific level of efficiency and all would have had access to the program. These are problems that the course seems to ignore. There was no dedicated software package for building a GUI-database program in a realistic fashion. A Client-Server version of Visual C++ or Delphi should have been available to all of the members of every group so that they could all work on the project, even to a limited extent. All of the people that have worked in industry in our group agreed that the fact that no platform existed hampered the coding and testing process immensely

Back to Top


Things to change to make the project less work

Fortunately, our group had a very good leader so our group was very well managed. We usually did not have any problems with people or sub-groups not doing the work that was assigned to them. If this is the case (ie. the group is well structered), then incorporating more people into the main group would lessen the work on individual group members. Obviously, as the team gets larger, the amount of work that each individual would have to do should decrease. There is a strong emphasis, though, on the managability of the group. If the group has absolutely no structure and if the group members are unable to coordinate themselves, then adding more individuals to the group would probably increase the work load in the long run.

Our group also spent quite a bit of time trying to understand the assignment specifications. We felt that the assignment specifications could have been more detailed in some areas. A lot of the time the assignment specs seemed to be quite ambiguous and not very clear at all. A good portion of our group meetings were spent on discussions of what exactly the assignment was about and what details the TA's would be looking for. This leads us to another area that ate up a lot of group time. It seemed like the majority of the time the TAs were not very clear on what they were actually looking for on specific assignments. When asked, the TA's could not give our group members any clear or straight answers on the marking scheme or the specific details that they were looking for. So in most of our group meetings we were left with the task of actually guessing what the TAs would be looking for. Unfortunately, our group wasted a lot of time on these topics.

Our group also felt that the actual length of the documents was a little wasteful of time and effort. It began to seem that quantity was more applauded than qualtity. We would have rather pointed our efforts towards the actual design techniques rather than the length of the documents. Focusing our efforts on producing long, boring discussions of something that could have been said in half the amount of space was very labourous and time consuming. It would have taken individuals a lot less time to get straight to the point rather than trying to discuss all topics extensively just for the sake of document length.

Another major area for time consumption for a few individuals was the actual coding of the product. It turned out that only one or two individuals knew the same programming languages. So we ended up picking a language that only a couple of individuals were very familiar with. Although we had twelve people in our group, only one or two people actually coded the project. As you could imagine, this ate up a lot of time for those individuals. Perhaps a brief overview of an object oriented, GUI interfaced programming language could be taught in this class or in a prerequisite class. This would alleviate the work load for the programmers in each group.

Also, more meetings with the Customer group would have aleviated a lot of confusion. A lot of the time, we thought that we were on the right track as to what exactly the customer was looking for, but then in the following assignment there always seemed to be a requirement that we were not aware of. If the flow of communication between the customer and supplier group would have been kept up, this problem most likely could have been avoided. Because organizing a meeting so that everybody could attend from both the customer and the supplier group would be quite hard, maybe a weekly meeting time that would be set by the lecturer would help in this area. If the flow of communication could be kept up, a lot of confusion and extra work could be avoided.

Back to Top


Lessons Learned

One of the main lessons that we learned was that the flow of communication must be kept up at all times. Individuals were responsible for keeping the group up to date on the tasks that were currently being done for group assignments. As soon as communication stopped between individuals or subgroups, confusion started to arise and people ended up doing more work in the long run. Most individuals realized that it was their responsibility to keep the other group members up to date on the tasks that were currently being completed. The flow of communication is what keeps a group inline and helps increase the efficiency of production.

Another main lesson that our group learned was that an effective leader should be elected before we dive into the project. An effective leader should be able to ensure that the flow of communication is maintained, should have great management and organizational skills, and should have strong work ethics. Our group was very fortunate to have a leader that had all of the qualities listed above. Our group leader was able to organize individuals into subgroups for each assignment. He was able to maintain the flow of communication between these subgroups so that two different subgroups were not working on the same thing and so that all subgroups would produce a document that was consistent in some sort of way. Our group leader was very disciplined in his work habits and work ethics and was able to motivate other group members to have the same sort of discipline. Without a group leader, our group would not have been able to produce documents of the type of quality that we have produced.

We also learned that trying to work as a whole on the assignements could become quite difficult at times. The most effective way to deal with such large assignments and such a large group was to split the assignment into smaller parts and then to split the group into sub-groups. This way, for each individual, there were less people and there was less work to worry about. This also allowed each subgroup to meet more conveniently since there were fewer timetable conflicts to deal with.

This leads us into the topic of consistency. We learned that it was essential to set a standard way of writing the documents so that the editting stages would be less work. Setting guidelines and standards for each assignment helped guide the authors of each section and produced a document that was thoroughly consistent.

Another important lesson that we learned had to do with trust and honesty. Individuals had to trust that all other members of the group would be able to finish their part of the assignment on time. On the other end, individuals had to be honest as to how they were doing with respect to their part of the assignment. If honesty was not met, then individual group members would find it hard to trust their peers.

Back to Top


Group Structure

At the beginning of the term, each group member was assigned a specific task that he or she would help on throughout the semester. Although a lot of individual's tasks changed throughout the term, this first step proved to be a very smart one. We elected a group leader, a secretary treasurer, and a couple of Webmasters. Without the group leader, I think we can honestly say that our group would have fallen apart. The group leader called meetings, assigned people to specific tasks, kept the flow of communication going throughout the group, and put in extra hours in wrapping up most of the assignments. The secretary treasurer kept minutes of our meetings and helped put the minutes up on the Web. The Webmasters kept the Web page up to date and helped out with the HTML on the assignments.

Throughout the semester, people's roles always seemed to change. Although some people said that they would code, at some time they would end up doing a little technical writing. One individual seemed to land the position of "head programmer" even though no one had elected him. The following break down of the semester will show you how the roles of certain individual's changed throughout the term:

First meeting, preassigned duties:

Team Members Positions
Rod Bainbridge Test Data/Test Plan
Tammy Cheung Helper
Bruce Dechant Programer/Designer
Eric Jensen Programer/Designer
Test Data/Test Plan
Presentation Group
Catherine Jirasek Web Master
Presentation Group
User Manual Group
John Martin Group Leader
Communicator
Chris McClay Helper
Dave Menks Programmer/Designer
Secretary Treasurer
Test Data/Test Plan
Ivan Nash Programmer/Designer
Alan Tai Web Master
User Manual Group
Wako Tomiyama User Manual Group
Benjamin Wong Web Master
User Manual Group

Duties people actually had fulfilled by the end of the term:

Team Members Positions
Rod Bainbridge Test Data/Test Plan
Tammy Cheung Helper
Bruce Dechant Programer/Designer
Eric Jensen Programer/Designer
Presentation Group
Catherine Jirasek Web Master
John Martin Group Leader
Communicator
Chris McClay Programmer/Designer
Dave Menks Secretary Treasurer
Test Data/Test Plan
Ivan Nash Test Data/Test Plan
Alan Tai Web Master
User Manual Group
Wako Tomiyama User Manual Group
Benjamin Wong Web Master

Back to Top