Monday, April 7, 2014

Research Proposal

Robert Young
English 250
Section PN
3/12/2014
Software Engineer Communication
My paper will be about the methods that are used to communicate ideas between Software Developers in a small group setting as well as analyze the ways in which Software Engineers coordinate their work, so that no job is left behind or done twice. I already know most of the media by which Software Engineers communicate: Face-to-face, code, email, etc. I would like to learn what kinds of things they put in emails, whether the face-to-face meetings are more formal or informal, etc. It would be also interesting to learn where this communication can fail, and what can be done to prevent failures from happening any further down the road.

In my paper, I plan to cite several articles from peer-reviewed journals that cover the types of communication that are used in Software engineering as well as why they are used, and how. I will also use a couple of visuals to emphasize how well certain types of communication work better than others for certain tasks, and which type of communication is better overall.

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.

Graduate and Professional Student Research Conference Thingamajigger

Robert Young
English 250
Section PN
4/7/14
Graduate and Professional Student Research Conference

The only think I was really able to go to was the thesis competition toward the end of the day, so I didn’t have a lot of options to choose from when I decided what topic to write this paper about. Luckily, two of the theses that were discussed had to do with my major. One presentation, by Micheal Curtis, a student in Human Computer Interaction, was about how you could temporarily cure motion sickness caused by differences in virtual reality and real life (for example, when your eyes tell you you are moving forward, but actually, you are moving sideways). I thought this was cool because virtual reality, to me, is kind of like a video game. You use controls to move around while you yourself are staying in one place, which is hard for your brain to comprehend. Anyway, the solution that this guy was going to research was doing some sort of physical activity or puzzle or something of the sort to get the virtual part and the real life part of your brain back in sync. 

Wednesday, March 12, 2014

Annotated Bibliography

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.
           
Cherry, Sébastien, and Pierre N. Robillard. "Communication problems in global software development: Spotlight on a new field of investigation." (2004): 48-52. The main point of this article is to point out the inefficiencies of groups that communicate over distance. Aimed at other software engineers who may find the information useful, this article goes over means of communication that are not face-to-face. There is no bias or slant in the source, and the evidence supports the main points, but the article focuses only on long-distance communication.

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.

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.

Hainey, Thomas, et al. "Evaluation of a Game to Teach Requirements Collection and Analysis in Software Engineering at Tertiary Education Level." Computers & Education 56.1 (2011): 21-35. Print. Hainey seeks to come up with a way to better prepare software engineers for real-life software engineering positions by developing a game-based learning application to teach requirements collection. Directed toward other researchers who may be interested in this approach, Hainey emphasizes the use of games over conventional methods in order to teach Software Engineers how to gather requirements for their projects, without assuming much, getting information from several other sources. There is no bias or notable omissions in this article.
           
Knorzer, Oliver, and Powree. Richard's Guide to Software Development. Digital image.Sandra and Woo. N.p., 19 Nov. 2012. Web. 12 Mar. 2014. This is an image that depicts the software development process as a cat, and in each frame, a different version of the cat is displayed. The author is trying to help visualize the things that go into software development for common people. It emphasizes the work that goes into a project, as well as the results of that work, but doesn’t focus on communication alone. Is there bias? Probably. It is a webcomic, designed to be more funny than true.

Liu, C., Sandell, K., and Welch, L. “Teaching Communication Skills in Software Engineering Courses,” Proceedings of the 2005 American Society for Engineering Education Conference and Exposition, Session 2461. 2005. The main point of this article was to find the best way to teach communication skills to students in computer science and software engineering. This article is geared toward professors who should be teaching these communication skills.

Maiocchi, Marco. "Software Engineering." Future Generation Computer Systems 7.1 (1991): 23-29. Print. Maiocchi seeks to provide other researchers with an overview of what software engineers contribute to software production. The author does not emphasize over any single software engineering role, and doesn’t make any assumptions as all required information is found and cited in external sources. There is no bias, or notable omissions.

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.

Poyhonen, P. J. "Structuring Routine Interactions in Software Engineering." Managing Complexity in Software Engineering. By Richard Mitchell. Hitchin: Peregrinus on Behalf of the Institution of Electrical Engineers, 1990. 167-79. Print.

Ruff, S., and M. Carter. "Communication Learning Outcomes from Software Engineering Professionals: A Basis for Teaching Communication in the Engineering Curriculum." 2009. 1-6. Print.

"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.






Wednesday, February 26, 2014

Textual Analysis

Robert Young
English 250
Section PN
2/24/2014
Forget Foreign Languages and Music. Teach Our Kids to Code: An Analysis
What would you think of a five-year-old trying to program a computer: and succeeding? “Forget Foreign Languages and Music. Teach Our Kids to Code,” by Brendan I Koerner, a columnist for Wired magazine, proves that this is possible. Children can learn the basic principles of programming in their early years, despite the public opinion that programming is something that is above the level of kindergarteners and elementary school students. To prove this point, Koerner quotes Paul Gibson, a Computer Science teacher in France, references several programs that attempt to teach programming at a younger age, and making comparisons between computer languages and music and foreign languages.
In this article, the point is more that you can teach programming principles at a young age rather than the code language itself. The difference is that programming principles have more to do with problem solving skills and less to do with  code syntax and actually writing statements and executing them. Basically, he’s teaching them how to come up with pseudo-code rather than the actual code itself. They come up with the steps they need to take in order to solve a problem, then have the instructor implement them. In order to teach the language itself, and get all of the syntax correct, the children do, indeed have to learn how to read and write. Otherwise, they won’t have a clue what they just wrote down. A solution to this would be Drag and Drop programming (something that I have personal experience with), where symbols are used instead of words to come up with algorithms. Then the children won’t have to worry about the syntax or how things are spelled or anything like that. This is exactly what Koerner is trying to convey when he says “Kindergarteners cannot become C++ ninjas, but they can certainly start to develop the skills that will eventually cement lifelong fluency in code.”
In the second paragraph, Koerner quoted that Gibson was able to teach “Rudimentary Java to 8- and 9-year olds.” In the next paragraph, he claims that Gibson was successful in teaching kindergarteners “how to create graph algorithms” and “write a tic-tac-toe program.” Later in the paragraph, Gibson was quoted “Children aged from 5-11 have so much potential for learning about algorithms and computation that it would be a shame to wait until they are teenagers before we teach them the foundations.” This statement appeals to the audience through their feelings, calling it “a shame” to not teach programming principles this early in childhood. If a parent were to read this, they would want their child to learn the principles of programming in school. Quoting Paul Gibson was extremely successful in proving that children can learn the basics of programming principles at a young age.
Toward the end of this article, Koerner brings up some of the other programs that are trying to teach kids how to program. In one of these, “children as young as 4 are using a language called Cherp to make robots perform household chores.” Another “challenges kids to code their own versions of Frogger.” The initiative to teach children to code is gaining speed. It isn’t just a few people here and there that think it is a good idea, it is becoming broader as more research is conducted. This section of the article is especially effective in proving that children are capable of learning programming because he is able to cite specific cases where it has already happened.

In conclusion, this article did a very good job at proving that children can program. Specific sources have been cited that say children have already started programming. Gibson was teaching Java to 8- and 9-year-olds and getting kindergarteners to program tic-tac-toe, while other people were helping kids program their own game, as well as telling robots how to do their chores. Koerner also relates learning programming languages to learning foreign languages, saying that they learn languages so easily because of the way their brains work at such a young age.

Sunday, February 16, 2014

Rhetorical Visual Analysis of Richard's Guide to Software Development

Robert Young
Visual Rhetorical Analysis
English 250
Section PN
Richard’s Guide to Software Development: A Visual Analysis
This image was published in November of 2012 on a website called “Sandra and Woo,” which is an internet site used for web comics like this. Therefore, it would be correct to assume that this piece’s purpose is to entertain: that’s what comics are supposed to do. Most of the people viewing this comic are normal people that have some idea what software development is actually about, but haven’t really been in-depth in the field. For instance, someone who is interested in becoming a software engineer, but hasn’t actually programmed anything, or pretty much anybody else.
In this image, the cat is being used as an analogy for a computer program that has been, or is being, developed. There are several different frames, each one for a different perspective on how a program is made or what a program is like in each stage of development.
In the first frame, the cat is kind of just a sketch, just like when a Software Engineer has the very first idea for his program. You have a basic idea of what it looks like, but not necessarily exactly what it will look like or what it does. It hasn’t actually been started yet, and there will be a lot of work to do, just like a program needs to be developed before it can actually become what it was intended to be. When I went back to look at this later, I noticed that some parts of this first frame are done in great detail, like the head, while others are just barely started, like the legs. This may be because some parts of a program have to be explained a lot for it to make sense, while other parts make sense intuitively.
The second frame is a representation of how much time has been spent on each part of the program. Notice that the larger percentages of time are spent on things that are just kind of off to the side, like the tail and legs instead of the torso, or head, which is kind of like more time was spent on bonus features instead of the main program. This isn’t always a bad thing. Sometimes you get done with the main part of the program, and would like to add some features, but the features are actually more complicated than the main part of the program. Usually programmers use things called functions, and these functions help out the main part of the program. On a cat, the legs help the cat move around. One of the more complicated parts of the cat, the tail, helps keep its balance, which is extremely difficult to simulate, and may take more time to perfect than the rest of the cat. It is things like that you have to take into consideration.
The next two frames go together. One is labeled “How the Software looks before the beta test,” and depicts the cat with its hind legs missing. In the analogy to a computer program, this would mean that some features are missing, but most of the main functionality is there. After the beta test, in the second of these two frames, the missing functions are there again, but now different features are missing. This kind of helps explain that no program is ever complete. Every time you change something, it seems like it caused something else to be broken. In this case, adding the hind legs accidentally removed the front legs.
The first frame in the second row is labeled “How the software is advertised.” It displays a ferocious-looking tiger. This cat does look a lot better than the other cats on the page. It is depicted as a tiger that could supposedly run at up to sixty miles an hour and swallow a small child whole, even though the cat that is illustrated in the rest of the image probably wouldn’t be able to do that. This relates to Software Engineering because software often claims to do things that it actually doesn’t do very well, if at all. From personal experience, some applications on the Windows Store claim to do things that they don’t actually do. I won’t list specific examples because most of those have been fixed now.
The frame with the giant question mark is the one that was most interesting to me. It is labeled “What the customer really wanted.” Since the frame consists mainly of just the ginormous question mark, it indicates that nobody really knows (or cares) what the customer really wanted. They are going to get the cat-program even if they wanted a dog-program or even something completely unrelated, such as a flower-program. This is something that I myself do not necessarily agree with. If Software Engineers are unable to produce exactly what customers want, then why have them? The software engineers have to have something to work towards, even if not everything is explicitly stated for them. What the customers want is known to the Software Engineers, they just might think of a different way to do it than the customer wanted.
The second-to-last frame, the cat with the arm sticking out of its back and the elephant trunk growing out of its nose seems a little out-of-place. To me it looks like features were added that weren’t really wanted (or intended). It is kind of symbolizing a computer bug. It is a side effect that wasn’t expected or intended, but is part of the program anyway. In software engineering, bugs can sometimes be hard to get rid of, and getting rid of them can sometimes lead to more problems. To relate this to the picture, I don’t think this cat would appreciate us chopping off the arm on its back, and it could create a very large mess that would be a pain to get rid of.
The final frame of this strip depicts a human, probably the developer, with the cat. He is happy with what he has created it, even if it is a little bit strange or not what was expected. It shows that software engineers actually care about what they do, even if other people think it is strange. They like their program, even if it isn’t working quite right or looks strange. The “toot” is in their for comedic value, I suppose.
All of these things are more or less true about Software Development, from what I have seen so far. I’m not so sure about the giant question mark about what the customers want, but the rest of the details seem pretty solid. I’ve done my fair share of programming, and I’ve seen most of these things in action.



Works Cited

Knorzer, Oliver, and Powree. “Software Engineering, Now With Cats!” Sandra and Woo. N.p., 12 Nov. 2012. Web. 16 Feb. 2014. http://www.sandraandwoo.com/2012/11/19/0430-software-engineering-now-with-cats/

Monday, February 10, 2014

Software Engineering Visual Communication: Basically, a flow chart.

Since Software Engineers don't use a heck of a lot of visual communication between other software engineers, flow charts and storyboards are all of the things that I could come up with for pictures. Storyboards are like a task list that is put up in a common area for all of the software engineers to see. A flow chart, like the one below, would be used to help other software engineers understand how a particular piece of code works.


This is an example of a flowchart that software engineers would use to help visualize a program. This particular example probably comes from a space shooter or water battle or something like that.

The audience: other software engineers who want to see how the code works or are developing the code themselves. Any other audience would look at this and go "What the heck is this?" If they looked at it a bit longer, they could easily figure out what it is for, but a lot of people won't.

The meaning: There is a lot of things that take place in a single frame of a game. This flowchart is what a program does every 1/60th of a second or so (depending on the speed of the computer). There are a lot of things on this flow chart, and since the first thing on it is "is frame end?" it suggests that this flowchart would execute every single frame of a game.

Wednesday, February 5, 2014

Everything's an Argument Ch 6 Thought Piece

Robert Young
English 250
Section PN
2/5/14
Everything’s an Argument: Chapter 6 Thought Piece
This chapter was all about rhetorical analyses. To be honest, I have done some of these before, and I didn’t think they were much fun, but after reading this chapter I can see how some people could have fun with it. It could almost be like a game, making arguments back and forth, analyzing each other’s writing until one of the sides is defeated. I don’t know if I would like that very much, but I know that some people would really enjoy it.
I think part of the reason that I wouldn’t be good at something like a rhetorical analysis is that I am not very good at coming up with my own arguments. I think part of the reason for this is that I was forced to come up with arguments about things that I didn’t really care anything about in high school, like whether the drinking age should be lower than what it is now or not. I don’t really plan on drinking a whole ton of alcohol, even after I turn 21, so interest on this topic was very low for me, and I didn’t have a lot of fun. However, if we were arguing over something like the impact of violence in video games, I would be a little bit more help. I have played several video games, and a few of them were pretty violent, like Star Wars: Battlefront, or Call of Duty. Even though most of the games that I play aren’t really violent, I would still have more to do with that argument than I would with the drinking age. I guess what I am trying to say is that perspective matters. If you don’t care about something you are arguing for, your arguments will seem weaker automatically.

Anyway, on the topic of the rhetorical analysis itself, I don’t really see the point. I was told in my programming class that things go a lot smoother if you don’t try to figure out why everything works, as long as they do. That completely makes sense to me. If you tried to do a rhetorical analysis on every newspaper article you saw, you would go absolutely insane. We all know that advertisements usually try to get us to buy something, newspaper articles try to inform us, etc. As a computer programmer, I won’t really need to know why advertisements work unless I am designing them myself. I will have to write documentation on any program that I write, but I probably won’t ever have to analyze other people’s writing to see what exactly they are trying to do.

Friday, January 31, 2014

Summary Reflection

Robert Young
English 250
Section PN
Article Summary Reflection
I think I rushed this assignment way more that I did with my other assignments. I could keep telling myself that I had plenty of time to do it, since I had a week and a half. When it finally came down to that last day, and I still didn’t have it done, I panicked. I was up until three in the morning trying to finish it. I only ended up getting four hours of sleep Thursday night because of it. Then I got to class on Friday and found out that it wasn’t due till midnight, and I was like “screw it, I’m taking a nap.” I wrote this reflection first so I wouldn’t forget all of the points I was going to make.
Honestly, I don’t expect that my grade on this will be very good, and I know that isn’t very good because it is one of the very few graded assignments in the class. I think that is because there were multiple definitions of summary going around in my head as I was trying to write it, and it turned out almost exactly like the abstract in the actual article, except longer. The only difference is, I think I went into a little more depth than the abstract, but didn’t nearly get to the level of detail as the article.
The thing that was confusing me is I kept asking myself “Why am I writing a summary if I can just look at the abstract again?” and I kept thinking about the article we were to read about writing summaries, and how we were supposed to tie the article to our opinion. Then I kept thinking I heard you say in class that you didn’t want our opinions in our summaries, so this is what I ended up with. I have a general overview of the entire article, while going a little more in-depth than the abstract of the article itself.
Most of my thought pieces I did in about fifteen minutes. This summary took me like five hours (from 10 Thursday night to 3 Friday morning).
On the plus side, I did learn quite a few things about communication in Software Engineering: when working in groups, it is absolutely essential that everyone communicates. There are projects that need coordinated, people that need to work together to do certain things, people that need to make sure they are meeting certain specifications, etc. How well a team communicates may have a very strong influence on how good the final product is. Some of the practices discussed in this article help to increase efficiency in both communication and in development.
That is all. Ta Ta.

Article Summary

Robert Young
English 250
Section PN
This study is about the effect that Agile Development Practices have on communication between a development team and other people, like the consumer or management. Basically Agile Development Practices were designed so that a team of Software Engineers can work more efficiently. There are several different methods to do this, and the ones they focus on in this particular study are the XP (eXtreme Programming) and SCRUM (I couldn’t find what this acronym stood for, sorry). In Extreme Programming, the development team develops their program incrementally, with periodic “releases” that add features, and over time, all of these features add up to be an entire program. In SCRUM, the development team gets a set of requirements from the product owner to fulfil over the next month or less. The product owners then go over what all the development team has done, and sets new requirements that build off of the present program. I only gave the basic rundown, no specifics yet.
Communication is important in Software Engineering because it helps coordinate specific tasks that can be combined into one big thing. The balance is having enough time to communicate between your team, enough time to communicate with your customer, and enough time to actually code and work on the project. This study examines the effects of increased communication on the team level on the communication with the customers. There are two variables: internal communication, which focuses on communication between members of the development team; and external communication, which focuses on communication with people other than the development team.
The data they used for their analyses was obtained in a variety of ways: interviews, documentation, and direct observations. The documentation was typical of other software development projects. There were six interviews and several face-to-face discussions with project leaders. There were also visits to the space in which they worked.
The data was analyzed on an “in-case” basis. That means they took specific cases to analyze, instead of the entire population as a whole. This is because there is so much variety in software development teams and environments that it would be unacceptable to compare results with each other.
The Results in terms of Internal Communication:
In an open office space, there was less need for documentation and everybody knew what was going on. Daily meetings were a good way to keep the developers, project leaders, and sometimes the customers aware of where the project was in development. The task board allowed everyone to see what needed to be done very quickly. Planning meetings helped define the goals for the development cycles. Development cycle reviews helped make sure they were on track. Programming in groups of 2 (pair programming) is an efficient way to review code, but not good for days on end.
However, in project 1, some of the documents weren’t properly organized, which made figuring out which features were already implemented difficult, and the development cycle planning meetings were too short to fully cover all of the features and requirements. Some of the developers felt that the requirements weren’t descriptive enough. The focus of the project as a whole wasn’t really there. Some features got implemented that weren’t really needed. Some of the developers really liked the open office space, others really didn’t, and that affected the concentration of everybody. Project 2 actually disbanded the open office space, then went back to it because their User Interface needed better collaboration.
The results in terms of External Communication:
Iteration reviews and status reports helped increase the visibility of short term goals and requirements, and development cycle planning helped with short-term focus.
However, the developers felt that the development cycle meetings with the customers were not long enough to discuss the requirements, especially when the software became more complex.

Overall, Agile development practices mostly benefit communication. Cycle Development planning meetings and incremental development helped the development team to not take off more than they could chew in one cycle. Daily meetings kept everybody up-to-date, along with the task board. The open office space made it easier to collaborate. Unfortunately, there were some drawbacks. Some viewed the open office space as distracting, incremental development made the developers lose sight of the grand plan, and the development cycle planning meetings weren’t really long enough to go in-depth about the requirements with the customers.



Abrahamsson, Pekka, et al. “The impact of agile practices on communication in software development.” Empircal Software Engineering, an international journal. 13.3 (2008): 303-337. Web. 13 Jan. 2014. http://link.springer.com.proxy.lib.iastate.edu/article/10.1007/s10664-008-9065-9/fulltext.html 

Thursday, January 30, 2014

CEO ThingyMaBopper

Dear Everybody:

It has come to my attention that a consultant will be visiting our firm to assist with the debugging of Project FTW. The company she is from normally debugs physical objects, like go carts. However, she has expressed an interest in validating code for our project. I am sure each of you will get to know her very well over the next couple of months.
Now, she is here to learn, so if she asks questions, answer them kindly. Her voluntary participation is vital for Project FTW, so don’t be rude. Also, try to explain things that may seem complicated. She might not understand at first, but she is an extremely intelligent individual, and will be able to figure out almost anything.
She will need access to any design documents or project ideas that you may (or may not) have come up with.

I appreciate your cooperation, and value your continued participation in activities.

Robert Young
CEO

Systemificated Softwares, Incorporatified.

Wednesday, January 22, 2014

Embedding a Google Calendar on a Blog

  1. Log into Google calendar at calendar.google.com.
  2. Click on the gear in the upper right hand corner, then select "settings"
  3. Click on "calendars"
  4. Click on the name of the calendar you wish to share
  5. Scroll down to "Embed this calendar"
  6. To customize your calendar, click "Customize the color, size and other options," then copy the HTML at the top of the page
    1. Otherwise, just copy the HTML provided
  7. In Blogger, create a New post
  8. In the upper left hand corner, click HTML
  9. Paste your code
  10. Publish. Your calendar will now be on your blog, and nobody should be able to edit it from there.
Making your calendar public (or else, nobody will be able to see it):

  1. Complete Steps 1-4 above
  2. Click the "Share this calendar" tab.
  3. Check the "Share this calendar with others" checkbox
  4. Check "Make this calendar public"
Anybody who sees it will NOT be able to make changes. You have to explicitly grant permission for others to edit your calendar.

I would have added that earlier, but I didn't know you had to actually share the calendar for other people to see it through embedding (if that makes sense).

How would you find out how writing works in your field?

I would probably ask somebody. I would ask a person in my field (My dad, for instance, who works at john deere developing software) how writing is useful, what you need it for, why you need it, and how often you have to write. Honestly, Software Engineering is a lot of writing. You write code, you write reports, you write memos to other team members. You write the documentation for your program so that the people that are supposed to use it can use it.

Monday, January 20, 2014

Scholarly Articles for Communication in Software Engineering

http://onlinelibrary.wiley.com.proxy.lib.iastate.edu/doi/10.1111/j.1360-0443.2010.03104.x/abstract

http://link.springer.com.proxy.lib.iastate.edu/article/10.1007/s10964-008-9390-8

http://www.sciencedirect.com.proxy.lib.iastate.edu/science/article/pii/S0001457510001995

http://link.springer.com.proxy.lib.iastate.edu/article/10.3758/s13423-011-0177-7

http://www.sciencedirect.com.proxy.lib.iastate.edu/science/article/pii/S0022395610003286

http://onlinelibrary.wiley.com.proxy.lib.iastate.edu/doi/10.1111/j.1469-8986.2009.00925.x/abstract

http://psycnet.apa.org/journals/bul/136/2/174.html

http://psycnet.apa.org/journals/bul/136/2/151.html

http://informahealthcare.com.proxy.lib.iastate.edu/doi/abs/10.3109/00952990.2010.491879

MLA Citations:

Padilla-Walker, Laura M., Larry J. Nelson, Jason S. Carroll, and Alexander C. Jensen. "More Than a Just a Game: Video Game and Internet Use During Emerging Adulthood." Journal of Youth and Adolescence  39.2 (2010): 103-13. Springer Link. Web. 23 Jan. 2014. doi: 10.1007/s10964-008-9390-8


Van Rooij, A. J., Schoenmakers, T. M., Vermulst, A. A., Van Den Eijnden, R. J.J.M. and Van De Mheen, D. (2011), Online video game addiction: identification of addicted adolescent gamers. Addiction, 106: 205–212. doi: 10.1111/j.1360-0443.2010.03104.x



I didn't know if we were actually supposed to do these or not, so I just did.

Thought Piece for "Reading Games: Strategies for Reading Scholarly Sources"

I couldn’t tell you how many times I have fallen asleep trying to read something for a class. Often, I fall asleep reading books that I really enjoy, too, even if it is mostly because I end up staying up till 3 or 4 in the morning reading them.
I wonder how many people went back and reread this with the principles presented in it in mind. It has all of the parts it said to look through: an introduction, section headings, and a conclusion. I know that I went back and went through the whole thing again. The first time I read it, I had no idea what it would be about. I was trying to make sense of it, and it didn’t work to well. When I finally got to the “Strategies for Rhetorical Reading” section it finally started to sink in, and that was only like half way through the article. After reading the whole thing, I was like, “You know, this probably applies to this article, too.” So I went back and looked at all of the major parts of it (the section headings, intro, and conclusion), and the whole article made more sense already. I looked at the section headings to see what was important. The section headings in this article: “The Title”, “The introduction”, “Section Headings”, and “Conclusion”. All of the most important things of the article. Of course, the body is important too, but if you are just trying to figure out what it is about, these things are what you would want to look at. Overall, this is actually a very good way of approaching reading. I will definitely be using this strategy more in the future.
One thing I didn’t know before I read this was that you are supposed to figure out what the intended audience for the article is. In retrospect, it is actually a really good idea. It doesn’t make sense to read an article from a scientific journal and expect it to be general-reader friendly. It has all of the technical details, all of the “how it works.” General readers tend to just care if it works at all, not how. Thus, they would be less interested in the how. And realizing that does some strange thing with the human psychology, and it becomes easier to understand after that. It’s crazy I know, but somehow it makes more sense.

The whole thing about scholarly articles not trying to draw you in kind of makes sense. Scholarly articles are there for those who need the bare facts. They need to find out what they are looking for, and find it fast. They don’t need the fluff that a lot of other sources put into their articles. Their purpose is to inform, and in great depth. To do that and keep it interesting would require an entire book, not just an article.

Thursday, January 16, 2014

Portrait of Me as a Writer

Writing, to me is kind of a burden. I don’t want to do it, I avoid it until the last minute, and then I rush to get it done. If I can just go on about whatever, then sure, I could write for a very long time before I would get bored and try to start doing something else. I really like the thought pieces because I can just write whatever. Unfortunately, most papers have to be about a specific thing. Even in the thought pieces, thought, I had to keep my ideas to ideas about a single thing, even if it was kind of a broad thing. Instead of focusing on myself and how I could relate to the piece, I focused on what other real-world things the piece was kind of like. I don’t know if that was wrong or right, but that is how it ended up working.
Once I get an idea in my head, I write about it until I can’t think of anything else to add to that idea. Then, I go back and reorder everything until I get it to kind of flow, and it isn’t like all over the place, sometimes even saying the same thing twice, which is redundant.
I am kind of OCD about errors, but I am starting to learn to put that off until I have all of my ideas down. I just did my second thought piece, and I successfully did not correct a “didn’ tknow” until I had finished all of my ideas. And now that I put this in here, writing the rest of this paper is going to bug me because I can see the red squiggly lines. And yes, I know that I can turn them off, and I even know how, but then when I need to see those red squiggly lines, I won’t be able to see them later, and it sucks switching back and forth between the two settings all the time. Sorry for going off on a rant. Speaking of which:
I used to keep writing things, then erase them. Then, when I wanted to think of that thing again, and I couldn’t and couldn’t look it back up again, which sucked. I need to stop erasing things until I have all of my ideas down.
Another thing I don’t like about writing is editing. I hate trying to get all of the things in the right order. It makes sense to me, since I know what I was talking about, but I know that it won’t make sense to anybody else, so I feel like I have to redo the entire thing so it makes sense to other people (which I will NOT do on this. On this, I feel that one draft is enough, and I can just reorder some of the points I have made. Effectively, my brainstorming will become my submission with a little bit of organization).
To me, writing anything is challenging, especially when I have a limit to reach. For instance, this is an over three page thing, and I have done a lot of reflecting so far, and have not even gotten a page and a half yet. I think I would enjoy writing a book, because there is nobody telling me how long it has to be, what it has to be about, or anything like that. I can just write and write, and with no worries about who is going to read it, how well they like it, or anything like that.
I don’t really prepare for writing anything at all ever. On the thought pieces, I read through the article, then I wrote down my thoughts right away and blogged it. Not a whole lot of editing, not a whole lot of preparation, just opening a word file, formatting it correctly, and writing away. When I am done, I look back through it, see if it makes sense, and if it doesn’t I change a little bit, do some reordering until it does make sense, and then I post it. No regrets. If I fail, then I fail. If I don’t then I don’t. Hopefully I don’t. Because that would suck.
I hate structure. Freewriting is so much more fun. In high school, essays were an introduction, 3 supporting facts with evidence, and a conclusion. I hated that so much. What if your essay made more sense with a lot of little facts instead of 3 major facts, kind of like us talking in class about all of us overpowering a potential shooter if s/he ever showed up in our classroom? I have always been trying to bend the rules a little bit and organize things a little bit differently than what was required. Now that I don’t have to follow that format much more, I am so much happier. I hope I never have to be confined to five paragraphs to prove something ever again.
I think all of the essays and book reports that I have done in the past have ruined writing for me. All of the steps that I had to take were predefined for me. Now I view it as something I have to do, and less like something I get to do. Now that I have thought about it a little bit, I get to go off on rants if I want to. I get to talk about whatever I want if I want. I get to decide what the main character does. Not the teacher.
I like thinking in the mindsets of the characters that already exist and have their personalities already defined for them, like a roleplaying game. If I know how a certain character should react, I can usually twist it just enough that it is unexpected, yet expected at the same time, if that makes sense. Kind of like when you know that that dwarf is going to open the door down the hall, but he kicks it down instead, sending it flying. It is that moment, when you know something is going to come out of the dark, and it does, it just wasn’t what you were expecting to come out. Or a girl walks in on her boyfriend cheating on her, and they form a threesome instead of breaking up. Things like that. I think I would enjoy writing those kinds of things. (Not that I’m some sick pervert).

I also think, after writing all of this, that I would be more comfortable writing if I wasn’t graded on it. It makes me think that my writing is less of a reflection on me (even though it still is). In a good book, you aren’t really thinking “what was the author thinking when he wrote this,” but you are thinking “what was the character thinking?” I feel that if I am graded on something, it shifts the attention toward me and away from the writing. It becomes “What were you thinking when writing this” and less of “what was the character thinking.” I hope this makes sense. That being said, I believe that the audience for this paper would have to be my old Rhetorical Techniques instructor from High school. I don’t believe she is a bad person, in fact, at one point I asked her to be a reference for me. I just think that the grading that she used was extremely harsh. In retrospect, any of the college papers I have written so far were not nearly as hard as the ones she has made me write, although that could be that I am still a freshman, and haven’t had to write many papers. However, I still think that Rhetorical Techniques was still way too hard of a class for high school, and it may have put a damper on my willingness to write in the future.

Thought Piece: To See Your Story Clearly, Start by Pulling the Wool over Your Own Eyes

First off, I didn't know that so many people write in such weird circumstances. I could understand pulling something over your eyes in order to imagine things more clearly, but writing on the top of a refrigerator is just weird to me. The whole write your first draft completely first, then go back and revise things (which is what the author said he does) makes complete sense to me. It doesn't make sense to rewrite each sentence over and over again until it makes sense, because that would take forever. The only time that would make sense is if you were writing in some sort of poetic verse, where the number of syllables count or something. Instead, get your ideas down first, then fidget with the details. I think when I write I usually try to do everything at once, which is probably a bad idea. If you try to perfect right away, you lose your fluidity.
Being blind would help because you aren't able to stop and reread what you have written already. In fact, I believe that the only time that rereading would be useful is if you stopped writing for quite some time and needed to refresh in your mind what had happened already. Even then, I think I would rewrite the previous sentence just to get back into the flow of things. By the way, I am not actually writing this blind. Instead, I am wearing a pair of gloves with the fingertips cut off so I can still feel the keys. I think I am going to start doing this for every essay I write from now on.
Some of the weird things people have been doing in this article sound kind of like some of the real hardcore sports fans do before a game to make sure their team wins, like turn around whenever their team scores a goal, or snort a chip if they get a foul (which I did just make up. I don’t actually know anybody who does that). Hey, it’s only crazy if it doesn't work. These writers do some crazy stuff, but if it works, then it works. If it takes me writing while I am upside-down in order to get an A on my next paper, then so be it.
One weird thing that I tend to do with my writing is write a first draft once, just to get an idea of what I want to talk about, then rewrite the first draft in an entirely different organizational way, so it flows better. I think of it more like brainstorming, then writing the first draft, but it could be more along the lines of writing a first draft and then revising it so that it flows better.
As for using real places as the basis for a fictional place, I have heard of that several times before. I don’t think that is strange at all. A lot of movies are based off of true stories, so why can’t places be? Why not characters? Why not?

And now I go into reorder mode, to put stuff that makes sense with the other stuff that makes sense with it with it, if that makes sense to you.

Tuesday, January 14, 2014

Writing is like a good RPG - Thought Assignment for Calming the Inner Critic

Calming the Inner Critic is all about how to be yourself. When you are writing, you should feel free to write whatever you want, without the burden of having to make it make sense, or use proper punctuation, or even spell thing correctly, or anything of the sort. The same things happen in a role-playing game. If you want to have mushrooms that grow in midair, go for it. If you want to have a race of creatures that grow out of rocks, go for it. You don’t have to worry about the logistics, how it looks or how it sounds. It just is. It may sound crazy at first, but other people get used to it.
When I first started playing Dungeons and Dragons, the dungeon master had glowing mushrooms, and I was like, what the heck are you talking about? I had no idea what Dungeons and Dragons was all about. I thought it was all real medieval stuff, with no magic. You can imagine how wrong I was. Dungeons and Dragons is more about creativity and thinking of new ways to bypass obsticles. In a way, that is what writing is, too. In every book, something goes wrong, and the main character has to find ways to deal with it. The same thing applies in a roleplaying game.
Writing should be fun. So should role-playing games. Both are more fun when you actually immerse yourself in what you are doing. If you are role-playing, you should be making decisions based on your character’s personality, instead of your own. The same goes with if you are writing a book. You shouldn’t care what other people will think about the decisions that character is making, as long as it makes sense with the character. It takes focus. You can’t give in to make decisions that you as a person would make. You need to make the decisions your character would make.
When you are having fun, other people that see you having fun will have more fun as well. Role playing feels better when every person in the room is being their character. Writing will be a lot more interesting both for you and the reader if you are into your writing. You can’t just write about the character. You have to be the character.

In both RPG’s and writing, the character is what it is all about. The reader’s won’t care about what is going on in the author’s life, but they will care about what is happening in the main character’s life. The people you play games with are usually there to play the game, not hear your life story. I am not saying that it is bad to put some of your life story into your character, just don’t make everything about you.