Functional Spec Review
The purpose of this assignment is to have teams read another functional spec and consider it from two points of view: what they find good and bad about the spec and what they can learn about improving their own spec. Teams assignments follow. Because there are an odd number of teams, there is one 3-team group. The group of 3 will only review one functional spec but will listen to feedback on theirs and one other. You are to go through the following steps:
- Review the other team's spec
- Discuss with teammates what is good and bad about the functional spec you are reviewing. Could you build the product from that description? What is there to learn about improving your spec?
- Share your observations with the other team.
- Based on this exchange and further discusssion amongst the team, update your functional spec and post a summary of the changes that you made in a journal entry (see item 6 on the web site list).
Each team is to give a 30 minute presentation on a technology that they are using in their project. If there is no appropriate technology, the team may choose a technology that they find interesting. The time limit will be STRICTLY enforced. There will be one or two presentations in a class period. Your presentation should explain the technology, why it is important and interesting, and what are the most applicable uses. Include information about what problem it is solving and what technologies, if any, it is built on and are replacing. You are also to identify resources that classmates can use to learn more about the technology.
The topic of the presentation may be a language, library, framework or platform. The scope may be the complete technology or a particular aspect of it. For example, there are a lot of different and interesting aspects about the Android SDK or HTML5 and it would be appropriate to cover only a specific piece. Here is a list of possible topics. It includes many that I know teams are already using, but it does include others as well.
- Corona or Phonegap
- Dojo, Zend or jQuery
- GWT (Google Web Toolkit)
- Hibernate, RedBeans, Doctrine or other ORM (Obect-Relation Mapper)
- Highchart or other graphing package
- MangoDB, Neo4j, or another noSQL database
- Ruby on Rails
- SOAP or REST
- Twitter Bootstrap
You should be ready to answer questions from the class. My hope is that the presentation will engender a discussion about the value and importance of the technology. The presentation is expected to engage the class as well as teach the material. You will be graded on both style and content. Grading will take into account my evaluation of whether the class is absorbing the information.
All members of the team MUST present. Presentation must include visuals of some form: presentation, web sites, demos are all acceptable. If you choose to use a video, it must be short and to the point. Reference material for the class must be provided; this may be part of the presentation material.
Each team will review their presentation with me at the regularly scheduled team meeting preceding the presentation. At that time, I expect a clear outline of what will be discussed and who will be presenting the material. I prefer to have visuals available at that time as well.
Due: September 19
All that is due today is the topic that you would like to cover. Please give me a prioritized list of the topics that you would like to cover (2 or 3 at most). If you know that no other team is using a technology, one is sufficient. I will expect a single email from each team. I will make the assignments, including dates, over the weekend; note that dates are subject to change as I continue to schedule outside speakers.
First, you are to read the following papers:
- Waterfall: Royce, Managing the Development of Large Software Systems (1970)
- Spiral: Boehm, A Spiral Model of Software Development and Enhancement(1988)
- Extreme Programming: Beck, Embracing Change with Extreme Programming (1999)
As you read the papers, you will see that there is not that much difference in intent of the papers. In fact, you will see that even the first paper argues against a strict implementation of a waterfall method.
You are to write a cohesive essay of 2-3 pages (margins .75", spacing 1.15, font size 11pt) that looks at the similarities and differences of the methodologies as described in these papers. Discuss the underlying principles that are similar and what caused them to come up with different software engineering models. Are there differences in the types of programs they were working on or in the technologies were available to them at time? What other factors could account for the very different processes that they developed? A quality paper will include specifc references to the papers and will support any claims made.
Please submit your essay on Sakai. It is due on Sunday, October 12 at 11:59 p.m. By submitting the assignment, you are stating that you have neither given nor received unauthorized aid on this assignment.
Due: Tuesday, November 18 at 11:59 pm.
You are the president of a software development company of 100 people, half of whom are developers. You have developed a rather sophisticated business process that incorporates all of the software development steps as well as human resources and accounting. As the company has grown, the tools that you were using to manage the system are no longer adequate and you have decided that it is time to build software that really meets the company's needs.
This should not be a problem for a software development company, right? The rub comes because your top two advisers are at odds as to how the software should be built and the employees are also split pretty evenly. One of the advisers wants to dedicate a team and build the software using your normal development process; the other believes that this should be done as a company-wide open-source project. The first point of view is that you have been successful using your process, so why mess with success? The other view is that all the developers care passionately about this project (clearly you must be doing something right as president) and therefore it is a perfect opportunity to harness their creativity and expertise in a special type of exercise.
You need to make a decision and write a 2-page letter to the company employees justifying your decision. This is a sophisticated audience that understands the different issues in software engineering. They have read Mythical Man Month and The Cathedral and the Bazaar and familiar with the various software engineering paradigms and processes. Your letter may include any arguments that you feel are helpful, but will have the most impact if it is supported by books and articles, but especially these two.
Points that you may want to cover include issues of efficiency and organization, the impact that the development will have on other projects, the time needed to complete the project, the maintainability of the result. and the expected quality of the final product.
There are clearly a lot of specifics that I have not given you. You may make whatever assumptions you want about the missing details. Your letter should give me enough context to surmise what assumptions you made. If there are assumptions that you made that are not clear in the letter, add an introductory paragraph (doesn't count against the page limit) clarifying the points.
Youare to submit the paper on Sakai. Format whould be: margins .75", spacing 1.15, and font size 11pt. Please include your name in the file name: it makes it a lot easier whemn I download them. It is due on Tuesday, November 18 at 11:59 pm. By submitting the assignment, you are stating that you have neither given nor received unauthorized aid on this assignment.
Don't be intimidated by the fact that this is a book. It is the easiest technical read you will ever be assigned. It is a book well-worth having. It is also available free online. There are two version of the book out there: the original version and the 20th anniversary edition. The first 15 chapters are the original version. The 20th anniversary edition has added chapters 16 through 19 and are definitely worthwhile. Here is a link to a copy of the second edition.
The other reaading is Raymond's The Cathedral and the Bazaar. There is a book version of this material but the relevant material is in this section.