Tom Gilb and Kai Gilb's blog
On Teaching Fundamentals for Software Engineering - and maybe even Programming?
A public email, in reference to some idealistic efforts to improve our trade, whatever it is.
Papers by Ivar Jacobsen, and Scott Ambler in DDJ.
http://www.ddj.com/architect/220300245
http://www.ddj.com/architect/220300840
Hi Guys
I looked for some comment place for the articles in Dobbs, but found none.
Here are some very concrete suggestions:
I'd be happy to publish this and these remarks in DDJ or elsewhere.
Paper: Undergraduate Basics for Systems Engineering (SE),
using The Principles, Measures, Concepts and Processes of Planguage.
http://www.gilb.com/tiki-download_file.php?fileId=98
The basics are the same for software engineering.
Scott and Ivar (good and deep people both!)
I agree with both your points, up to a point.
We have no decent foundations. We don't even have a culture that seems to care about it. Agreed.
One major difference, is that I read you guys as being 'mere programmers', in culture, and certainly not software engineers. And I do not think you agree or realize it! You are like most of your community.
'Code is it', not 'results for stakeholders', and certainly not anything real engineers would recognize as engineering!
We have misused the term 'software engineering' so long (we used to call it programming) that we seem to believe that programing is software engineering. In my 1988 Principles of Software Engineering Management (now in 20th printing, what does that mean?) I coined the term 'Softcrafters' for you lot.
Nothing wrong with being a good craftsperson! But when Carpenters start calling themselves engineers and architects, most of the world smiles at their ignorant and childish self-aggrandizement. Or do we agree with the US term 'Sanitation Engineers' (Garbage Collectors).
So the first thing you need to take a position on is your domain. Programming, or Engineering!
Even if we had two parallel and related efforts:
1. Master Softcrafter
2. Software Engineer
The bigger problem, I fear, is no one cares enough to change.
Why should we, we have great success at ripping off the world. Why change?
I am already working on the Software and Systems Engineering problem (since 1976 and before, 'Software metrics'), with whoever cares. You are not working on that domain as far as I can see?
I hope you will decide to develop the theory of programming! But be clear about it and don't mess with 'engineering'.
Yesterday (Oct 2 - 09), I made a collection of my (and others) principles - from my Competitive Engineering book, available.
Maybe some of them apply to programming?
http://www.gilb.com/tiki-download_file.php?fileId=352
The principles collection might have something of value to the softcrafters: Here is one I picked because it touches the essential difference between coding today (does not care much about quality or cost, is very centered on function
).
2. The Principle of ‘Thing with Attributes’
A function is the thing, which has the performance and resource attributes attached to it.
Here is another depth sample, regarding quantification of qualities: Chapter 5 of my CE book:
Chapter 5: Scales of Measure:
http://www.gilb.com/community/tiki-download_file.php?fileId=26
In your discussions in DDJ neither of you even mention such concepts as measurable qualities -?
Real engineers woud think that is pretty fundamental!
I think I will make this email a blog on my website, and twitter it. But the full paper (Undergraduate...above URL) is hereby offered to DDJ first!
Best wishes for a more-organized discipline - may our great grandchildren experience it!
I have long ago decided that all I can do is sow the seeds of an oak tree, and hope they are healthy -
Tom
Papers by Ivar Jacobsen, and Scott Ambler in DDJ.
http://www.ddj.com/architect/220300245
http://www.ddj.com/architect/220300840
Hi Guys
I looked for some comment place for the articles in Dobbs, but found none.
Here are some very concrete suggestions:
I'd be happy to publish this and these remarks in DDJ or elsewhere.
Paper: Undergraduate Basics for Systems Engineering (SE),
using The Principles, Measures, Concepts and Processes of Planguage.
http://www.gilb.com/tiki-download_file.php?fileId=98
The basics are the same for software engineering.
Scott and Ivar (good and deep people both!)
I agree with both your points, up to a point.
We have no decent foundations. We don't even have a culture that seems to care about it. Agreed.
One major difference, is that I read you guys as being 'mere programmers', in culture, and certainly not software engineers. And I do not think you agree or realize it! You are like most of your community.
'Code is it', not 'results for stakeholders', and certainly not anything real engineers would recognize as engineering!
We have misused the term 'software engineering' so long (we used to call it programming) that we seem to believe that programing is software engineering. In my 1988 Principles of Software Engineering Management (now in 20th printing, what does that mean?) I coined the term 'Softcrafters' for you lot.
Nothing wrong with being a good craftsperson! But when Carpenters start calling themselves engineers and architects, most of the world smiles at their ignorant and childish self-aggrandizement. Or do we agree with the US term 'Sanitation Engineers' (Garbage Collectors).
So the first thing you need to take a position on is your domain. Programming, or Engineering!
Even if we had two parallel and related efforts:
1. Master Softcrafter
2. Software Engineer
The bigger problem, I fear, is no one cares enough to change.
Why should we, we have great success at ripping off the world. Why change?
I am already working on the Software and Systems Engineering problem (since 1976 and before, 'Software metrics'), with whoever cares. You are not working on that domain as far as I can see?
I hope you will decide to develop the theory of programming! But be clear about it and don't mess with 'engineering'.
Yesterday (Oct 2 - 09), I made a collection of my (and others) principles - from my Competitive Engineering book, available.
Maybe some of them apply to programming?
http://www.gilb.com/tiki-download_file.php?fileId=352
The principles collection might have something of value to the softcrafters: Here is one I picked because it touches the essential difference between coding today (does not care much about quality or cost, is very centered on function
2. The Principle of ‘Thing with Attributes’
A function is the thing, which has the performance and resource attributes attached to it.
Here is another depth sample, regarding quantification of qualities: Chapter 5 of my CE book:
Chapter 5: Scales of Measure:
http://www.gilb.com/community/tiki-download_file.php?fileId=26
In your discussions in DDJ neither of you even mention such concepts as measurable qualities -?
Real engineers woud think that is pretty fundamental!
I think I will make this email a blog on my website, and twitter it. But the full paper (Undergraduate...above URL) is hereby offered to DDJ first!
Best wishes for a more-organized discipline - may our great grandchildren experience it!
I have long ago decided that all I can do is sow the seeds of an oak tree, and hope they are healthy -
Tom
