Thursday, April 08, 2004

The wonders of Software Engineering is akin to alchemy and artistry - at least for the few professionals who don't try to become professional software engineers instead of software professionals. Alchemy is a profession with hidden secret formulas while artistry requires an artist. If you're not an artist, don't try. If you don't have the formulae or cannot figure it out, you're in the dark.

Some useful resources for prospective professional software engineer/developer.

1. Know your fundermentals
OO Tips - Developer Strategy, Patterns, Methodologies and Technical topics

2. Understand your professional environment and and what it means to practice your profession effectively
Fundermental Rules (and Principals) of Software Engineering

3. Communicate effectively
UML 2.0 samples with decent explanations

4. Know where your profession communicates thoughts and ideas
C2 Wiki - Portland Pattern Repository

5. Know your tools and your development language

6. Know where fellow professionals communicate implementation questions
SUN Java Developer Forums
Java Developer USENET
C# Developer USENET

7. Be Professional

Personal notes:

Beware of 'Death by UML'. UML is a means to communicate not a means to an implementation.

The primadona may think he's good but a good team of average but competent developers will acomplish alot more than the primadona who can acomplish complex tasks. Teamwork is crucial. The primadona should still be paid appropriately as he'd typically provide good advice and technical support to the other developers. This alternative is the primadona who upsets and distrupts the workplace either through the taking of liberties, because he can, or through the ignorance of others business needs.


After living with a couple of accountants this year I can say that Software Engineering should not be a university degree as per BscEng but rather a professional association. Certification should follow that of the typical Chartered Accountant. For 3 years after leaving university with a 3 year degree Bsc (hons) or Bsc in Infomatics (something appropriate) the prospective developer should work professionally at a similar level to articles (but earn a bit more due to technical differences).

The prospective developer should then,
1. obtain certification in at least one area of practice such as J2ee certification or MCSD
2. pass an examination on at least the 7 points above
3. pass a examination set by universities based on the currently identified field of software engineering
4. complete 3 years of business practice

The content of the exams (2 and 3) should directly relate to the profesionalism, design, planning, communication and conceptual ability of the prospective developer. Technical proficiency should be certified through (1). (4) provides a baseline in what is expected from businesses. I've definately found that what you study at university through a Bsc (hons) while technically challenging is different to your competance as a professional developer. Only after 3 years could I say I am competant enough as a business professional.

Thinking along the lines of what it takes to become a Chartered Accountant should be the similar path to becoming a software engineer. After this point in time I believe a developer would have enough of a technical and professional basis for a further masters in software engineering specialising in say development of software for nuclear technology, safety devices, etc. Before that point I believe a Bsc masters would be of theoretical relivance.


No comments: