Sunday, March 22, 2015

How much of my work and what I create do I really own?

When a person creates his/her own original work, whether it's a piece of art, a written story, software, hardware, etc., it automatically becomes that person's intellectual property, who, by default, owns rights to its reproduction and distribution. There are two types of intellectual property: registered and unregistered.
  • Registered intellectual property gives the owner rights over the monopoly of the concept.  Examples include patents, trademarks, design rights, domain rights and plant breeder rights.
  • Unregistered intellectual property only prevents others from copying the concept.  Unregistered trademarks, copyright and database rights are all unregistered (Wilson, 2011).


In the sphere of software development it is very common for a person who writes a program's code to transfer some or all rights to his/her client. The usual way of handling the ownership of an intellectual property is through a contract or any other written agreement between the developer and the client which is supported by law. When making a contract, because you own your original work, you can assign to the client as few or as many rights as you want. For example, you can assign rights to use the software only in certain geographic regions (U.S. only), or for specific periods of time. You can also control whether the client is allowed to modify your work or license/sell your work to a third-party without your approval (Kimbarovsky, 2009).

Kimbarovsky, R. (2009). Contracts. Retrieved March 22, 2015, from http://rosskimbarovsky.com/contracts-for-software-and-website-developers.pdf

Wilson, K. (2011, June 3). What is the Difference between Registered and Non-Registered Intellectual Property? Retrieved March 22, 2015, from http://www.hawkip.com/advice/what-is-the-difference-between-registered-and-non-registered-intellectual-property

Sunday, March 15, 2015

Agile: User Stories

Agile software development process utilizes user stories as a fundamental structure of how a particular piece of software is supposed to work and what basic functionality it has to provide to an end-user. Krystian Kaczor (2010) defined a user story as "a short description of customer’s need. User Stories are commonly used in agile software methodology and frameworks such as  Extreme Programming or Scrum as a way of gathering requirements."

Most of the time user stories are written in a similar manner as follows: As who I want what so that why. For example: as a user I would like to be able to export data in Microsoft Excel format so that the data could be filtered or sorted later on. In the example above, I picked "user" as a who would be using a product. Then I stated the functionality that as the specified person I would've liked to have. And finally, I write down the purpose associated with the mentioned functionality.

http://www.agiletesting.info/wp-content/uploads/2010/12/story_on-index-card.jpg
User stories help to develop and deliver a product that functions according to an end-user wishes. They help a developing company or a team to estimate potential costs and time needed to finish the product. The user stories also help to eliminate certain misunderstandings, which may arise between developers and a client, as well as wrong assumptions.
 
As for the project that I'm currently working on, the user stories are on the main page of our project's website: https://sites.google.com/a/sjsu.edu/team-2015-spr-academic-scheduling/. There are nine user stories listed under "User Stories:" title.
 
Kaczor, K. (2010, December 7). Five Common Mistakes in Writing User Stories. Retrieved March 15, 2015, from http://www.agiletesting.info/5-common-mistakes-in-writing-user-stories-13

Monday, March 2, 2015

How Projects Shape One's Career

Projects are designed to improve one's skills in a certain field or multiple fields depending on a project. Usually a project requires cooperation of people or groups of people to reach a common goal in order to complete the project. This process stimulates teamwork and helps companies to build competent teams which will directly affect the companies' futures. Having a diverse team involved in a project is also plus because in this case the team is more likely to be more creative and have more variation than a homogeneous team would in their place. In my opinion, leadership, competition, creativity and social skills are the ones that progress throughout the work on the project the most.
Every project team has to have a leader without whom efficient teamwork or cooperation between teammates might not be possible as well as reaching the actual goal(s). Competition is more of a natural trait of any human being; it motivates a person to work harder for the sake of achieving one's own goals which could also lead eventually to a whole project team's success. Getting a promotion might as well be one of those goals. Creativity and social skill can be at a high level even before engaging in a project work. However, without those skills it is also possible to acuire them and improve to a much higher degree while working on a project in a team. Most skills and their development come from real life experiences, and working on a project is one of those valuable experiences.