Sunday, June 28, 2015

Principle 8: SELF

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


We had to learn things when we knew that our level is insufficient at the moment. There are enough opportunities to learn good things. All we need was finding time to study things. 

We had those intentions to complete the works without dues. That motivate us to learn fast while optimizing the work what were had done already.

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



Course works ask us to document well not only for this project but each and every past projects were asking that. Because of that documentation was not a burden for us.

What we did extra was formatting our documentation structures with the globally recognized methods. 

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


We always shared the reading and study materials among the group members as well as other colleagues. Others also tried to do that. We read the documentation and reviews of others and tried to show the negative approaches. 


The important fact is each and every one practice this by knowing the benefits of the usage. It makes us stay stable in the code without hesitation.

8.08. Not influence others to undertake any action that involves a breach of this Code.


We kept ourselves in the code with our own knowledge. No one needed the easy way out off the code at any moment. Everything were as same as to the initial plan.


The key to maintain a good code is the trust on the benefits that we can achieve. Nothing will accepted globally without proper justification by the professionals. Because why do not we go out?

Saturday, June 27, 2015

Principle 7: COLLEAGUES

7.01. Encourage colleagues to adhere to this Code.


Each project team members have practiced the best code of ethics on the area of expert. After we were decided to follow Software Engineering Code of Ethics and Professional Practice, all of us prepared for that.

We were always trying to make our-self tight into the code by mutual monitoring of our work. There were no space to miss anything because all the members has the sufficient knowledge of the code.

7.02. Assist colleagues in professional development.


We are on a stage of developing our-self by gaining experiences. My team mates always helped me to find study materials and best practices for our work. 

I could assist others to have better analyzing process with my knowledge. It was a good combination of business analysis, architecture design and implementation at the best level.

7.03. Credit fully the work of others and refrain from taking undue credit.


Each task has done by individual member most of the time. We have mentioned the author or composer credits alone each module and task.

As there are no meaning of gaining financial benefits, we believe there will not be any conflicts with rights.

7.04. Review the work of others in an objective, candid, and properly-documented way.

We reviewed our tasks by our-self by exchanging our progress in each step. It was easy to analyze work of a member because we had that knowledge of the domain.

Even the course inspire us to do reviews as possible to minimize the mistakes from peeping out in the future.

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


Every success depend on the support and the contribution of each member. Our intention was to complete the project as good as possible. We had those meetings to plan our works at the start. Always we practiced to give a fair focus on each member to express their ideas.

All the works were done by us three. It was the main motivation to discuss our progress with the team to get opinions. There were no any other outside person to get opinions except our supervisor.

7.08. In situations outside of their own areas of competence, call upon the opinions of other professionals who have competence in that area.


This is always happening for us. Every time we start to go through a new task we got confused with the lack of knowledge of the specific area. What we could do is get opinions from the best known personals of the domain. 

It was easy to find such people from our community and they are always seek people to help out with their specialty area.

Principle 6: PROFESSION

6.01. Help develop an organizational environment favorable to acting ethically.

Actually, we have been formatted to work ethically all along by the environment where we behave. All those benefits from a ethical environment have been seen in various occasions. 

Only incident of happening something out of the code is finding an easy way out. But we knew those detours can be ended with a dead end.

6.03. Extend software engineering knowledge by appropriate participation in professional organizations, meetings and publications.

That is how we learn. There are such a good communities around the atmosphere. We are general participants of meet ups and conferences which are related to the industry.

IEEE, Microsoft and Google hosts regular events that could possibly reach as students. Every time we learn things inspire us to participate more.

6.05. Not promote their own interest at the expense of the profession, client or employer.

We may use to follow our own process to do specific things. But, we cannot make them dominate in the project because we work as a team. 

All the parties have that mutual respect to make our weaknesses minimum by doing the best thing apart from what we are used to do.

6.10. Avoid associations with businesses and organizations which are in conflict with this code.

There were some technologies and frameworks which might be much easier than what we have already used. But there were certain reasons for avoiding those. 

Some alternative technologies did not support standards we needed and some frameworks conflicts with modern code patterns. They are avoided without any hesitation to keep the work in the way that we expected.

Principle 5: MANAGEMENT

5.01 Ensure good management for any project on which they work, including effective procedures for promotion of quality and reduction of risk.

Following facts can be pointed out from the management perspective.

  • Maintaining the proper processes for the project tasks.
  • Allocate specific resources for their specialized domain.
  • Following best practices throughout the project.
  • Documenting to the depth as possible.
  • Conduct unit testing before a committing to the repository.
  • Testing under practical conditions.

5.02. Ensure that software engineers are informed of standards before being held to them.


We are agreed to follow certain standards regarding the technologies to be used from the beginning.

Successful PhoneGap conversion required specific coding patterns to be followed. We could easily learn them from the community. We tried to use the latest HTML5 components which can be replaced old ones. New features of CSS3 were really helpful to avoid scripts for certain UI modules.

All the application designs are done by following the modern mobile healthy patterns which could make the process efficient as well as extensible.

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.


Since there are no any user authentication or session authentication, that burden is not upon so far. Android application may use credentials with the device which is managed by the android system itself.

All the other information are guaranteed to be okay to disclose with the full awareness of the whole scenario. 

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.


There are few resources in the project team and it inspire us to manage resources in a proper way. We knew from the star that we have all the technologies in the team but there were some specialties in us.

That led to divide tasks in the way of getting more effective outcome in a short time.

5.11. Not ask a software engineer to do anything inconsistent with this Code.


Developer have practiced the best ways to do their job by experience. It may cause conflicts with the other members when they are up to address the solutions in a business perspective. 


In those cases, developers are invited to use the best recognized practices for coding without any hesitation. Business process diversion can be done when the code works with its best performance.

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


Each and every member has their own perspective of looking into a problem. In that case we mentioned some sensitive issues that should solved as ethical issues.

Those are not sounded in a technical matter, but we serve them as important and every time someone emphasis something like that others are about to give the respect.

Principle 4: JUDGMENT

4.04. Not engage in deceptive financial practices such as bribery, double billing, or other improper financial practices.


The application is free to download and use for all parties. There are no anyway of financial contact with any party so far. 

We are not allowed advertisements to be displayed on the application. Any extension or a new functionality will be added by the team for free after a formal analyze.

4.06. Refuse to participate, as members or advisors, in a private, governmental or professional body concerned with software related issues, in which they, their employers or their clients have undisclosed potential conflicts of interest.

We have contact certain parties who represents the targeted areas. They are possibly have a good knowledge of the project.

As there are nothing to protect from any party, we believe that those personals will not be affected in a negative way.

Principle 3: PRODUCT

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.
We have used globally recognized to be the best technologies in the stack which have positive communities to get support. Best practices are documented under those technologies with the recommendations from the genius personalities around the world. We are always inspired to follow those best practices and that made the work to have the best quality.

3.02. Ensure proper and achievable goals and objectives for any project on which they work or propose.
This project is started with the real world problem that can be supported by the technical implementation. The primary goal is to make a steady connection between the farmers and the buyers. 

Under the primary goals, there are certain objectives to succeed the project tasks. Primary goals and the objectives are properly defined at the start of the project. All the tasks are directed to achieve those objectives.

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

Apart from the technical implementation, whole process depends on the humane facts. Farmers are concern to be important group for the country and we are not having any plans to get advantages from them.

Total business process is explained to the people who are engaged in. We found that the middlemen play a vital role at the moment. They can be affected from the solution. May be they will try to influence the process.

3.04. 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.

Project team members are specialized in various areas as we have followed such courses in the university. All the members have sufficient experiences from the previous projects. 

We always look into new readings and publications to grab the knowledge that we do not have. We are becoming more equipped with technologies as well as expertise with the experiences. 

3.05. Ensure an appropriate method is used for any project on which they work or propose to work.
We were always asked to use proper development processes by the mentors and the lecturers. We have learned as well as practiced some of them for our previous projects. 

Proper documentation, modern system architectures and agile development process can be emphasis throughout the project.

3.07. Strive to fully understand the specifications for software on which they work.
There was a long definition period prior to the designing phase because we have experienced that the proper definition will save time for the implementation and testing. Specific area was researched and analyzed to recognize the practical issues.

Structured definition helped to keep the design stable to our concern. Each and every requirement have converted to a functionality. Implementation was pretty clear in every way with these definition.

3.10. Ensure adequate testing, debugging, and review of software and related documents on which they work.
The application is for general public use and the users may have different levels of using android applications. This fact lead us to look into the usability of the application to a higher degree.

We tried to test the application in practical conditions with different knowledge levels and various devices. There were a lot of issues which can be disclosed in the real world usage.

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.

Project team members are currently following BSc in Information Systems in University of Colombo School of Computing. What we study and what we do is analyzing, designing and software engineering towards the software requirements of public need.

We are well aware of our level of expertise in the area and try to gradually improve to be professional.

2.02. Not knowingly use software that is obtained or retained either illegally or unethically.

All the technologies, languages, frameworks and the tools used for the project are either free to use or free and open source.

We worked in license version of windows professional operating system and latest version Ubuntu operating system.

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.

We have used the information of farmers and local sellers who are willing to sell their products on the field. All of them are full aware of the application and the benefits they could get.

On the other hand we have allowed and used certain resources of the University of Colombo School of Computing for our projects.

2.04. Ensure that any document upon which they rely has been approved, when required, by someone authorized to approve it.

The most sensitive information of the scenario are the contact details of the farmers or the sellers. The real world usage of the application depend on the ability of contacting the farmers as soon as possible.

Those contact details were provided by themselves by understanding the benefits of the applications. These information are approved by them to be correct and positively allowed to be published in the application.

Principle 1: PUBLIC

1.01. Accept full responsibility for their own work.


From the start of the project we, the project team has conducted all the prior research, analyze, definition and designing tasks. All of the members has the full awareness of the whole project. Individual members have the sufficient expertise knowledge on their areas of work.

All the functionalities are optimized in order to have maximum usability and formally tested under general conditions and the defects are permanently fixed. 

With all that knowledge and the understanding we are totally responsible for any malfunction of the application which are not caused of the issue of the device, android system or mobile network or invalid inputs by the user.
Although the project team is expertise in various technologies by the experience, we decided to use special technologies to achieve the quality that we were concerned.

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



HTML5, CSS3 and JavaScript are used to develop the web components to make the implementation into the standards. Apart from that PhoneGap and jQuery Mobile are used to extend the web components into the mobile devices.

Version controlling is well managed with GitHub repository and that made the development much extensible. We managed to fix the bugs with manual testing.

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.



As mentioned above, the particular software and the technologies are guaranteed to be stable in the scenario that we used them for. HTML5, CSS3, JavaScript, jQuery Mobile, GitHub and Selenium have stable versions which are accepted and used by world's leading companies. 

We believe that. PhoneGap has done a good job to convert the application into Android Platform with the minimum issues which were positively manageable.

1.04. Disclose to appropriate persons or authorities any actual or potential danger to the user, the public, or the environment, that they reasonably believe to be associated with software or related documents.


The application is dealing with the information of sellers and farmers in the target area. They are accepted to publish those information by knowing and understanding the advantages that they could get. 

Any application or a database update is done only by the developers and the databases are sufficiently safe.


1.05. Cooperate in efforts to address matters of grave public concern caused by software, its installation, maintenance, support or documentation.


The application concern about the matter of fact that any public citizen can face with. When it comes to the farmer to household buyer, it is a win-win situation for both parties without a doubt. 


We, the project team does not have any direct advantage than experience and the satisfaction from the project. 


1.07. Consider issues of physical disabilities, allocation of resources, economic disadvantage and other factors that can diminish access to the benefits of software.



The application does not contain any special feature to support users with physical disabilities. Users are required to have a sufficient vision as well as they could handle a android device with all the finger functionalities.

Android Smart Phone is required to install the application. Icecream Sandwitch operating system is recommended.

Smart Finder

Finds you the most fresh & pure products on the field itself.

In brief, Smart Finder is an android application which will find you the sellers or the farmers who would like to sell their fresh fruits and vegetables on the fields itself. 

Most of us into buying some fruits or vegetables from a local seller or a farmer when we are out to visit the highlands like Nuwara Eliya. Because we have this belief that the crops from the field could be healthier and fresher than what we could buy from the supermarket. Well, Smart Finder will find you the places where you can find such products.

You will not have to seeking around, just pull out your Android Smart Phone and it will show where to go with few fingertips. Just simple as that. 

You can see the sources here in Github Repository.

Introduction to Smart Finder Code of Conduct

This blog contains the the problems and the other professional issues that we faced while implementing the Smart Finder. The motivation of implementing Smart Finder is an assignment for the subject "SCS3115 – Professional Practice" and we were asked to address common social problems and find solutions via software product.

We were guided by our lecturer Dr. Rasika Dayarathne and under his guidance and support we could implement and deliver Smart Finder. 


It is three member group project and information of the group members are mentioned below.



  • G.S.V.M. Ishan | 12000604 | 2012CS060
  • D.T.S.P. Madola | 12000833 | 2012CS083
  • W.T.R. Epa | 12020188 | 2012IS018

We have followed Software Engineering Code of Ethics and Professional Practice (Version 5.2) by ACM (Association for Computing Machinery).


Reference: