In the 21st century, the software engineering may face key challenges. Those are
1. The legacy challenge:
The legacy challenge is the challenge of maintaining and updating this software in such a way that excessive costs are avoided and essential business services continue to be delivered. 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.
Engineers should not misrepresent their level of competence. They should not knowingly accept work which is outwitting their competence.
3. The delivery challenge:
The delivery challenge is the challenge of shortening delivery times for large and complex systems without compromising system quality. Here supporting software must change equally rapidly. Engineers should normally respect the confidentiality of their employers or clients irrespective of whether or not a formal confidentiality agreement has been signed.