Code of Conduct

Code of Conduct
A Bit of What In Our Group Project

Wednesday, May 21, 2014

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. Assign work only after taking into account appropriate contributions of education and experience tempered with a desire to further that education and experience.

Since we were working on a completely new language to all of us, it was a learning period for all of us. But Android was mainly about java, xml and graphics, we were aware about the group member's experience in those areas. We talked and assigned ourselves in to areas that we were strong and some of us were desired in those particular fields. So the work was assigned according to our experiences.

And that was the plus point we had since we were able to develop our project rapidly behind the time frame we drew.


5.02. Ensure realistic quantitative estimates of cost, scheduling, personnel, quality and outcomes on any project on which they work or propose to work, and provide an uncertainty assessment of these estimates.

We had all the resources we needed and the technology to use, so we didn’t had to buy anything for our development. But we had to schedule our working table since we had a limited time frame to develop our output with all the other subjects to be working on. We had to deliver a realistic project also. So we had to come up with a Gantt chart which is realistic to our project and allocate our work and group development very well so that we can manage our individual work and finish the project.

So far we are well ahead with our time frame and we are almost done our mobile application to the extend the first version.  

5.03. Not punish anyone for expressing ethical concerns about a project.


Since this was a group project there were many discussions regarding this project. We always looked far ahead of ourselves to overcome of those problems will arise if we chose this project. We discarded about 10 projects from doing since we had a good expressing ethical reasons regarding the projects. And all were very eager to know about everyone’s ideas so that we can improve our understanding. We never criticized the individual about any concern they made and we were finally agreed on a project that we are successfully finishing now.

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. Identify, define and address ethical, economic, cultural, legal and environmental issues related to work projects.

Since our project was related to financial area, we had to contact even Central Bank to get advised about the legal concerns regarding our project. Also economical and ethical issues were came across since we were developing this mostly for the foreign users. We had considered and contacted most of the related parties and we were aware about most of the things we needed to know.

There was some legality issues with our application data that we were concerned about. There was no application like our application in the market, and most of the clients were afraid to give data t our application since it was risk loosing customers and threats from the money sharks.

3.02. Ensure that they are qualified for any project on which they work or propose to work by an appropriate combination of education and training, and experience.

We were sure that we were mostly capable for developing this kind of a project which was very new for us but we had the experience we needed in java programming and education about doing projects in a professional manner. So the working process was easy for us we had the elements we needed.

Our combination in experience was good. We had good java knowledge, XML knowledge, and Mayura has been used IDE's before for development. We learned and we were expert enough to overcome the challenges we faces with our knowledge and experience.

3.03. Ensure that specifications for software on which they work have been well documented, satisfy the users’ requirements and have the appropriate approvals.

This was the most exhausting this to do when we were developing our project. But we were able to develop in a correct way since we were documenting everything according to the standards right from the start. Since we were the clients we were satisfied and also the panel was satisfied about our scope and the requirement gathering revealed some of the key factors to be added into our app.

We made sure that all what we did was according to the professional manner. We realized at the end how much documentation was important from right from the start. We used git-hub as a VCS to show and keep track of our project

3.04. Ensure realistic quantitative estimates of cost, scheduling, personnel, quality and outcomes on any project on which they work or propose to work and provide an uncertainty assessment of these estimates.

We scheduled work and personnel regarding our individual strengths and weaknesses as mentioned above. We had scheduling time slots for work since we had many other projects to do. Our time frames should be real and achievable.   

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

We were following the waterfall model so that we did all testing, debugging, and all the other development processes throughout the working project. We had some presentations all thorough the developing phase and we added and discarded some of the things in our project. 

We had a lot of positive feed-backs to our app so then we knew that we were doing the right way. At some times our server crashed and we had to re build it stronger.




Sunday, May 4, 2014

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:

8.01. Improve their ability to produce accurate, informative, and well-written documentation.


We did the documentation part as we were taught in the previous years. We knew the importancy of documentation and with every change we made we documented and it was helpful to all the members to know exactly what was done. Also it was easy to describe to our superiors and the judge panel in our presentations by showing them out documents.


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.01. Extend software engineering knowledge by appropriate participation in professional organizations, meetings and publications.


Since we didn’t knew anything about mobile app development we needed to acquire some basic knowledge of this field. So we attended some of the workshops conducted by Dialog, Etisalat, and some of the private organizations like 99X. Also we did some tutorials in YouTube. Also we had most of the help from the CompSoc society in our campus and Manindu, who had developed some android projects alone also guided us. It was a great experience to learn such an interesting new thing. We improved our technical knowledge since it was basic Java and XML.


Saturday, May 3, 2014

Principle 7: COLLEAGUES

Software engineers shall be fair to and supportive of their colleagues.



In particular, software engineers shall, as appropriate:

7.01. Assist colleagues in professional development.

Our group was interested in developing a mobile application rather than a web based application. But we had no experience in mobile application developing. One member was experienced in java developing so we game him the main part in front end developing of the software. Other one was not interested much in programming so we gave him most of the graphic designing parts and audio rendering parts to connect. I had interested in all kind of things and so I did the middle and the back end part of the project. So we helped and divided most of the work load in such a way, that it will help in future professional development of each member.

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

Frankly to say, we had spent nearly a month to select a project to do. We had a dozen of concepts and when we were doing research, each and every one sorted out some technical issues regarding that concepts. So all the time we gathered and discussed about every detail and gave some value to all the member’s thought about it. Finally we all came to agree about this project and we started. We knew we should give value to each member’s thoughts and complaints if we are to produce an effective app. Most of the new ideas came because we had a good discussion with ourselves some of which were aggressive by the way. But after all the work done, we realized that it was necessary.

Principle 1 : PUBLIC

Software engineers shall act consistently with the public interest. 





In particular, software engineers shall, as appropriate:
1.01. Accept full responsibility for their own work.

Everyone was responsible for the work they were allocated to in any project.  We all took the responsibility of our project and worked as a team to accomplish the goals together. We had no time to do other's word, we had a heavy work load for individually so we had to do the part we were allocated specially within the time frame we were given. We had to do presentations once a month and evaluate the work we did, so we helped each other to finish for each time frame and everyone took responsible for what they did. We failed in some parts of the developing process and relevant person (myself also) accept the failure and corrected it soon enough so no damage to be done.


If we had not done that our server, Android app and the stand alone app wont be finished simultaneously. We all should be responsible for what we have to do and what we have done.

1.02. Moderate the interests of the software engineer, the employer, the client and the users with the public good.
We were interested in developing a simple application, but after discussions with the people related, our project scope developed to a more interesting one to be working on. We also moderated our interests according to our teammates ideas mostly Mayura’s and mine. We wanted our clients to use a simple stand alone application to update and use the system. Our targeted users were experienced with apps so we had no issue there. We should always do what the public wants from us to achieve customer satisfaction. 

Customer satisfactions should be the number one priority in our project since they are the people buy and use our application. Our's was mainly foreigners, so they were somewhat used to Android apps and their taste is different.



References

resource links

http://www.computer.org/portal/web/certification/resources/code_of_ethics

http://www.acm.org/about/se-code

About the Blog

This analysis will be carried out by UCSC third year students as a part of project "FX RATES & CENTERS FINDER" for Professional Issues course.

B.T.R Karunadeera     
2011cs082     
11000821    
All the written articles are done by me.

Analysis of Software Engineering Code of Ethics and Professional Practice

Software Engineering Code of Ethics and Professional Practice (Version 5.2) as recommended by the ACM/IEEE-CS Joint Task Force on Software Engineering Ethics and Professional Practices and jointly approved by the ACM and the IEEE-CS as the standard for teaching and practicing software engineering.

About Project

Project Title: FX RATES AND CENTERS FINDER 
Project Type: Software implementation 

This is a location-based services provide the mobile users personalized services according to their current location. In our project we use location based service with some interesting features to solve few real world problems. The proposed system is an innovative android application that helps considerable number of audience to make their life style easy. 

Our main goal is to serve our targeted audience through the use of modern technology.

This app will provide the users easy way of getting information for who use mobile phones and tablets. Our main objectives are, 

  •  Create an effective android based mobile application for the community we are focusing on
  •  Add mostly needed features to enhance the app
  •  Web solution for currency exchange centers to handle their rates
  • Provide Currency exchange centers a web based solution to display their rates in our app (if they like to give us authentications to their active databases, we will directly process required data from them)
  •  Up to date currency exchange rates
  •  Search for a currency exchange center. Users can search for close currency exchange centers and their exchanging rates. They are given to categorize those options.
  •  Location of the currency exchange center is shown to the user and the route to the destination from the place where he/she is.
  •  Notify the rates of favorite currencies.
  •  A notification system will be implemented along with the application for the users to get daily notifications for the exchange rates of their favorite currencies. And they can have some graphical representations and analysis data about the rates.
Target users:  Foreigners and people who are related to Tourism.