Is there a term for all tasks around programming?

D

DeMarcus

Hi,

We all do software development. Some even do software architecture. But
is there a common name for all the things around software development?

With things around software development I mean for instance:

* Version controlling, e.g. cvs, svn, git, etc.
* Documentation, e.g. Doxygen, etc.
* Bug- and issue tracking, e.g. Bugzilla, Jira, etc.
* Unit testing, e.g. TDD, etc.
* Build systems, e.g. TeamCity, etc.


Is there a common name for all that kind of work above? I couldn't find
any on the net so I just invented two alternatives to start with:

Development Groundwork
or
Development Support


Or is there already a common name?

Thanks,
Daniel
 
F

Fulvio Esposito

Hi,

We all do software development. Some even do software architecture. But
is there a common name for all the things around software development?

With things around software development I mean for instance:

* Version controlling, e.g. cvs, svn, git, etc.
* Documentation, e.g. Doxygen, etc.
* Bug- and issue tracking, e.g. Bugzilla, Jira, etc.
* Unit testing, e.g. TDD, etc.
* Build systems, e.g. TeamCity, etc.


Is there a common name for all that kind of work above? I couldn't find
any on the net so I just invented two alternatives to start with:

Development Groundwork
or
Development Support


Or is there already a common name?

Thanks,
Daniel

maybe toolchain?

Cheers,
Fulvio
 
I

Ian Collins

Hi,

We all do software development. Some even do software architecture. But
is there a common name for all the things around software development?

With things around software development I mean for instance:

* Version controlling, e.g. cvs, svn, git, etc.
* Documentation, e.g. Doxygen, etc.
* Bug- and issue tracking, e.g. Bugzilla, Jira, etc.
* Unit testing, e.g. TDD, etc.
* Build systems, e.g. TeamCity, etc.


Is there a common name for all that kind of work above?

Pain.

With the exception of Unit testing which is development.
 
J

Jorgen Grahn

Hi,

We all do software development. Some even do software architecture. But
is there a common name for all the things around software development?

Maybe ... software development?
With things around software development I mean for instance:

* Version controlling, e.g. cvs, svn, git, etc.
* Documentation, e.g. Doxygen, etc.
* Bug- and issue tracking, e.g. Bugzilla, Jira, etc.
* Unit testing, e.g. TDD, etc.
* Build systems, e.g. TeamCity, etc.


Is there a common name for all that kind of work above? I couldn't find
any on the net so I just invented two alternatives to start with:

Development Groundwork
or
Development Support

Oh, so you want a name for everything but the pure programming
(defined as the activity which starts with an idea and ends with an
untested, undocumented executable).

I think it's both pointless and harmful to try to split those. Don't
do it.

/Jorgen
 
J

Jorgen Grahn

Pain.

With the exception of Unit testing which is development.

When they are painful, it's partly because people like us don't
think they are important enough to do right, or they are "someone
else's" problem, or something ...

All the thing listed exist for one reason: so we can do our job.

/Jorgen
 
D

DeMarcus

Maybe ... software development?


Oh, so you want a name for everything but the pure programming
(defined as the activity which starts with an idea and ends with an
untested, undocumented executable).

I think it's both pointless and harmful to try to split those. Don't
do it.

We have the same opinion but let me explain. There are situations when
it's bad to put them together. It's when the manager says; focus on the
programming! (so documentation and unit tests are left out since the
manager thinks those are optional)

If they're split I believe we can track the quality of it better. Just
like we split software development and software architecture, I would
like to split development and work connected to development to be able
to give the work connected to development a name to be able to give it
better focus.


/Daniel
 
J

Jorgen Grahn

On 09/22/2011 01:17 PM, Jorgen Grahn wrote: ....

We have the same opinion but let me explain. There are situations when
it's bad to put them together. It's when the manager says; focus on the
programming! (so documentation and unit tests are left out since the
manager thinks those are optional)
Argh.

If they're split I believe we can track the quality of it better. Just
like we split software development and software architecture, I would
like to split development and work connected to development to be able
to give the work connected to development a name to be able to give it
better focus.

I think the manager might be happier if he gets to choose the name for
it. Then you write a fake magazine article about how great FOO is, let
a friend do a business magazine-style layout, and slip it between page
4 and 5 in one of the glossies your manager is reading ;-)

(Seriously, I have no good suggestions. Maybe something with
"maintainability" or "long-term survival" in the name.)

/Jorgen
 
N

none

Hi,

We all do software development. Some even do software architecture. But
is there a common name for all the things around software development?

With things around software development I mean for instance:

* Version controlling, e.g. cvs, svn, git, etc.
* Documentation, e.g. Doxygen, etc.
* Bug- and issue tracking, e.g. Bugzilla, Jira, etc.
* Unit testing, e.g. TDD, etc.
* Build systems, e.g. TeamCity, etc.


Is there a common name for all that kind of work above? I couldn't find
any on the net so I just invented two alternatives to start with:

Development Groundwork
or
Development Support


Or is there already a common name?

Not a single term for all of them.

I've seen Configuration Management used for Version Controlling and
sometimes build system.
http://en.wikipedia.org/wiki/Configuration_management#Software_configuration_management

Unit Testing should be an integral part of development.


Yannick
 
N

none

I think the manager might be happier if he gets to choose the name for
it. Then you write a fake magazine article about how great FOO is, let
a friend do a business magazine-style layout, and slip it between page
4 and 5 in one of the glossies your manager is reading ;-)

(Seriously, I have no good suggestions. Maybe something with
"maintainability" or "long-term survival" in the name.)

No documentation might only create problems in the long-term but no
unit tests...

Manager:
"Just focus on the code. just implement that feature as fast as
possible, we need it yesterday! Implement this calculator now!"


Dev:
"OK, if you insist."

int add(int a, int b)
{
return 7;
}
int mult(int a, int b)
{
return 12;
}

"Done! I've implemented both the add and mult function. I haven't
had time to fully test it 'though."

Manager:
"That's alright. Just send it to the test department."

....
 
D

DeMarcus

No documentation might only create problems in the long-term but no
unit tests...

Manager:
"Just focus on the code. just implement that feature as fast as
possible, we need it yesterday! Implement this calculator now!"


Dev:
"OK, if you insist."

int add(int a, int b)
{
return 7;
}
int mult(int a, int b)
{
return 12;
}

"Done! I've implemented both the add and mult function. I haven't
had time to fully test it 'though."

Manager:
"That's alright. Just send it to the test department."

...

I like your way of sliding in TDD without anyone noticing, however, when
it comes back from the test department, the time to fix it will be
logged as bugfix on the developer's account. No salary raise that year
either...
 
D

DeMarcus

Not a single term for all of them.

I've seen Configuration Management used for Version Controlling and
sometimes build system.
http://en.wikipedia.org/wiki/Configuration_management#Software_configuration_management

True, however, Configuration Management focus on a /part/ of, let's call
it Development Support. Also, Configuration Management usually only
involves a few people per team.
Unit Testing should be an integral part of development.

That's true, but as I mentioned in another post, if we don't separate
the things then these surrounding tasks (like TDD and documentation) are
easy seen as optional by many, and the lack of it may pass unseen until
it's too late. If we give it a name then we can just raise a hand and
ask the narrow-minded manager; shall we skip Development Support or
shall we continue using it? Then it becomes a bigger decision to take.

I'm just ventilating my ideas. Maybe this is not a real problem worth
chasing a naming convention for.

/Daniel
 
R

red floyd

Hi,

We all do software development. Some even do software architecture. But
is there a common name for all the things around software development?

With things around software development I mean for instance:

* Version controlling, e.g. cvs, svn, git, etc.
* Documentation, e.g. Doxygen, etc.
* Bug- and issue tracking, e.g. Bugzilla, Jira, etc.
* Unit testing, e.g. TDD, etc.
* Build systems, e.g. TeamCity, etc.


Is there a common name for all that kind of work above? I couldn't find
any on the net so I just invented two alternatives to start with:

Development Groundwork
or
Development Support


Or is there already a common name?

Software Engineering
 
B

BGB

Software Engineering

yes, although often Software Engineer is also used as a glorified term
for a Programmer (which doesn't necessarily imply doing things like
documentation or writing unit tests).


also fairly common is the "code and go" strategy, where one writes code,
basically verifies that it about works (via manual testing), and calls
it "good enough" until bugs or crashes start making an issue (then one
goes and debugs them).

if there are other people around, then usually they will be responsible
for doing this other stuff (the documentation person documents it, and
the tester tests it and reports bugs).

or, otherwise, it is a single-person project, where one has to
prioritize where they will invest their time, and where having good
documentation may be a much lower priority than "getting it done" or
"getting the next round of features added", ...

a Programmer may differ some from a Coder, where the former is
generally/often given the ability to think and write code independently
(they decide the best way to implement the requirements, ...), whereas a
Coder usually has all designs/specifications/... handed down "from
above", say: "here is a class diagram, list of functions and methods,
and behavioral descriptions. now go implement it." (in this case, the
Software Engineer is generally the person who writes up the stuff that
the coder goes and implements).

the differences can be subtle, and often the term "programmer" is used
in the same sense as "coder" above.


but, used in-sense, Software Engineer implies doing lots of design and
trying to make everything proper and similar (like, the whole "engineer"
part).


however, in my case, I mostly just claim to be a programmer.

although what I do does have some overlap with what would be considered
a software-engineers' area (being a lone developer, I deal with pretty
much everything), the primary goal remains that of getting things
implemented and working, ideally in a timely manner (and usually getting
things working "now" is a much higher priority than any future
maintainability).


or such...
 
K

Keith H Duggar

Hi,

We all do software development. Some even do software architecture. But
is there a common name for all the things around software development?

With things around software development I mean for instance:

* Version controlling, e.g. cvs, svn, git, etc.
* Documentation, e.g. Doxygen, etc.
* Bug- and issue tracking, e.g. Bugzilla, Jira, etc.
* Unit testing, e.g. TDD, etc.
* Build systems, e.g. TeamCity, etc.

Is there a common name for all that kind of work above? I couldn't find
any on the net so I just invented two alternatives to start with:

Development Groundwork
or
Development Support

Or is there already a common name?

Well:

"Software Engineering"

http://en.wikipedia.org/wiki/Software_engineering

is the complete set. And "engineering" at least connotes robust/
reliable/solid etc which requires those "surrounding", as you put it,
practices. At it's core engineering is about eliminating or greatly
reducing human error in the application of science to control.

KHD
 
I

Ian Collins

When they are painful, it's partly because people like us don't
think they are important enough to do right, or they are "someone
else's" problem, or something ...

Oh I do think they are important. In the last team I managed, my only
non-manger direct reports were the chaps who looked after the above
(less unit tests). "SCM Admins" we called them.
 
D

DeMarcus

yes, although often Software Engineer is also used as a glorified term
for a Programmer (which doesn't necessarily imply doing things like
documentation or writing unit tests).


also fairly common is the "code and go" strategy, where one writes code,
basically verifies that it about works (via manual testing), and calls
it "good enough" until bugs or crashes start making an issue (then one
goes and debugs them).

if there are other people around, then usually they will be responsible
for doing this other stuff (the documentation person documents it, and
the tester tests it and reports bugs).

or, otherwise, it is a single-person project, where one has to
prioritize where they will invest their time, and where having good
documentation may be a much lower priority than "getting it done" or
"getting the next round of features added", ...

a Programmer may differ some from a Coder, where the former is
generally/often given the ability to think and write code independently
(they decide the best way to implement the requirements, ...), whereas a
Coder usually has all designs/specifications/... handed down "from
above", say: "here is a class diagram, list of functions and methods,
and behavioral descriptions. now go implement it." (in this case, the
Software Engineer is generally the person who writes up the stuff that
the coder goes and implements).

the differences can be subtle, and often the term "programmer" is used
in the same sense as "coder" above.


but, used in-sense, Software Engineer implies doing lots of design and
trying to make everything proper and similar (like, the whole "engineer"
part).


however, in my case, I mostly just claim to be a programmer.

although what I do does have some overlap with what would be considered
a software-engineers' area (being a lone developer, I deal with pretty
much everything), the primary goal remains that of getting things
implemented and working, ideally in a timely manner (and usually getting
things working "now" is a much higher priority than any future
maintainability).


or such...

I like your definitions. How about this?

* Software Architect - Designs frameworks, communication and
dependencies in applications and between applications.

* Software Engineer - Designs specific modules in an application, often
specialized in some field like mathematics, protocols, or certain domain
specific knowledge.

* Coder - Implements specifications. Could be a person directly from school.


/ Daniel
 
R

Rui Maciel

Keith said:
Well:

"Software Engineering"

http://en.wikipedia.org/wiki/Software_engineering

is the complete set. And "engineering" at least connotes robust/
reliable/solid etc which requires those "surrounding", as you put it,
practices. At it's core engineering is about eliminating or greatly
reducing human error in the application of science to control.

The field of engineering involves a considerable expectation of a safe and
defect-free product, to the point where engineers, when recognized as such,
are held civil and criminally liable for any problem which may arise from
their work. This is the main reason why civilized societies put
restrictions on who can and cannot label themselves an engineer (i.e.,
engineering licenses), and consequently who can be employed to positions
which require the level of expertise and responsibility which is expected
from an engineer.

The practice of software development does not have such responsibility nor
is a software developer held liable for any defect in their work.
Therefore, no professional license is required by society to perform this
job. This means that software development, although a highly technical
field, is not engineering, and those who are employed to churn out code
aren't engineers. And this is a good thing.


Rui Maciel
 
R

Rui Maciel

red said:
Software Engineering

Among the tasks which were pointed out, I fail to find a single task which
can be labelled as engineering. This means that, although some software
developers might wish to be labelled as engineers, that doesn't mean it's
true.

This reminds me how the so called "railroad engineers" are often used as a
reference of a professional practice which abuses the term "engineer" as a
form of grandstanding, while avoiding other terms which are more appropriate
to the task they actually perform such as "train operator" or "train
driver". The thing is, even though the so called "railroad engineers" are
clearly not engineers, their job actually requires a level of
responsibility, and therefore civil and criminal liability, far greater than
that which is required for a typical software developer job. Therefore, if
it doesn't make sense to label a "train operator" as an engineer then why
would it make sense to try to label a software developer as one?


Rui Maciel
 
I

Ian Collins

The field of engineering involves a considerable expectation of a safe and
defect-free product, to the point where engineers, when recognized as such,
are held civil and criminally liable for any problem which may arise from
their work. This is the main reason why civilized societies put
restrictions on who can and cannot label themselves an engineer (i.e.,
engineering licenses), and consequently who can be employed to positions
which require the level of expertise and responsibility which is expected
from an engineer.

The practice of software development does not have such responsibility nor
is a software developer held liable for any defect in their work.
Therefore, no professional license is required by society to perform this
job. This means that software development, although a highly technical
field, is not engineering, and those who are employed to churn out code
aren't engineers. And this is a good thing.

So those of us with Electronic Engineering degrees (including members of
professional bodies) aren't engineers either?
 
R

Rui Maciel

Ian said:
So those of us with Electronic Engineering degrees (including members of
professional bodies) aren't engineers either?

It really depends on what you are doing. Not everything a
civil/structural/mechanical/aeronautical/etc engineer does is engineering.

Nevertheless, the level of restrictions and assurances that a society
requires in order to grant someone the ability to exercise the practice of
"engineering" (i.e., the license), along with the civil and criminal
responsibility it imposes on those who practice it, is a good litmus test to
see if a field is in fact engineering.


Rui Maciel
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,999
Messages
2,570,246
Members
46,843
Latest member
WizcraftEntertainmentAgen

Latest Threads

Top