On computer architecture flags have always played a substantial role, as well in certain application development. Since most data and business architecture was done on a batch principle mainly driven by the limitation in technology, flag also got used in a lot of solution architecture. The problem in all areas is that despite of new technology that removes the need for batch driven architecture, all the associated designs are often still in place. Another example we see are all the designs that are in place for awful latency issues or the sub architectures where a certain host is only available once a day for 10 minutes.
So often we find flags used in various applications and even worse in messaging. So instead of creating a common type with the possibility of an extension such as part ID, Party Type, Party Name, Parent Party ID, etc. individual flags with or without strings are created. This creates over time into a horrible mess especially if the organisation is merged or interfaces at lot. Also in reporting this kind of individual value creates are large problem.
Seeing flags in architecture I usually start investigating if the organisation uses any abstraction in their architecture. More often than I expect abstraction is not happening as the applications are designed on what the BA felt best at the time. Usually this however is the reason for high BAU (Business as Usual) application costs and one of the classic areas where a proper transactional data model can help to reduce costs.