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.