Sunday, July 27, 2014

8.02. Improve their ability to create safe, reliable, and useful quality software at reasonable cost and within a reasonable time.

This section,emphasize the way,Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.This is a system which is used for the informational needs.So there must be a standard in the site.that is development must be done to an accepted standard.I and my other team members acted as website developers,when we were developing the site.So we had to ensure that whether we have possessed certain qualities when developing a formal web based system.Therefore we learned about many developing technologies ,from the scratch in order to develop this system in a more useful and qualitative manner.we tried hard to develop the system according to the clients requirement.The other thing we very much considered was, the time constraint.As developers of a formal web based system,we had to make sure that our system is going to be built within the relevant time period at a reasonable cost.we realized the importance of these constraints very much when we were developing the site.

3.03. Identify, define and address ethical, economic, cultural, legal and environmental issues related to work projects.

There are so many issues have to consider under the work project. As a software engineer in point of sale system had a responsibility to identify,define and address ethical, economic, cultural, legal and environmental issues related to the system. Every coporation needs to generate profit while operating the laws of the system. They has to be ethical, but has a right to make desicions their own. The process with the aim to embrace responsibility for the company's action and encourage a positive imapact thruogh its activities on the environment, consumers, employees, communities, stakeholders and all other members of the public spherer who may also be considered stakeholders.

 According to the rising of population growth the consumer demand is also increase. So need to make a fast system with high accuracy. Consumers are becoming more aware of the environmental and social implications of their day-to-day consumer decisions and are therefore beginning to make purchasing decisions related to their environmental and ethical concerns. However this practice ia far consistent or universal

7.05 Give a fair hearing to the opinions, concerns, or complaints of a colleague.

There is a very famous saying by Zeno of Citium; “We have two ears and one mouth, so we should listen more than we say.” Exactly, we applied this to our project. We open up our project idea to our batch. This open up for massive flow of ideas for the project. Every small idea, criticism, opinion or suggestion was a plus point for us. Many interested people came and gave us suggestions in order to improve our software.
It helped us to continually evolve the system since many add ideas to it and suggest modification for it, which means it can be better quality and more secure and less prone to bugs than developing it alone, because it has so many viewers poring over it and weeding out problems. 

It was easy for us since we were building our system to a competition. But when it comes to professional software development if it is not an open source project it is not appropriate to open up that to wider audience. But it is important to the in-house developers who are working for the same project to share their knowledge and opinions. That helps to develop a better quality software.

3.02.Ensure proper and achievable goals and objectives for any project on which they work or propose.

This section will explain how to use the goals and objectives properly and achieve for any project software engineer involve.This is the one of most important ethical code,because it directly relevant to the Goals and objectives of the project.This also emphasize on how to achieve highest standards when working out in the project.In our project,we got a challenge to do the best with regarding the website developing.Some time we felt that it was too much to that of time constraints we had.but we managed to do it somehow.Because we divided the project into small portions and continued with that.we had achievable goals in every iterations.From this project,what i understood was,How to achieve a goal which has a limited time constraints and how to work as a group to achieve that Goal successfully. to achieve the goal in developing a web based system to someone else is a challenge.The best thing we must concern should be the proper communication with the client throughout all the requirement gathering and development process.

8.06 Improve their knowledge of this Code, its interpretations, and its application to their work

As future software engineers it important for us to get use to these ethics and to work towards the betterment of the profession. The principle number 8 generally speaks about this aspect.

During our 2nd year software development project we were not aware about the Software Engineers code of conduct. It is now only we realize that not knowingly we have been violated several code of ethics mentioned here. So as mentioned in rule number 8.06, Improve the knowledge of this Code, its interpretations and its application to work is very important.

Therefore it is important to have a proper understanding about the software engineers’ code of ethic. Since we get to know about it we were able to commit to it for this project. There are many type of software developers. Some build software for their university projects just like us, some do it for fun or as a hobby, some do it as a profession. Nevertheless in each and every scenarios the result is a fully functioning software. So it is important to have a knowledge about this code of conduct regardless of the purpose or how you built the software in order to make software engineering a respected profession and also to make sure the health, safety and welfare of the society.

3.13 Be careful to use only accurate data derived by ethical and lawful means, and use it only in ways properly authorized

We will always take care to use only accurate answers and reject distorted answers and incomplete answers. Other than that we hope to remain unbiased as possible and include each person’s valuable response. As stated before anyone can refuse to participate at any time so the information acquired will be given freely. We will not use this information in unauthorized way nor will we transfer the information to any third party to gain advantage (i.e. product development). Whatever the results of the research might be we strive to maintain transparency and report it as it is. Falsifying data will never take place. We will uphold always, high ethical and lawful means and use such data only in ways authorized.

1.01 Accept full responsibility for their own work.

Before the project started all the people involved with the project was gathered at a meeting and suitable tasks were divided among the participants along with the responsibility according to their work capabilities and interests .The division of work and the deadlines was in a written document (in online document in Google drive) and it was clearly mentioned that the responsibility of the work carried out by an individual will bearded by himself and no one else will take responsibility of the work he has done. And also it was informally discussed how it is important to handle over the work allocated work with the best quality and before the deadlines to avoid the bottlenecks and deliver a best quality output. This enhances the quality of the work carried out by an individual as the work load divided is interrelated.

Saturday, July 26, 2014

5.09 Ensure that there is a fair agreement concerning ownership of any software, processes, research, writing, or other intellectual property to which a software engineer has contributed.



Normally if a software has been develop by a company and it is not categorized under open source licensing it is tend to be a proprietary software. According to the intellectual property act in Sri Lanka legally the developer can claim copyrights to their unique work. Therefore without the permission of the owner of the software, in normal circumstances it is illegal to use the software if it not allowed by the owner.

Software licensing act major part in these ownership issues. For an example if you use an open source software which is under General Public Licensing (GPL), you are free to do any derivative work including changing the software code. But the changes that you have made also have to be release to the public for free use. Also if you build a new software using that code or done any derivative work, that new software or the derivative work has to be come under GPL licensing. Which means you can’t claim for copyrights. But MIT licensing gives you fully freedom where you can claim for an ownership for a derivative work that you have done.

3.10. Ensure adequate testing, debugging, and review of software and related documents on which they work.

Before the beginning of development phase all the documents related to requirement were checked and proofread to make sure design documents are in line with requirements. As a best practice for every 100 lines of code it was tested for bugs. And also unit tests, integration tests and system tests were done at appropriate stages in development phase. Finally alpha testing and beta testing were done. For beta testing this system was installed in different computers which operate under different platforms and tested for failure. After completing and passing all there test the system was hosted.


3.06. Work to follow professional standards, when available, that are most appropriate for the task at hand, departing from these only when ethically or technically justified.

When developing this web application we use Agile Scrum method. So it was developed with an iterative process. It is a developing method which is highly popular method in present in IT industry. Because it is flexible and provide more opportunities to continue the project with lot of freedom. For developing source code, coding best practices were used like indentation, commenting etc… All source files were arranged according to MVC framework. So all the aspect were technically appropriate which we used for developing this project.