Board index » delphi » How do you program? - An unscientific survey

How do you program? - An unscientific survey


2004-02-11 07:37:15 AM
delphi136
I wonder if all the tools, concepts and technologies often mentioned in
these groups, give you (as a programmer) an advantage?
When you get a programming job, how do you attack it?
With all the Agile, Extreme, etc., methodologies, what did you use to do
your previous projects and what will you use to do your next project (or
the .NET version, if you are going there)?
Some people say they would not even consider doing a "Hello World"
program without Bold, others say ModelMaker is a must; some swear by
CodeRush and others by Castalia. Some use vi or UltraEdit.
How do you program?
1. Do you "model" (the business domain, etc.)? If so, do you use a
modeling tool or sketchpad and whiteboard?
2. How do you develop the project requirements? From the documentation
or verbal information provided by the boss/person hiring you? From the
eventual users? From experience? Do you use Use Cases?
3. Do you build a test before you code? Do you use DUnit? Do you use
testing and profiling tools like TestComplete and Memory Sleuth?
4. Do you follow the RUP or like methodology? Do you develop in
Iterations? Do you use "pairs programming"?
5. How do you get from "model" (UML or paper) requirements to code? Do
you use Bold? ModelMaker? Enterprise Architect? Other?
6. Do you use a programmer's editor or the IDE? Do you use IDE alone
or with "helpers" (like GExperts, CodeRush, Castalia, etc.)?
7. What one or two things, concepts or tools have really helped you be
successful?
If you find the time, kick back and tell me how you do programs.
-Eduardo
 
 

Re:How do you program? - An unscientific survey

Eduardo A. Salgado writes:
Quote

How do you program?
Hah! I get to go first (if I can type fast enough <g>)...
Quote
1. Do you "model" (the business domain, etc.)? If so, do you use a
modeling tool or sketchpad and whiteboard?
For complex systems I like to use paper or whiteboard to visualize
some core aspects of the architecture.
Often I need to write design descriptions for the customers,
in this case I do draw UML diagrams, esp. interaction diagrams.
Quote
2. How do you develop the project requirements? From the
documentation or verbal information provided by the boss/person
hiring you? From the eventual users? From experience? Do you use Use
Cases?
Usually we get written requirements from the customers, we review them
and they are iterated until everyone "understands" them.
(no more questions or comments).
Use cases - only as a way of fulfilling formal documentation
requirements
imposed by customers. I can not see what's so useful about them
(if you are used to detailed written specs).
Quote
3. Do you build a test before you code? Do you use DUnit? Do you
use testing and profiling tools like TestComplete and Memory Sleuth?
Prototyping fundamental mechanisms, sure.
I _do_ use DUnit as a test driver - great tool, applied to unit, module
and system level (API) testing. Love it!
Testing and profiling tools - not really.
Have never had significant memory leakage problems (that showed).
Sometimes I use Zprofiler (from Bob Lee's site) for algorithm
timing/comparison.
Quote
4. Do you follow the RUP or like methodology? Do you develop in
Iterations? Do you use "pairs programming"?
None of that.
Quote
5. How do you get from "model" (UML or paper) requirements to code?
Do you use Bold? ModelMaker? Enterprise Architect? Other?
Mental translation? Read the spec or design (for the Nth time), then
code it.
UML takes far too much time to draw up and doesn't seem to return any
tangible benefits.
Perhaps as a graphical helper for refactoring operations... I could see
that being kinda fun.
(I believe MM supports this already).
Quote
6. Do you use a programmer's editor or the IDE? Do you use IDE alone
or with "helpers" (like GExperts, CodeRush, Castalia, etc.)?
IDE with GExperts and a few other minor plugins.
(Oh, how I miss GExperts in D8!!!)
Quote
7. What one or two things, concepts or tools have really helped you
be successful?
1. The stability of Delphi RTL/VCL and the Windows API as a programming
platform
2. Our in-house generic Delphi code library, which accounts for 50-80%
of
any of my applications' compiled volume (depending on App size).
--
Kristofer
 

Re:How do you program? - An unscientific survey

"Eduardo A. Salgado" <XXXX@XXXXX.COM>writes
Quote
1. Do you "model" (the business domain, etc.)? If so, do you use a
modeling tool or sketchpad and whiteboard?
I use wirebound notebooks and scribble down ideas as I go along. I usually
end up with lots of sketches relating different parts of the system, class
hiearchies, etc.
Quote
2. How do you develop the project requirements? From the documentation
or verbal information provided by the boss/person hiring you? From the
eventual users? From experience? Do you use Use Cases?
I always try to use the eventual users - they're the ones that will use the
system. Obviously there will be client requirements and often a written
spec, but I then go to the end users for the nitty gritty.
Quote
3. Do you build a test before you code? Do you use DUnit? Do you use
testing and profiling tools like TestComplete and Memory Sleuth?
Although I own Delphi 1 thru 8, I still do all of my development in D5, so I
use Sleuth QA from TurboPower. This helps with memory leaks and profiling.
I also use CodeSite 2 while debugging during development, and MadExcept for
'debugging' after release.
Quote
4. Do you follow the RUP or like methodology? Do you develop in
Iterations? Do you use "pairs programming"?
My applications tend to grow in iterations. As I find better ways of doing
things, I will refactor my code to use these.
Quote
5. How do you get from "model" (UML or paper) requirements to code? Do
you use Bold? ModelMaker? Enterprise Architect? Other?
I just started using ModelMaker about three months ago and find it a HUGE
help when working with classes. The one downside is the lack of
CodeComplete; but every so often, I will regenerate the unit and drop back
into Delphi to fill in the function bodies, then go back to MM and refresh
the import. it is reduced development time enormously.
Quote
6. Do you use a programmer's editor or the IDE? Do you use IDE alone
or with "helpers" (like GExperts, CodeRush, Castalia, etc.)?
I stick with the standard editor. I have tried others, along with CodeRush,
but found they caused me more problems than they were worth. I did use
Castalia for a little while, but again it didn't give me too much. I do use
GExperts for simple things like ComponentReplace and MessageBox generation.
Quote
7. What one or two things, concepts or tools have really helped you be
successful?
Finding ModelMaker was a godsend. On the debugging front, I would be lost
without CodeSite. A few months ago I got into refactoring and OO design in
a big way. I devoured loads of books and articles, and now find myself
creating much cleaner and more maintainable code.
HTH
Dave White
 

Re:How do you program? - An unscientific survey

Dave,
<I have tried others, along with CodeRush,but found they caused me more
problems than they were worth>
I'm completely at odds with that. I have grown so accustomed to CodeRush that
I can no longer imagine using Delphi without it. Whenever I use a system
without CR I feel {*word*192}. I am always wondering why I need to declare "I" or
why my "Case" statements aren't already completed, etc.
I can not wait for Mark Miller to come up with "Code Rush for Model Maker".
That would RULE!
Thanks,
Chuck
 

Re:How do you program? - An unscientific survey

Quote
I'm completely at odds with that. I have grown so accustomed to CodeRush
that
I can no longer imagine using Delphi without it. Whenever I use a system
without CR I feel {*word*192}. I am always wondering why I need to declare "I" or
why my "Case" statements aren't already completed, etc.
Why don't they have a demo/trial version for CodeRush?
 

Re:How do you program? - An unscientific survey

Eduardo A. Salgado writes:
First,
Hi Ed, long time no see <G>.. Still in B'ham?
Quote

How do you program?

1. Do you "model" (the business domain, etc.)? If so, do you use a
modeling tool or sketchpad and whiteboard?

Yes to the question, usually, and yes to all three, usually :)
It depends upon what type of application you are building naturally, as to
how far and to what lengths you would go to in the design process.
Generally I start with a white board (if available) and start bullet
pointing and do some modest diagramming as the customer(s) explain what
they are looking for. If I am really lucky, the White Board will have some
type of print capabilities. If not, I will usually see if someone would be
kind enough to write down what we draw adn write out. If that person is not
available, during the breaks I will write it all down, before we erase and
move onto the next session.
From here, I will take these first planning stages and come up with some
kind of Use Case model using something like Rational (or a cheaper route
like DIA [open source Linux/Unix program], or Poseidon [also Open Source,
written in Java, so it will run on Windows, Linux, Mac, etc]).
We go over the use cases and keep repeating the initial design stage until
we are pretty sure we have most everything covered in the Use Case Diagrams
and design plans. Then we will go to Sequence Diagrams, perhaps state
diagrams, etc. and get customer signoff and approval. From here it is time
to meet with the team and start fleshing out the requirements (once we have
sign off), and do the Object Modeling. Much of the Use Case and Object
Modeling can be used to build an actual skeleton of the Object repository
and the basics for the application skeleton, using the right tools.
How far we go, depends upon the complexity of the application being
developed of course.
Quote
2. How do you develop the project requirements? From the documentation
or verbal information provided by the boss/person hiring you? From the
eventual users? From experience? Do you use Use Cases?

Yes to all of the above, usually.
Quote
3. Do you build a test before you code? Do you use DUnit? Do you use
testing and profiling tools like TestComplete and Memory Sleuth?

I use JUnit, but same thing. Somtimes we will prototype and sometimes not.
Prototyping is always a good idea, but you do not want to get too bogged
down into actual GUI design at this stage. Of course again, it depends upon
what kind of application you are developing, what the users understanding
is of IT processes, and who you are doing it for.
Quote
4. Do you follow the RUP or like methodology? Do you develop in
Iterations? Do you use "pairs programming"?
Again, yes to the above, but it does depend upon the app.
Quote

5. How do you get from "model" (UML or paper) requirements to code? Do
you use Bold? ModelMaker? Enterprise Architect? Other?

See above.
Quote
6. Do you use a programmer's editor or the IDE? Do you use IDE alone
or with "helpers" (like GExperts, CodeRush, Castalia, etc.)?

Usually just the IDE and/or modeling tool.
Quote
7. What one or two things, concepts or tools have really helped you be
successful?

UML is helpful to get a concise picture of the process. Unit Testing as you
develop, can save a lot of debugging time during the Alpha and Beta stages.
Abstracting your development, as much as possible, using MVC type
architecture really aids you in the overall process and bug tracking
methodologies. Making sure that each Component/Class created performs
precise functionality (aka per the modeling aspect of the development
process), can help you from "chasing your tail" in debugging, updates, and
bug fixes.
One thing I always do is to create an error log file. This file will always
report: (1) The Reported Exception (2) The Unit in which the error occured,
(3) The function or line number where the error occurred, (4) The Time and
Date the error occurred. (5) The Workstation and/or logged in user when the
error occurred.
Not only does this assist you in the debugging process, but it can be of
great importance when the application is rolled out. If a user or site is
having problems, this file can tell you exactly who, want, when, and where
the error(s) are occuring and can easily suggest an immediate remedy to fix
the problem. Very little overhead, but a tremendous help in quickly
resolving bug issues.
 

Re:How do you program? - An unscientific survey

Quote
1. Do you "model" (the business domain, etc.)? If so, do you use a
modeling tool or sketchpad and whiteboard?
Lot of discussion (to determine if they really know what they
want, or just think that what they envision is what they want/need,
ie. make sure we're dealing with a problem in search of solution,
and not a solution in search of a problem), then whiteboard,
and then more discussion.
Quote
2. How do you develop the project requirements? From the documentation
or verbal information provided by the boss/person hiring you? From the
eventual users? From experience? Do you use Use Cases?
A little of everything.
Quote
3. Do you build a test before you code?
A quick prototype only if 1. and 2. didn't sound very
conclusive or solid (judged from experience).
Quote
Do you use DUnit?
No.
Quote
Do you use testing and profiling tools
like TestComplete and Memory Sleuth?
Extremely rarely.
Quote
4. Do you follow the RUP or like methodology? Do you develop in
Iterations? Do you use "pairs programming"?
"Classic" approach, with rough analysis first, coding last,
and all nitty gritty details left to the developper in the
coding phase: no "grunt" coders here, and no pure "system
architect" either... it is good to be a small shop :)
Quote
5. How do you get from "model" (UML or paper) requirements to code?
Do you use Bold? ModelMaker? Enterprise Architect? Other?
ObjectMaker (custom tool, kinda like a ModelMaker without
the spaghetti side), code templates.
Quote
6. Do you use a programmer's editor or the IDE? Do you use IDE alone
or with "helpers" (like GExperts, CodeRush, Castalia, etc.)?
IDE + helpers
Quote
7. What one or two things, concepts or tools have really helped you be
successful?
Having libraries of reusable generic or business classes, containers
and patterns (without them, pure VCL/RTL now feels quite useless,
castrated and inefficient, with them, everything snaps together
like Lego blocks).
Micro-versionning (everything is systematically versionned locally,
not just at the application, library or unit level, but also down
to the individual class).
Eric
 

Re:How do you program? - An unscientific survey

In article <40296b32$XXXX@XXXXX.COM>, XXXX@XXXXX.COM
says...
Hi,
Quote
How do you program?

1. Do you "model" (the business domain, etc.)? If so, do you use a
modeling tool or sketchpad and whiteboard?

2. How do you develop the project requirements? From the documentation
or verbal information provided by the boss/person hiring you? From the
eventual users? From experience? Do you use Use Cases?
I 'swap' these two.
First stage is to agree on the project requirements with the customer,
normal via 'Use Cases' and or 'CRC Cards'. Normally these are initially
done on 'paper' with the customer present, before finalising in a
'proper' modelling tool. Use Cases are really good for 'non-technical'
people to understand the functionality of a system, and makes it easy to
spot 'actions' that are missing or unneeded.
Once we are in agreement with the requirements, the next step is to
model the business domain(s), again, initially with the customer present
on 'paper', and finalised in a 'proper' modelling tool.
Quote
3. Do you build a test before you code?
Try to. Sometimes all the tests are done for a complete Use Case before
any coding is started, sometimes a test is written just before a
'method' is implemented. New tests are only written for existing code
if a 'bug' is found
Quote
4. Do you follow the RUP or like methodology? Do you develop in
Iterations? Do you use "pairs programming"?
Nothing formal. I take bits from everything. I am a great fan of "Do
the simplest thing that code possibly work" ideal from XP, as long as
the 'test' passes, thats good enough for me, especially with regular
refactoring.
Quote
5. How do you get from "model" (UML or paper) requirements to code? Do
you use Bold? ModelMaker? Enterprise Architect? Other?
ModelMaker (when working with Delphi), can not work without it.
Quote
6. Do you use a programmer's editor or the IDE? Do you use IDE alone
or with "helpers" (like GExperts, CodeRush, Castalia, etc.)?
IDE + Helpers.
Quote
7. What one or two things, concepts or tools have really helped you be
successful?
Keeping 'code' separate from the UI. This means (amongst other design
benefits) you can complete, and test, the 'code', before you even start
on the UI, and if something does not work correctly when/after
implementing the UI, you can easily find out if it is the 'code' on in
the UI stuff.
Phil
 

Re:How do you program? - An unscientific survey

"Eduardo A. Salgado" writes
Quote
2. How do you develop the project requirements? From the documentation
or verbal information provided by the boss/person hiring you? From the
eventual users? From experience? Do you use Use Cases?
Only successful way is to do software is "scratching your inch"
So best way is to do the job you are supposed to automate.
It is funny how easy is to be a something other than a software developer.
It is lot easier for developer to became a clerk or salesman,
than for them to have any idea of software requirements.
If their job is to complex for you to learn, there is the trouble.
That is why there are so many developer tools,
(every developer know what he really need)
and so many scientists do their own software
(it is easier to them to program than
to developer to understund what is going on)
All what methodologies are trying to do
is to bypass obstacles inherited from nature.
 

Re:How do you program? - An unscientific survey

Dave White writes:
| Finding ModelMaker was a godsend. On the debugging front, I would be lost
| without CodeSite. A few months ago I got into refactoring and OO
| design in a big way. I devoured loads of books and articles, and now
| find myself creating much cleaner and more maintainable code.
Have you also discovered ModelMaker Code Explorer?
I find that more useful than Castalia for navigating code, sorting class
declarations and methods as well as refactoring.
Joanna
Consultant Software Engineer
TeamBUG support for UK-BUG
TeamMM support for ModelMaker
 

Re:How do you program? - An unscientific survey

"Eduardo A. Salgado" <XXXX@XXXXX.COM>writes
Quote
I wonder if all the tools, concepts and technologies often mentioned in
these groups, give you (as a programmer) an advantage?
Some do, some don't. Delphi gave me a quick productivity jump when it came
out because at that time I was a C++ programmer doing client/server
programming. VCL>MFC.
Quote
With all the Agile, Extreme, etc., methodologies, what did you use to do
your previous projects and what will you use to do your next project (or
the .NET version, if you are going there)?
I've been involved in projects that used the waterfall methodology (almost
never successfully IMO), no methodology (sometimes successful) and those
that used agile methods without knowing that they would be called "agile" a
few years later. I hope to use agile methods henceforth, but it isn't easy
getting management buy-in to any change.
Quote

Some people say they would not even consider doing a "Hello World"
program without Bold, others say ModelMaker is a must; some swear by
CodeRush and others by Castalia. Some use vi or UltraEdit.
I used to use CodeRush extensively and found it very helpful. Unfortunately,
it had an expensive upgrade policy and now isn't even available at all for
D8. So I don't use it now. I helped beta test Castalia which looked
promising, but I haven't yet purchased it, because it was too unstable on
this PC when I tried the 30-day download. I use ModelMaker Code Explorer,
which is indispensable. I would love to use something like Bold but can not get
management buy-in for that.
Quote
6. Do you use a programmer's editor or the IDE? Do you use IDE alone
or with "helpers" (like GExperts, CodeRush, Castalia, etc.)?
IDE with GExperts, ModelMaker Code Explorer, DelForExp.
 

Re:How do you program? - An unscientific survey

"Chuck Hutchings" <chutchings AT ashvinsgroup DOT COM>writes
Quote
I can not wait for Mark Miller to come up with "Code Rush for Model Maker".
Huh. I didn't know ModelMaker was available for VS.NET.
 

Re:How do you program? - An unscientific survey

"Joanna Carter (TeamB)" <XXXX@XXXXX.COM>writes
Quote
Have you also discovered ModelMaker Code Explorer?

Yep, we have that too.
 

Re:How do you program? - An unscientific survey

This article may interest you.
www.xapware.com/rigidity_chaos.htm
-- x
------------------------------------
Xapware Technologies Inc.
Manage your projects with
Active! Focus - Get More Done!
www.xapware.com
 

Re:How do you program? - An unscientific survey

Xavier Pacheco (Xapware Technologies Inc.) writes:
Quote
This article may interest you.

www.xapware.com/rigidity_chaos.htm
Hmmm,... Very interesting, X. But, how do you program?
-Eduardo