Monday, April 7, 2014

Research Paper

Robert Young
English 250
Section PN
3/31/14
The Processes and Procedures Used to Handle Communication in Small Group Software Engineering
Most of my life, I have wanted to be the guy that writes the programming behind video games. Whenever I play one, I ask myself, “How would I implement this if I were a developer?” In order to understand this question more, I need to know how exactly developers develop the programs they make. A little bit of google searching told me that usually they work in small groups of developers, usually between 4 or 5 people to up to 50, depending on the project. This led me to another question: how do they know what is done and what isn’t done? How do they communicate between each other to see what bugs have developed, what bugs have been fixed, etc.? So I did a little bit more research. It turns out the answer is a little bit more complex than I had thought.
A software development team uses several different forms of communication varying from email to phone calls to meetings to conferences to just having a conversation. Each one has its pros and cons. For instance, e-mails are better for requesting something to be done, while phone calls would be better for trying to explain how something works. Meetings and conferences are like checkpoints to see what all has been done, as well as what needs done next. If two people are working on the same code, they would probably want to be in the same room communicating verbally with each other.
Other forms of communication that Software Engineers can use in a small group setting include storyboards, which are big flow charts that tell software engineers how a program should be designed. If put technically, it would be how each of the classes interact with each other, what methods they need to implement, etc. To put it non-technically, imagine a set of Legos. Each developer would be working on making a brick, and when the project is done, the Legos make up the entire piece of software. When a certain part of the program (or Lego brick) is done, the step on the flow chart can be crossed off on the storyboard. Usually, a storyboard is put in a place where everyone can see it fairly easily. It makes it really easy to update all of the developers on the progress of a piece of software.
However, in addition to the different types of communication they use internally, Software engineers have to communicate with a consumer to know exactly what they need to build. This is where it gets interesting. The consumer and the developer usually have different ways of communicating their ideas. The Consumer will probably try and describe what he wants in words, and the developer will have to try to interpret those words in the correct way for the consumer to be happy. As Keith Edwards and Robert Puckett put it, “Clients can exhibit difficulty in communicating specifications and are unaware of constraints on the software developers” (Edwards, and Puckett). Since most software engineering projects nowadays are fairly large, the consumer may have trouble finding the right words to describe what they want. There is not a really good way around this. One solution was to have “technical communicators,” or people who are really good at interpreting the client’s specifications and translating them into specifications that developers can understand.

Probably the most important type of communication the code itself. By reading code, developers can figure out exactly what is happening in a program. To use my metaphor above, each developer would be able to tell where a brick goes by looking at it. How big it is, and what color it is all help a developer tell how exactly to implement it in their piece of software. In large programs, developers often leave comments that explain what each method does and what each class is for. Trying to read uncommented code in a large program would be like trying to read a thousand-page book in Spanish. Granted, the developers know the language the code is in, so try to imagine you know some Spanish. Since it isn’t your first language, it is still pretty dang hard to understand, but possible. To use my metaphor above, each developer would be able to tell where a brick goes by looking at it. How big it is, and what color it is all help a developer tell how exactly to implement it in their piece of software.
Works Cited
Edwards, H. Keith, Robert R. Puckett, and Art Jolly. "Analyzing Communication Patterns in Software Engineering Projects." Software Engineering Research and Practice. 2006. Edwards, Puckett, and Jolly analyze the communication methods used by Software Engineers in order to see what is good and what is bad, aiming at other researchers with the same questions. The author makes no assumptions, getting all their information from other sources, without emphasizing any single aspect of communication. There is no bias or omissions.

Communication Effectiveness v. Richness of Communication. Digital image. Agile Modeling. N.p., n.d. Web. 12 Mar. 2014. This image is not directed toward any particular audience, and only serves as a visual for the effectiveness for different types of communication. No assumptions or major omissions were made. There would be nothing to gain from altering this image, so bias can be assumed to be negligible.

Al-Rawas, Amer, and Easterbrook, Steve. Communication Problems in Requirements Engineering a Field Study / by Amer Al-Rawas and Steve Easterbrook. Eds. Easterbrook, S. M. and Administration United States. National Aeronautics and Space. Washington, DC : Springfield, Va.: Washington, DC : National Aeronautics and Space Administration ; Springfield, Va. : National Technical Information Service, distributor, 1996. Print. In this article, the authors attempt to identify the problems that occur when gathering the requirements for a Software Engineering Project. Directed toward other engineers who might find use with this information, this article emphasizes communication between the developers and the end users. There is no bias or slant in the article, and the evidence does support the main points, but there is no discussion on the topic of communicating the requirements between a small group of individuals.

McChesney, Ian R., and Séamus Gallagher. "Communication and Co- Ordination Practices in Software Engineering Projects." Information and Software Technology 46.7 (2004): 473-89. Print. The main idea of this source is to get a grasp of what types of communication take place between software engineers as they develop software. The article is aimed at other researchers that may be interested in the subject. The author emphasizes only the communication in the small group, and omits the communication with the client. There is no bias or slant, as it is a peer-reviewed article. The evidence supports the main points.

"Software Engineering-Coordination and Communication Issues - Best Online Tutorials | Source Codes | Programming Languages." 1000 Source Codes. 1000 Source Codes, n.d. Web. 07 Apr. 2014. This article is about the types of communication that software Engineers use, but not really how they use them. This article is focused on a more general audience and can be related to by pretty much everybody. It focuses more on the types of communication, and less on how those communications are actually used.

1 comment:

  1. don't know why it wasn't showing up...had to revert it to draft and republish.

    should be fine now.

    ReplyDelete