Unfortunately, this entire concept is flawed by its very first point:<p><i>1.01. Accept full responsibility for their own work.</i><p>To be a fair principle, this requires a series of other things to happen, ultimately depending on something we don't know how to do yet.<p>Firstly, in exchange for accepting that responsibility, software engineers need the same right as any real engineer to veto the deployment of a project for which they responsible until, in their professional opinion, the work has been done to a satisfactory standard.<p>In order to protect engineers who do exercise their professional judgement in that way, possibly against the immediate interests of their employer/client, it must be impossible to replace them with someone else who doesn't have the same right or to just fire them and carry on without anyone else taking their place. This requires a mechanism for recognising sufficiently capable people who are qualified to take on such jobs, akin to other chartered professions.<p>In order to establish a recognition programme of practical value, this requires that some impartial body exist that can evaluate individuals to determine whether they are sufficiently capable to merit recognition. This evaluation must necessarily be based on objective criteria to guarantee the impartiality.<p>And in order to do that, we need to have objective criteria to identify "good" software developers and appropriate professional practices in the first place, which we don't. And that's why software development isn't ready to be a real engineering profession yet.