You are on page 1of 2

Agile software development

Agile software development is a modern and iterative approach to software development that
prioritizes flexibility, collaboration, customer involvement, and incremental delivery of
working software. Agile methodologies, such as Scrum, Kanban, and Agile/Lean, are widely
used in software development projects to respond to changing requirements, improve team
productivity, and deliver high-quality software.

Key practices in agile software development include:

 Iterative development: Agile teams work in short, time-boxed iterations or sprints,


typically lasting one to four weeks, and deliver working software at the end of each
iteration.

 Cross-functional teams: Agile teams are typically composed of members with diverse
skills, such as developers, testers, designers, and business representatives, who work
collaboratively to deliver software.

 Continuous integration and testing: Agile teams continuously integrate code changes
and conduct automated testing to ensure that the software is always in a releasable
state and of high quality.

 Product backlog and prioritization: Agile teams maintain a prioritized list of


requirements or features, known as a product backlog, and work on the most valuable
items first, based on customer feedback and priorities.

 Daily stand-up meetings: Agile teams typically hold short, daily stand-up meetings to
synchronize work, identify and address obstacles, and plan the day's work.

 Retrospectives: Agile teams conduct regular retrospectives to reflect on the team's


performance, identify areas for improvement, and implement changes to optimize the
development process.

 Visual management: Agile teams often use visual management techniques, such as
Kanban boards or task boards, to provide transparency and visibility into the status of
work items and progress.

Requirement engineering

It’s the process of eliciting, documenting, validating, and managing the needs, expectations,
and constraints of stakeholders for a software system or solution. It involves understanding
and defining the desired functionalities, performance, and characteristics of the system to be
developed or enhanced. Requirement engineering is a critical phase in the software
development lifecycle, as it lays the foundation for the successful development of a software
system that meets the needs of its intended users. The process includes activities such as
stakeholder identification, requirements gathering, documentation, prioritization, validation,
and management to ensure that the software system is built to satisfy the identified
requirements and deliver value to stakeholders.
Software engineering ethics

 Software engineering involves wider responsibilities than simply the application of


technical skills.
 Software engineers must behave in an honest and ethically responsible way if they are to
be respected as professionals.
 Ethical behaviour is more than simply upholding the law but involves following a set of
principles that are morally correct.

Issues of professional responsibility

 Confidentiality - Engineers should normally respect the confidentiality of their employers


or clients irrespective of whether or not a formal confidentiality agreement has been signed.

 Competence - Engineers should not misrepresent their level of competence. They should
not knowingly accept work which is outwith their competence.

 Intellectual property rights - Engineers should be aware of local laws governing the use of
intellectual property such as patents, copyright, etc. They should be careful to ensure that the
intellectual property of employers and clients is protected.

 Computer misuse - Software engineers should not use their technical skills to misuse other
people’s computers. Computer misuse ranges from relatively trivial (game playing on an
employer’s machine, say) to extremely serious (dissemination of viruses).

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

You might also like