Software Developer
An
individual who by profession (or avocation) constructs software
artifacts (source lines of codes, documents, test cases, and models of
various kinds) toward the realization of an embodiment of context,
needs, constraints, characteristics and qualifiers – referred to as the
Software Requirements.
Software Engineer
An
individual software developer who by profession executes, leads,
manages, and administers in part or in whole the construction of
software artifacts, the acquisition of software requirements, the
planning of software efforts, the assessment of software talents and
skill sets (theirs, their peers and their subordinates); And is
accountable for the measure of the quality of the resulting work
products and the decision paths by which they have been obtained.
Software Architect
An
individual software engineer who by profession develops a body of
knowledge with respect to a set (or sets) of software requirements that
elaborates on the implications of possible choices in the planning,
designing and construction of the software artifacts that will realize
the satisfaction of that set (or sets) of software requirements.
The
ability to optimize across a set of implications is essential to all
architectural efforts; the ability to distill out essentials from a
requirements set and identify the implications of specific yet
orthogonal such distillations is an imperative for the success of all
architectural efforts; and the ability to maximize the effectiveness of
any software effort while minimizing any commitments regarding the
resulting software artifacts is the true art of the architect (The
master of patterns).
|