Individual Lessons Learned

Jeffrey Miller

EEL 5881 Software Engineering I Fall 2000

Over the course of this semester I learned many things about software engineering, and how the techniques we learned in class can be applied to a real project. I have not only learned about the techniques of software engineering, but as a by-product of our project I have also become a much better programmer.

There were many difficult parts to our project. I believe that the most difficult part of our project was managing the documents. Michael’s ideas on how we would solve the problems of keeping track of the documents were extremely valuable. Early in the project we decided that we would put all the most recent documents on my web page. This was helpful for three reasons. First, it allowed us to be able to see our partners work almost immediately after it was completed. The web page was also very helpful in that it helped us keep these documents organized. Whenever one of us was working on a document, we would post the changes immediately. This was done so the other team member would not be wasting his time updating an already updated page. The third reason this was very helpful was that we knew that we always had access to our documents. If one of us accidentally forgot our disk or lost our disk, we knew that there was a backup copy on the web page.

The easiest part of the project in my opinion was the actual coding of the software. At first it was a little hard learning about how graphical user interfaces are developed, but there are some great online resources that are available for free. Generally I learned that programming a GUI in Java is pretty straightforward. There are no complex algorithms or data structures that the programmer has to define. The programmer just uses all the predefined methods and classes which are supplied with Java. There was a debate of whether we should use a visual development tool such as Borland’s J-Builder or Microsoft’s Visual J++, but we decided against it because we were extremely comfortable programming in the command prompt editing window. We also did not know how difficult it would be to layout the components of our user interface in a visual program.

I learned that to have a successful product careful planning is key, communication with the client is helpful, and it is helpful to open time in the project management plan for unexpected circumstances. Planning the project is the most important step that is taken in the development process. A poor project plan can lead to many problems when the product is being developed. The high level and the detailed design documents should be completed as soon as possible to help in the writing of the code, and the division of work between the team members. Communication with the client is also very helpful. The next time I participate in a software project such as this one, I will suggest that a rapid prototype. Showing this to the client and confirming that the interface is what they want will enable the programmers to concentrate more on the design rather than the look and the feel. Finally, I learned that it is sometime necessary to allow time for unforeseen circumstances in the project management plan. Sometimes design issues that were not noticed when the plan was first drawn up are realized later in the process. Allowing for these circumstances will enable a better product to be produced. The next time I take part in the development of a large product I plan on using the lessons that I learned from this project.

I suggest to the future students who take this course to start their project design early, keep track of their most recent documents, and talk with their client often. Starting the design may seem unnecessary, but it is one of the most important things, which can be done to avoid excessive work in the coding stage. If the detailed design is mapped out early enough it will not be necessary to write code that will not be used. Keeping track of the most recent documents is also very helpful. Having a central place where all the documents are stored is a good idea. If all the most recent documents are on a web page there will be no confusion in which documents have been completed and which are still in progress. Talking with the client about design issues can also be helpful. This can also save the developers lots of headaches when they get to the coding phase. If a rapid prototype is built and the client approves it, then the development team will not waste time writing code that will be unacceptable to the client. It is very important to keep organized and to have a clear picture of what the end product will be throughout the product development.

Team Member

Technical Contribution

Mangament Contribution

Michael Wales

For his technical contribution I give Michael a five. He is a very hard worker who has good ideas about how to go about coding a good product.

For his management contribution to the project I give Michael a five. Michael did a lot of work on our documents, and had clear ideas of how to keep them all organized. His work on the SRS, Conops, and the Detailed design helped layout the design of our product very well.

Jeffrey Miller

For the technical contribution I give myself a five. I believe that the code I wrote and the knowledge that I brought about software development in Java were key to the success of our product.

For the management contribution to the project I give myself a five. At times Michael can get little carried away on the design of a project, so it was up to me at times to keep us on track so we would meet our specific requirements by our deadline.

Template created by G. Walton ( on August 15, 2000.

This page last modified by Jeffrey Miller ( ) on December 10, 2000