Meeting Charleston
Today, I attended the Alumni Symposium. During freshman year, one of my classes had encouraged attendance to the (then in-person) symposium, but I was unable...
This class, CSCI 462, is centered around contributing to an open-source software project through bug fixes, documentation fixes, and other improvements. Before the class, I’m a bit ashamed to say that I wasn’t sure exactly what made software open-source. The initial readings in this class have made this clearer to me. Whereas closed-source software does not release its source code to the public except in a compiled-executable state, free and open-source software allows the public to view and modify source code. This has allowed the public to “volunteer” and contribute to open-source projects which have become incredibly successful. Some examples include Firefox, WordPress, and, as discussed in The Cathedral and the Bazaar, Linux.
As we start the semester, we are tasked with choosing an open-source project to contribute to. Those of us on the team who took CSCI 362 with Dr. Bowring understand how important it is to choose a “good” project - choosing the wrong project can create loads of extra work and stress throughout the semester. Some of the criteria Dr. Bowring supplied us with, specifically for choosing an open-source project this semester, include project maturity and openness to newcomers. While looking through projects, we’ve judged project maturity by the project timeline and release dates, but judging openness to newcomers has been a bit more difficult.
With choosing an open-source project for this semester in mind, I looked out for additional ideas about what makes one great while reading our assigned text, the The Cathedral and the Bazaar by Eric Steven Raymond. In this text, Raymond describes his own experience with open-source projects, particularly Linux and Fetchmail.
Raymond discusses the struggle between the Cathedral (closed-source) approach and the Bazaar approach to software development. Before Linux, the most popular software development style was like building a cathedral - individuals or small teams built software carefully like it was a beautiful, delicate building. They made larger, less frequent releases. Linux broke this mold and much of what the author thought to be best software development practice. The Linux open-source community was like a Bazaar. I had to look that one up - it’s a busy, permanently enclosed marketplace or street where goods and services are exchanged or sold, particularly in the Middle East. Linus Torvalds, the developer of Linux, spearheaded this style. He created a community of people with different “agendas and approaches.” Keeping this community organized as the “gatekeeper,” Torvalds built Linux without terribly much work on his part.
So, which style is better? The author, Raymond, argues that the Bazaar approach is the way to go in today’s world. As long as an open-source project has a good leader, “many heads are inevitably better than one.” The Bazaar style of software development, the Linux development model, supports early and frequent releases. It keeps larger teams stimulated and rewarded as they see their hard work (fixes, improvements, and the like) in action sooner. Releasing early and often also supports code reuse and prevents code duplication as fixes turnover quickly. In other words, code doesn’t sit idly for six months between releases as the cathedral style of development would have it.
With the agile framework becoming more popular, the Bazaar style has also taken off since the community built Linux. Hence, fortunately, many of the projects we will look at as candidates will replicate this style. These projects are also more like to welcome newcomers as they tend towards larger teams and more frequent releases that could include our bug fixes and improvements. I’m thankful that this article was assigned as we are searching for projects so our team can keep development style in mind!
Today, I attended the Alumni Symposium. During freshman year, one of my classes had encouraged attendance to the (then in-person) symposium, but I was unable...
The journey does not end after a software project has gone live. This week’s reading was “Continuing the Journey” - Chapter 9 of Client-Centered Software Dev...
“Databases reside at the heart of most software applications” (SD Chapter 6, pg 168). This week’s readings cover Chapter 6 of our textbook, Client-Centered S...
This week’s reading (Chapter 5 of Client-Centered Software Development) covers domain classes and unit/system testing. According to the text, “domain classes...
Proper documentation for both internal and external users of a software application is crucial to its sustained success after deployment. This week, we read ...
This week, we read “From STUPID to Solid Code!” by William Durand. This article is packed with high-level do’s and dont’s of programming. The “dont’s” are co...
This week, our class chose and reflected on articles from Software, Computer, or CoACM magazines. While perusing software magazines (finding good ones was an...
6.4. Exercise - Find the Oldest Bug Find the oldest bug that’s still open in your chosen project. Write a blog entry describing the problem, with a theory ab...
This week, our assignment was to explore http://opensource.com/, reading at least two medium-length articles from the site and blogging about what we learned...
This class, CSCI 462, is centered around contributing to an open-source software project through bug fixes, documentation fixes, and other improvements. Befo...
Hi everyone! My name is Janneke (pronounced ‘Yah-Nuh-Kuh’) Morin.
24.6 Explain why program inspections are an effective technique for discovering errors in a program. What types of error are unlikely to be discovered throug...
I feel like our team made great progress on the most recent deliverable (deliverable 4)! We met via Zoom more often than we did between any other two variabl...
23.6 Figure 23.14 shows the task durations for software project activities. Assume that a serious, unanticipated setback occurs, and instead of taking 10 day...
21.4 Explain why an object-oriented approach to software development may not be suitable for real-time systems.
This is my first reflection on our team’s testing project. I think this will be a helpful exercise as we move into the final stages of building our testing f...
20.10 You work for a software company that has developed a system that provides information about consumers and that is used within a SoS by a number of othe...
19.3 Why is it impossible to infer the emergent properties of a complex system from the properties of the system components? In the words of Ian Sommerville,...
18.4 Define an interface specification for the Currency Converter and Check Credit Ratings services shown in Figure 18.7.
17.10 Your company wishes to move from using desktop applications to accessing the same functionality remotely as services. Identify three risks that might a...
16.9 Design the interfaces of components that might be used in a system for an emergency control room. You should design interfaces for a call-logging compon...
9.8 Briefly describe the three main types of software maintenance. Why is it sometimes difficult to distinguish between them? Fault repairs to fix bugs and v...
15.10 The reuse of software raises a number of copyright and intellectual property issues. If a customer pays the software contractor to develop a system, wh...
8.7: Write a scenario that could be used to help design tests for the wilderness weather station system. Context: According to Chapter 7, Design and Implemen...
Mythical Man-Month - Does adding more labor to a project linearly reduce the time to completion? Or does it do the opposite, particularly to an already late ...
5.3: You have been asked to develop a system that will help with planning large-scale events and parties such as weddings, graduation celebrations, and birth...
2.1 Suggest the most appropriate generic software process model that might be used as a basis for managing the development of the following systems. Explain ...
4.5: Using the technique suggested here, where natural language descriptions are presented in a standard format, write plausible user requirements for the fo...
Our readings this week began with a focus on several software engineering failures which resulted in devastating incidents such as plane crashes (Space Craft...
11.4: What is the common characteristic of all architectural styles that are geared to supporting software fault tolerance? Architectural styles geared to su...
The Complexity of Software and Its Evolution Software is, by definition, complex. Frederick P. Brooks, in his article “Essence and Accidents of Software Engi...
1.3: What are the four important attributes that all professional software should possess? Suggest four other attributes that may sometimes be significant.
Hi everyone! My name is Janneke (pronounced ‘Yah-Nuh-Kuh’) Morin.