Saturday, June 27, 2015

Introduction

Professional Practice


 The technology is getting increased fast in the modern world day by day. So it is more important to have  a good knowledge about these technologies to survive in the Information Technology Industry. 


For our charity project we have created a presentation about some important areas and upload it into the slide share to share that presentation in  public. So it is helpful to the students and the people who are willing to improve their knowledge  about networking.  We are sharing our knowledge that we gained from the University to help the other people in the society.

Our presentation 
 http://www.slideshare.net/HRSupunHarshana/networking-concepts-49635600

Code of Ethics for software engineers

Software Engineering Code of Ethics and Professional Practice (Short Version)

PREAMBLE
The short version of the code summarizes aspirations at a high level of the abstraction; the clauses that are included in the full version give examples and details of how these aspirations change the way we act as software engineering professionals. Without the aspirations, the details can become legalistic and tedious; without the details, the aspirations can become high sounding but empty; together, the aspirations and the details form a cohesive code.
Software engineers shall commit themselves to making the analysis, specification, design, development, testing and maintenance of software a beneficial and respected profession. In accordance with their commitment to the health, safety and welfare of the public, software engineers shall adhere to the following Eight Principles:
1. PUBLIC - Software engineers shall act consistently with the public interest.
2. CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest.
3. PRODUCT - Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.
4. JUDGMENT - Software engineers shall maintain integrity and independence in their professional judgment.
5. MANAGEMENT - Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.
6. PROFESSION - Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.
7. COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues.
8. SELF - 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 Code was developed by the ACM/IEEE-CS joint task force on Software Engineering Ethics and Professional Practices (SEEPP):

Principle 8:Self

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. In particular, software engineers shall continually endeavor to:

The 8th Principle of the ACM Software Engineering code of ethics is focused on  the self learning skills of the Software Engineers. According to that Software engineers will  participate in long term  learning regarding the practice of their profession and also promote an ethical approach to the practice of the profession. 
This principle  highlights  the improvements of  Software Engineers should make both professionally and ethically. It emphasizes the long term behavior of a Software Engineer. IT industry is a one of the most dynamic and changing industry in the world. Because the Software Engineers should always be up to date with the technologies which are introducing to the world.

8.01. Further their knowledge of developments in the analysis, specification, design, development, maintenance and testing of software and related documents, together with the management of the development process.

Although we were not developing a software as our project, as a team we have also followed some of the stages of software development life cycle.  Our aim is to use one of the tool available in the internet and use it for a work of charity that can be a help for some group of the people in the society. So we selected slide share as a specific tool.

Analyzing the  details of the networking technologies accurately and easy to understandable way was a bit hard part for us because we were in a doubt which sections that we are going to cover at the first presentation.  There are so many topics related to the networking technologies so we faced a problem to select the suitable topics for the presentation. So we planned to do a survey to get ideas of the students. We used Google form to collect data from the students through a survey. According to the results of the survey we decided to conduct the presentation on the following topics.

  • Ethernet technology
  • Wireless networking technologies
  • IPV4 and IPV6 Coexistence
Then we refer the networking reference book Introduction to networking technologies by A.S. Tennabum and the other sources available in the internet and designed our presentation. 

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

The major challenge was to develop the product within the agreed time period with the expected level of quality, features and reliability requirements. Actually we were able to do that because of the team spirit. It was a great experience to achieve a goal as a team and be able to fulfill the final target. We have realized that our  final product should be able to satisfy the requirements of the students and the  readers. The worth we gain is working as a team. It was a good experience as we could be able to
share our ideas and improve our knowledge as well. Team spirit guided us to complete the task within the specific limitations of time while achieving the requirements as requested. When we developed that presentation we used our past experiences to build a quality wise standard product. Our previous experiences gave a valuable guide to us. According to my point of thinking I realized learning from our previous experiences is an important part of self learning as a software engineer. Because the knowledge we have gained from a work can apply for another problem likewise (related to that problem) later. So it will save time of the developing procedure. So we can ended up  with a good and accurate product efficiently.

8.04. Improve their understanding of the software and related documents on which they work and of the environment in which they will be used.

This is the first time that we are using slide share internet tool for a project. It is a nice thing to use as it helps anyone to upload a presentation to the internet related professions by without signing in but logging it through the Linked In professional social website.
We also encourage other students to share their knowledge using it. The slide share also allows us to present collection of slides as a video too, then it will increase the usability of the whole product.
The project helped a lot us to understand the environment and the technology of the slide share which was new to us. 

8.05. Improve their knowledge of relevant standards and the law governing the software and related documents on which they work.

Actually creating the video type presentation  about the networking technologies using and referring many reliable sources improved the knowledge of the members of our team a lot about the networking technologies.  I think it is an important advantage.  That's why people say sharing is a gain it helps us to understand theories well while we are studying the topics as a team to make the presentation.

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

This is the first time that we are applying the code of ethics for software engineers for an assignment and a project program. So it is a new task to learn and get an experience about applying code of conduct.

8.07 Not give unfair treatment to anyone because of any irrelevant prejudices.

When we working as a team sometimes there can be created some conflicts due to the different ideas of the group members. We have to face that kind of scenario by being flexible, accept other people's ideas and concern them too. Any member should not treated differently due to the differences of ideas. All the members should be treated in the same way. We have used that procedure in the team work and I believe that it was a great milestone to be success as a whole team rather than an individual person



Principle 1: Public


1.01. Accept full responsibility for their own work.

Software Engineers should be able to accept the full responsibility for their own work. For an example if a software engineer delivers a software product  with bugs then he or she should be able to take the responsibility of it. When we are considering our project, we have created a slide show about networking technologies and uploaded it into the "Slide Share". This slide show presentation will be helpful to the students who are following networking as a subject in UCSC as well as others who are wiling to improve the knowledge about the topics. If the presentation consists with incorrect details and information it would affect the students who refer the presentation. So we had to be sure that we share a accurate an high quality presentation. We are the people who are responsible for the product that we are sharing. This is a project that is sharing knowledge using slideshare; web based slide hosting service. It allows users to upload files in the formats of PowerPoint, PDF, Keynote or OpenDocument presentations privately or publicly.

1.02. Moderate the interests of the software engineer, the employer, the client and the users with the public good.

We discussed with the lecturer who was teaching us networking and got some advises as well as new ideas.We tested the final product manually and also got comments from our friends before publishing it in the slide share.  So we believe that there are not any mistakes available. As well as we believe that our final software related product meets the appropriate quality standards. We are providing a privilege to the users and readers to add their comments about the slides we have uploaded. Any volunteers are welcomed to add comments and additional ideas mentioning any suggestions available.  We  like to improve our project and also we are thankful for their new suggestions and ideas.We always tried to do our best to provide a standard quality product to the users. So we try to take the ideas of the users about our presentation and match these ideas with our capabilities to improve the quality of the final product.

So we have a moral responsibility other than a professional responsibility to deliver a accurate and error free product because if there are any issues then it will be affect the readers and students.
  
When we consider our project and map this principle  with it we obviously need to consider about the users. We have taken some steps to moderate the project according to the interests of the users. We are willing to have the comments and suggestions from the users of our project. It will be a great help to improve our presentation and we can apply those suggestions to  improve our presentations and the quality of the presentations which we are going to publish in the future.  

To make the presentation more reliable and accurately and be able to meet the specific quality standards of the knowledge sharing presentations we have taken following steps.We have refered the following books to get the accurate details to create the presentation
1.  Introduction to Computer Networks  by A.S. Tanenbaum.
2. Data and Computer Communications by William Starllings.


1.03. Approve software only if they have a well-founded belief that it is safe, meets specifications, passes appropriate tests, and does not diminish quality of life, diminish privacy or harm the environment. The ultimate effect of the work should be to the public good.

When we consider this principle mapping with the project we have done, we have mentioned all the reference sources of the presentation because we need to disclose the procedure that we selected information to create the presentation. So any user can refer those sources and develop the knowledge more if they want. The main tool that we have used to publish the presentation is slide share and it is an uncommon tool among the users. We believe that we would be able to encourage them as well to share their ideas with the public in a effective way by using slide share.
When we consider this matter the main issue that can diminish the access to the benefits of the slide show presentation is the internet connection. User should have internet connection to access and read the slides which we have uploaded to the slide share.  If a user also willing to upload a related kind of knowledge share source he or she can do it without signing in to the slide share by using logging with LinkedIn option. So I identified it as a important point of allocation of resources factor.

1.08. Be encouraged to volunteer professional skills to good causes and contribute to public education concerning the discipline.

As software engineers there is a  ethical boundary that everyone should obey to use the professional skills in a volunteer way to do a service to the general public  or to conduct a charity work  that would be helpful for the some group of people.It is not a easy task because we have to struggle with the time schedules most of the time. But we have to find out a specific way to do that service by using our professional skills. In this case we use our knowledge that we gained from the university to help some group of  people in the society. Although sharing the presentation which describe the networking technologies in the slide share is a simple project I believe it will help many people who are interested in that area.

Principle 2: Client and Employer

2.01. Provide service in their areas of competence, being honest and forthright about any limitations of their experience and education

Knowledge sharing is a good and important part of a software engineer's professional life. So it is an essential process to improve the self knowledge about the industrial technology. 

Because this is a charity type of program we have to provide accurate descriptions and details in the presentations that we have uploaded in the slide share.  Before we starting our project we have got many instructions by the networking lecturer to improve the accuracy of the information we have referred  many related books, internet sources and we have got advises by the lecturer.  

We also used our past experiences of making presentations and networking knowledge to achieve our target and provide our best services to the students who are studying networking.

The most important thing is about our project related to this principle is presenting details in a simple and understandable way to the public.




2.03. Use the property of a client or employer only in ways properly authorized, and with the client's or employer's knowledge and consent.

Before we have publish the presentation slides to the public we got the recommendation from an authorized lecturer who is familiar with the related field. So it was a big milestone of our project that it is achieved a standard level that saying other people can follow it and use it to improve the knowledge.

2.07. Identify, document, and report significant issues of social concern, of which they are aware, in software or related documents, to the employer or the client.
When we considering that part of the code of conduct it is really important to have a high reliability of the information that we have presented in the slide. We have identified that if the details are not correct in the presentation then it will create many harmful effects to the users, readers and students who study it. So we have taken some actions to certify the correctness of the details included in the presentation. 

Principle 3: Product

Software engineers shall ensure that their products and related modifications meet the highest professional standards possible. In particular, software engineers shall, as appropriate:



3.01. Strive for high quality, acceptable cost and a reasonable schedule, ensuring significant trade-offs are clear to and accepted by the employer and the client, and are available for consideration by the user and the public.

Our product is a  source of share knowledge. That is mainly very useful for the students who follow Networking course in the University of Colombo school of Computing. It provides  a detailed summery about the topics. So they can revise their knowledge , easy to memorize as well improve the knowledge of the related areas we have published.  We have already identified that the main milestone or the most highlighted quality attribute of the project is the reliability and the accuracy of the information that we have included in the presentation. It directly affects the users of the presentation. To achieve that success and the standard we have gained ideas from a supervisor lecturer as well as from the friends of the university. And also we referred reliable sources to get the information. Our project is also a volunteer and charity based work so we have completed it free of charge and the time schedule is also acceptable. 

3.02. Ensure proper and achievable goals and objectives for any project on which they work or propose.
our goal is to achieve a standard level to provide the knowledge about the networking technologies to the students who are willing to learn about the particular area. To accomplish the above goal we have worked hard as a team by completing the identified steps of the project within the given period of time. The procedure that we followed to achieve the target is simple. We discussed with the team and the lecturer , conduct the survey to collect and analysis the requirements, refer the sources to get reliable information, create the slide show , test it , get ideas and recommendation and finally we have uploaded it in to the slide share.

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.
To build an accurate system we have followed many reference sources. We also mentioned about these sources in the presentation as the users can also access those sources. Mentioning about the reference sources will improve the ethical values of the entire project too. At the same time refer some accurate and reliable sources helped us a lot to create a standard outcome too.

3.08. Ensure that specifications for software on which they work have been well documented, satisfy the users’ requirements and have the appropriate approvals.
At the beginning we have conducted a survey by using google form to collect data from the students who are following networking as a subject in the university. After that we selected the topics to create the slides according to their requirements prioritization.  So we believe that the presentation may be very useful as we created it according to the most priority requirements of the users.  As we followed a effective and reliable method to create these slides I think we have achieved the goal by gaining the user satisfaction about  the project.

3.10. Ensure adequate testing, debugging, and review of software and related documents on which they work.
We have tested our presentation project individually while we were creating the presentation. Not only that we have got the approval from the supervisor and  gained the comments and ideas from the students of UCSC before publishing it on the slide share.
3.13. Be careful to use only accurate data derived by ethical and lawful means, and use it only in ways properly authorized.
We always be very careful about the accurate of the final product of our project. We have got a good guidance from the expert lecturer of the subject and we referred the book "Introduction to computer networks" by Mr. A.S. Teanabum. So we can assure the presentation is  consisting of accurate data.


Principle 4: Judgement

Software engineers shall maintain integrity and independence in their professional judgment. In particular, software engineers shall, as appropriate:
4.01. Temper all technical judgments by the need to support and maintain human values.

We have use technological things as well as human values to succeed our project. Although this is a technology related project we have done it for a group of people. They are the ones who are taking the advantage of the project. We got the support of the people  when conducting the survey to collect data, refer the sources to filter the most useful and suitable details and information and while testing the program. So I believe that we have maintained the human values in a proper way to guide the project to achieve the targets of the project.
4.02 Only endorse documents either prepared under their supervision or within their areas of competence and with which they are in agreement.

In the real world scenarios in most cases software engineers are guided by the senior software engineers or tech leads.

In our project the documents and the presentation that we have created were guided and supervised by the networking lecturer and the UCSC batch mates. It took us to the standard quality final product.
4.03. Maintain professional objectivity with respect to any software or related documents they are asked to evaluate.

 We are proud to conduct a charity type work here that can be help to the people by using our knowledge. We collected their major requirements by conducting a online survey. Then analyzing the results of the survey we have understand what are the most suitable topics we have to explain.  According to those requirements we have created the presentation in a reliable way by referring many  sources and getting instructions from a supervisor. We believe that we were able to manage the professional objectivity throughout the whole process of the project.

Principle 5: Management

Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance . In particular, those managing or leading software engineers shall, as appropriate:




5.01 Ensure good management for any project on which they work, including effective procedures for promotion of quality and reduction of risk.
As a team we have managed our time and the resources to do the project. We have set up a schedule to manage the time and the other resources such as internet connection and the human resources we have used for the project.  Our managing process consists of planing, organizing, directing, monitoring, controlling, innovating and representation.

5.03. Ensure that software engineers know the employer's policies and procedures for protecting passwords, files and information that is confidential to the employer or confidential to others.
  
To get a good guidance to create a reliable presentation we have referred many books and other sources related to the networking technologies. So it will improve the accuracy of the presentation as well as it will help to improve the confidence of the users and students to follow the presentation.  
5.04. Assign work only after taking into account appropriate contributions of education and experience tempered with a desire to further that education and experience.

We have got a big help through the previous experience related to the networking technologies. We were also guided by the experienced instructor  to create the presentation in a more accurate and reliable way. 
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.
The presentation we have made  can be considered as an intellectual property of our team. All three members have the similar privileges of the ownership of the presentation as we have contributed equally for the project.  
5.12. Not punish anyone for expressing ethical concerns about a project.
As a team we always accept and listen to  all members' ideas as well as the other people who advised and gave their comments about our project. All of those were helped us to improve the quality and the standard of the final outcome. We used their ideas in appropriate way to the success of our project. Every one was welcomed to express their ideas to the team about the project. 

Principle 6: Profession

Software engineers shall advance the integrity and reputation of the profession consistent with the public interest. In particular, software engineers shall, as appropriate:

6.02. Promote public knowledge of software engineering.

When we publish our presentation in slide share site we consider it as a promoting software engineering profession to the public. Any one who is interested in the networking technologies can get a clear idea by studying the presentation.  The slide show will be able to help the students who are following networking as a subject in the university. One of our main aim is to share knowledge by using the services available in the internet as everyone can access it. So it was somehow promote the software engineering profession among the public.

6.04. Support, as members of a profession, other software engineers striving to follow this Code.

This is the first time we have used the code of Ethics for software engineers. It was a great experience to use it. As a team we have encouraged all the members of the team to follow the code of ethics  related ti this charity project as it will be a valuable investment for everyone to improve their professional experience.  
6.06. Obey all laws governing their work, unless, in exceptional circumstances, such compliance is inconsistent with the public interest.

When we have taken some guidance from an external source we have always mentioned it in the presentation to avoid copyright problems. Also we have taken the guidance from a lecturer and supervisors to improve the accuracy. So we can reduce the bad effects that can be caused to the user. As a team we have worked hard  to achieve the  common goal of the team and we have followed our own team rules and regulations to improve the efficiency.   

6.08. Take responsibility for detecting, correcting, and reporting errors in software and associated documents on which they work.

This project has been done by us so we have to responsible all the errors and other problems of the project. We tested and checked all the details of the slides of the presentation to avoid the errors. We have got the recommendation from the lecturer before uploading the  presentation to the public.   

Friday, June 26, 2015

Principle 7: Colleagues

Software engineers shall be fair to and supportive of their colleagues. In particular, software engineers shall, as appropriate:

7.01. Encourage colleagues to adhere to this Code.

As the team we encouraged all the members to follow the code of ethics because it will be a good investment to the improvement of the professional experience of all the members. 
7.02. Assist colleagues in professional development.

We also developed the team spirit whole we are creating the project. As a team we helped each other to improve the professional qualities and skills. 
7.05. Give a fair hearing to the opinions, concerns, or complaints of a colleague.
We have accept each and every members' ideas to improve the quality and the standard of the presentation. There is some worth of every opinion related to the project. Not only that the suggestions, concerns and the complaints are also provide a valuable guidance to success our project.