By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,463 Members | 2,954 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,463 IT Pros & Developers. It's quick & easy.

Modern Development Methodology?

P: n/a
Could someone give me an example of a modern development methodology? Just
to see if I'm thinking along the right lines...

P.S. Sorry for the cross posting but I couldn't find a newsgroup for systems
analysis.
Nov 14 '05 #1
Share this Question
Share on Google+
22 Replies


P: n/a
Ally wrote:
Could someone give me an example of a modern development methodology? Just
to see if I'm thinking along the right lines...
Google "Test Driven Development".
P.S. Sorry for the cross posting but I couldn't find a newsgroup for systems analysis.


news:comp.software-eng

Briefly put, write a test for everything, at every scale, and run all tests
after the fewest possible edits. That technique rapidly creates rock-solid
code that resists the kinds of bugs that require long arduous bug hunts.
When code is easy and safe to change, you can split requirements into small
features, implement these in order of business value, and release weekly.
That strategy captures every aspect of development as a kind of test, with
results that provide visibility for steering. Each week, you test that your
project is more useful.

--
Phlip
http://www.c2.com/cgi/wiki?ZeekLand


Nov 14 '05 #2

P: n/a
On Sun, 24 Apr 2005 17:24:21 +0100, Ally <al**@hotmail.com> wrote:
Could someone give me an example of a modern development methodology?
Just
to see if I'm thinking along the right lines...

P.S. Sorry for the cross posting but I couldn't find a newsgroup for
systems
analysis.


Agile methodologies such as eXtreme Programming
(http://www.extremeprogramming.org/) are 'modern' and quite popular these
days. But there isn't a one-size-fits-all methodology that is appropriate
to all development. What are you building?

This (http://www.fastcompany.com/online/06/writestuff.html) is an
interesting article about a methodology for software development that
gives a completely different perspective and makes an interesting point
about bugs in the software vs. bugs in the process.

Dan.
--
Daniel Dyer
http://www.footballpredictions.net
Nov 14 '05 #3

P: n/a
Daniel Dyer wrote;
Agile methodologies such as eXtreme Programming
(http://www.extremeprogramming.org/) are 'modern' and quite popular these
days. But there isn't a one-size-fits-all methodology that is appropriate
to all development.


Sometimes there is. (The standard example is "wash your hands _before_
performing surgery.")

If we dismiss "extreme" as an appeal to developers' sense of mishchief, and
"Agile" as marketecture, we are left with "Test".

Thou shalt automate thy tests.

--
Phlip
http://www.c2.com/cgi/wiki?ZeekLand
Nov 14 '05 #4

P: n/a
Daniel Dyer wrote:
On Sun, 24 Apr 2005 17:24:21 +0100, Ally <al**@hotmail.com> wrote:
Could someone give me an example of a modern development methodology?
Just
to see if I'm thinking along the right lines...

P.S. Sorry for the cross posting but I couldn't find a newsgroup for
systems
analysis.

Agile methodologies such as eXtreme Programming
(http://www.extremeprogramming.org/) are 'modern' and quite popular
these days. But there isn't a one-size-fits-all methodology that is
appropriate to all development. What are you building?

This (http://www.fastcompany.com/online/06/writestuff.html) is an
interesting article about a methodology for software development that
gives a completely different perspective and makes an interesting point
about bugs in the software vs. bugs in the process.

Dan.


Dan, this looks to be good stuff. There is definately a relationship
between the software development process and bugs in the system. I
remember my first big project was as a junior programmer. The senior
programmer and architech really new his stuff. It was a lot of work buf
fun. The next big project I was working for a couple of guys who could
not program or design their way out of a paper bag. This was a lot of
work and miserable. Daily I found big flaws in their design. They
would say "good catch" then leave it up to me to find some way to fix
it. Basically, I got paid a lesser salary to find their mistakes and
fix them. In these latter days of my career I see the problems coming
down the road, but I am too tired of being beat up for trying to make
everyone aware. Now I quietly program solutions and when reality
strikes I pull my solution like a rabbit out of a hat.

Regards,
Stan Milam.
Nov 14 '05 #5

P: n/a
We use PSP (Personal Software Process). It's the most difficult process
but it really works.

Nov 14 '05 #6

P: n/a
On Sun, 24 Apr 2005 18:05:06 +0100, Phlip <ph*******@yahoo.com> wrote:
Daniel Dyer wrote;
Agile methodologies such as eXtreme Programming
(http://www.extremeprogramming.org/) are 'modern' and quite popular
these
days. But there isn't a one-size-fits-all methodology that is
appropriate
to all development.


Sometimes there is. (The standard example is "wash your hands _before_
performing surgery.")

If we dismiss "extreme" as an appeal to developers' sense of mishchief,
and
"Agile" as marketecture, we are left with "Test".

Thou shalt automate thy tests.


I'm not going to disagree about testing, but I would argue that that is
only one aspect of a methodology and stand by my point about no one
methodology being appropriate for all software. For example there is
unlikely to be a methodology that is equally suited to developing
MP3-playing sofware and space shuttle software. A bug in your MP3 player
might affect the sound quality or cause it to crash occasionally. A bug
in the shuttle software could cause several people to die in a very
expensive explosion. For the MP3 player you might sacrifice a bit of
quality in favour of ease of development and keeping costs low. For the
shuttle, expense is secondary to quality.
Dan.
--
Daniel Dyer
http://www.footballpredictions.net
Nov 14 '05 #7

P: n/a

"Phlip" <ph*******@yahoo.com> wrote in message
news:8X************@newssvr31.news.prodigy.com...
Ally wrote:
Could someone give me an example of a modern development methodology? Just to see if I'm thinking along the right lines...
Google "Test Driven Development".
P.S. Sorry for the cross posting but I couldn't find a newsgroup for

systems
analysis.


news:comp.software-eng

Briefly put, write a test for everything, at every scale, and run all

tests after the fewest possible edits. That technique rapidly creates rock-solid
code that resists the kinds of bugs that require long arduous bug hunts.
When code is easy and safe to change, you can split requirements into small features, implement these in order of business value, and release weekly.
That strategy captures every aspect of development as a kind of test, with
results that provide visibility for steering. Each week, you test that your project is more useful.

--
Phlip
http://www.c2.com/cgi/wiki?ZeekLand

Where is the part where you find out what the program is supposed to do?
Nov 14 '05 #8

P: n/a
Betty wrote:
Where is the part where you find out what the program is supposed to do?
You review the features, as they grow, with Someone who has the full-time
job of researching what the program is supposed to do.

If you can't get that Someone, then, gosh, you might not have the charter
for a healthy project.

If that Someone tells you a feature is now finished, you don't argue.

And you never do too much before reviewing the feature, so you never need to
backtrack too far.

That Someone will request features in order of business value, so you can
deploy a release to real users as early as possible. This also helps prevent
rework.

Daniel Dyer wrote:
This (http://www.fastcompany.com/online/06/writestuff.html) is an
interesting article about a methodology for software development that
gives a completely different perspective and makes an interesting point
about bugs in the software vs. bugs in the process.


Then the article ends with this:

"The most important things the shuttle group does -- carefully planning the
software in advance, writing no code until the design is complete, making no
changes without supporting blueprints, keeping a completely accurate record
of the code -- are not expensive. The process isn't even rocket science. Its
standard practice in almost every engineering discipline except software
engineering."

Those things are important for all software development, but the author
misses some major points. Aerospace software has a long legacy of
incremental development. No such software has _ever_ been _completely_
planned in advance. The developers write lots of code _before_ carefully
planning the next design change.

Such development invests in infrastructure that makes the software as safe
as possible to change.

What's totally remarkable is these techniques (specifically, the test-first,
pair programming, and continuous integration) can scale _down_ from
aerospace software development, to the speed of ordinary business
development.

--
Phlip
http://www.c2.com/cgi/wiki?ZeekLand
Nov 14 '05 #9

P: n/a
"Ally" <al**@hotmail.com> wrote:
Could someone give me an example of a modern development methodology? Just
to see if I'm thinking along the right lines...


No, but apparently, the nameless method which consists of planning
ahead, coding meticulously, and desk-checking and debugging thoroughly,
isn't modern enough any more.

Richard
Nov 14 '05 #10

P: n/a
In comp.lang.c Richard Bos <rl*@hoekstra-uitgeverij.nl> wrote:
No, but apparently, the nameless method which consists of planning
ahead, coding meticulously, and desk-checking and debugging thoroughly,
isn't modern enough any more.


How old do you have to be to be a codger? :-)

--
Christopher Benson-Manica | I *should* know what I'm talking about - if I
ataru(at)cyberspace.org | don't, I need to know. Flames welcome.
Nov 14 '05 #11

P: n/a
On Tue, 26 Apr 2005 13:25:50 GMT, rl*@hoekstra-uitgeverij.nl (Richard
Bos) wrote:
"Ally" <al**@hotmail.com> wrote:
Could someone give me an example of a modern development methodology? Just
to see if I'm thinking along the right lines...


No, but apparently, the nameless method which consists of planning
ahead, coding meticulously, and desk-checking and debugging thoroughly,
isn't modern enough any more.


How utterly twenty centurieth. Get with the program, dude.
Richard Harter, cr*@tiac.net
http://home.tiac.net/~cri, http://www.varinoma.com
Save the Earth now!!
It's the only planet with chocolate.
Nov 14 '05 #12

P: n/a
Christopher Benson-Manica <at***@nospam.cyberspace.org> wrote:
In comp.lang.c Richard Bos <rl*@hoekstra-uitgeverij.nl> wrote:
No, but apparently, the nameless method which consists of planning
ahead, coding meticulously, and desk-checking and debugging thoroughly,
isn't modern enough any more.


How old do you have to be to be a codger? :-)


34 <g>.

Richard, grumpy old bastard from birth
Nov 14 '05 #13

P: n/a
Richard Bos wrote:
No, but apparently, the nameless method which consists of planning
ahead, coding meticulously, and desk-checking and debugging thoroughly,
isn't modern enough any more.


Uh, where's the automated tests?

--
Phlip
http://www.c2.com/cgi/wiki?ZeekLand
Nov 14 '05 #14

P: n/a

"Phlip" <ph*******@yahoo.com> wrote in message
news:sI****************@newssvr17.news.prodigy.com ...
Richard Bos wrote:
No, but apparently, the nameless method which consists of planning
ahead, coding meticulously, and desk-checking and debugging thoroughly,
isn't modern enough any more.


Uh, where's the automated tests?

The customer does them when you dump the code in their lap ;-)
Nov 14 '05 #15

P: n/a

Richard Bos wrote:
"Ally" <al**@hotmail.com> wrote:
Could someone give me an example of a modern development methodology? Just to see if I'm thinking along the right lines...
No, but apparently, the nameless method which consists of planning
ahead,


Which you should do, though requirements are often fluid. Nobody would
advocate painting yourself into a corner when you already know where
the door is, but requirements can be very fluid these days. A
cornerstone of good OO design is ensuring good functionality with a
minimum of interface. When this is done well it can lessen the
importance of the big picture.
coding meticulously,
Nice, but not really a process issue. It's more a product of
programmer talent and available resources.
and desk-checking
As code changes the desk-checking has to be repeated many times.
Fortunately we have computers to automate well-defined tasks. Hence
assertions and automated unit tests.
and debugging thoroughly,
Unit tests, assertions, and other forms of defensive programming
hopefully reduce the bug count up-front. Beyond that, debugging hasn't
changed much as long as the higher-ups give you enough time and
resources to do so.
isn't modern enough any more.


Perhaps not, but they haven't disappeared either. No process is an
adequate substitute for smart programmers, and smart programmers use
and adapt processes as needed to get the job done right.

Nov 14 '05 #16

P: n/a
Betty wrote:
No, but apparently, the nameless method which consists of planning
ahead, coding meticulously, and desk-checking and debugging thoroughly, isn't modern enough any more.


Uh, where's the automated tests?

The customer does them when you dump the code in their lap ;-)


That is why getting them to sign off on all the requirements, before you
start, is absolutely critical.

When you deliver the actual product, after finishing all the requirements,
that's the first time they get to discover that what they asked for is not
what they really need.

You still get paid, because you made them sign. Then you get to gouge them
for every change request.

--
Phlip
http://www.c2.com/cgi/wiki?ZeekLand
Nov 14 '05 #17

P: n/a
In article <VK****************@newsfe6-gui.ntli.net>,
Ally <al**@hotmail.com> wrote:
Could someone give me an example of a modern development methodology? Just
to see if I'm thinking along the right lines...

P.S. Sorry for the cross posting but I couldn't find a newsgroup for systems
analysis.

I've been reading a book about OOP by an author that favors iterative
design. As I understand it, in each cycle you spend a few days on
requirements, then about four weeks on design, coding, and testing. What
is produced is not prototyping, but production quality code that is
incomplete. The process repeats with each cycle beginning with
requirements, which may change over time, and then developing some subset.

Does anyone else know of that?
--
"I fart for joy and I laugh more than if I had cast my old age, as a
serpent does its skin." -- Aristophanes, Peace, 421 BC
Nov 14 '05 #18

P: n/a

"Phlip" <ph*******@yahoo.com> wrote in message
news:sO*****************@newssvr17.news.prodigy.co m...
Betty wrote:
> No, but apparently, the nameless method which consists of planning
> ahead, coding meticulously, and desk-checking and debugging thoroughly, > isn't modern enough any more.

Uh, where's the automated tests?

The customer does them when you dump the code in their lap ;-)


That is why getting them to sign off on all the requirements, before you
start, is absolutely critical.

When you deliver the actual product, after finishing all the requirements,
that's the first time they get to discover that what they asked for is not
what they really need.

You still get paid, because you made them sign. Then you get to gouge them
for every change request.

Welllllll now ;-)
Extreme programming would have you meeting with the customer every
week or two. During this little tête-à-tête, you show them what you've got
and they get to change the requirements.
Nov 14 '05 #19

P: n/a
Betty wrote:
Extreme programming would have you meeting with the customer every
week or two. During this little tête-à-tête, you show them what you've got
and they get to change the requirements.


Wrong. XP has the "customer" onsite. This is another way to say "researching
the requirements is a full-time job for an expert". If your users are
farmers, you need a real farmer, onsite, for best results.

The customer helps convert requirements into testable specifications, and
reviews features as they grow.

The team _could_ release any integration. They make a ceremony of releasing
a new version, once a week. The customer already knows exactly what's in it.
This lets them calculate velocity and plan the next week.

Some teams release to real customers, or demo to external managers, once a
week.

--
Phlip
http://www.c2.com/cgi/wiki?ZeekLand
Nov 14 '05 #20

P: n/a
Gregory L. Hansen wrote:
I've been reading a book about OOP by an author that favors iterative
design. As I understand it, in each cycle you spend a few days on
requirements, then about four weeks on design, coding, and testing. What
is produced is not prototyping, but production quality code that is
incomplete. The process repeats with each cycle beginning with
requirements, which may change over time, and then developing some subset.

Does anyone else know of that?


Try requirements -> test -> code -> design (refactoring). That lets
requirements lead. You can delete code that has no test based on a real
requirement. The efficiencies let you use 1 week iterations, not 1 month.

--
Phlip
http://www.c2.com/cgi/wiki?ZeekLand
Nov 14 '05 #21

P: n/a

"Phlip" <ph*******@yahoo.com> wrote in message
news:rJ****************@newssvr17.news.prodigy.com ...
Betty wrote:
Extreme programming would have you meeting with the customer every
week or two. During this little tête-à-tête, you show them what you've got and they get to change the requirements.
Wrong. XP has the "customer" onsite. This is another way to say

"researching the requirements is a full-time job for an expert". If your users are
farmers, you need a real farmer, onsite, for best results.
How did you find out that I'm a farmer. Hay, if I spend all day in
a skyscraper in Chicago reviewing all this crap (I just need a program
to count milk production), who is going to milk my cows. Maybe I should
ask microsoft to do it.
The customer helps convert requirements into testable specifications, and
reviews features as they grow.

The team _could_ release any integration. They make a ceremony of releasing a new version, once a week. The customer already knows exactly what's in it. This lets them calculate velocity and plan the next week.

Some teams release to real customers, or demo to external managers, once a
week.

--
Phlip
http://www.c2.com/cgi/wiki?ZeekLand

Nov 14 '05 #22

P: n/a
Betty wrote:
How did you find out that I'm a farmer. Hay, if I spend all day in
a skyscraper in Chicago reviewing all this crap (I just need a program
to count milk production)
Uh, I didn't say whose site the team was on.
who is going to milk my cows. Maybe I should
ask microsoft to do it.


Our Multiple Inflated Lactation Knowledgebase team will get right on it.

(got FUD?)

--
Phlip
http://www.c2.com/cgi/wiki?ZeekLand
Nov 14 '05 #23

This discussion thread is closed

Replies have been disabled for this discussion.