PC Review


Reply
Thread Tools Rate Thread

Developing Better Software -- PLEASE READ!!

 
 
Visionary Web Services
Guest
Posts: n/a
 
      13th Aug 2003
Greetings,

I am a developer with most of my background being in web development.
I am now moving into the pocket pc platform. I do not have a degree
and all of my knowledge is self-taught, so I am very rough around the
edges. I want to increase my software development professionalism. I
know that alot of what I do could be done alot better and I looking
for a resource either on the web or in a book that could teach my a
better way of doing things.

For instance:
1) What is the best way to comment my code?
2) What are the best tools to use when designing software?
3) Should I use UML?
4) What is the best process, from start to finish, of designing,
developing, testing, debugging and releasing successful software?

I have a good idea of what the answers are but I need that extra bit
of knowledge to allow me to be more successful. I would appreciate any
insight that you could give me.

Thank you for your time and have a great day.

Jason Cochran
Visionary Web Services
 
Reply With Quote
 
 
 
 
Josh Einstein
Guest
Posts: n/a
 
      13th Aug 2003
I will second that response. I am also self-taught and I do not have a
degree. I didn't even finish high school actually. I have a GED. But that
came out to my advantage because it gave me more experience in the real
world sooner than the others who were still in school learning antiquated
techniques from indians in a classroom.

I have seen the work of others and of all the programmers I know, I can
proudly say, I am one of the best. How? Quite simple, READ EVERYTHING YOU
CAN GET YOUR GRUBBY LITTLE HANDS ON! That's right. Reading is the key...
especially the Microsoft guidelines. For example, the .NET SDK comes with a
help file and there is a section called "Design Guidelines for Class Library
Developers". This is definitely a must-read if you intend for others to use
your code.

Nothing gives a bad impression like giving a developer a stream-derived
class named something like "CInputObject". If you read that section you'll
understand what I am talking about. Naming guidelines are just as important,
if not more so, than your internal coding guidelines because they will
ultimately give people first impression of you.

As for learning how to properly architect apps, it can only come from
experience. You'll probably re-write alot of software two or three times
before you get it to a point where you feel its "just right". Take one of
these final projects and reverse engineer it in Visio. Then alot of things
will just "click" and you'll have a pretty good idea of how to architect and
design your next project.

Hope this helps! And if you ever have any questions, I'd be happy to help.
You can get my email address on my web site. (http://www.josheinstein.com)

Josh

"Gabriele G. Ponti" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Jason,
>
> In my opinion there aren't absolute answers to your questions, because
> things can change depending on the situations. Microsoft is doing an
> excellent job in gathering proven architectures, production quality code,
> and lifecycle best practices in their Patterns & Practices portal:
>
> http://www.microsoft.com/resources/practices/
>
> I would suggest that you take a look at what is available there.
>
> Gabriele
>
> "Visionary Web Services" <(E-Mail Removed)> wrote in
> message news:(E-Mail Removed)...
> > Greetings,
> >
> > I am a developer with most of my background being in web development.
> > I am now moving into the pocket pc platform. I do not have a degree
> > and all of my knowledge is self-taught, so I am very rough around the
> > edges. I want to increase my software development professionalism. I
> > know that alot of what I do could be done alot better and I looking
> > for a resource either on the web or in a book that could teach my a
> > better way of doing things.
> >
> > For instance:
> > 1) What is the best way to comment my code?
> > 2) What are the best tools to use when designing software?
> > 3) Should I use UML?
> > 4) What is the best process, from start to finish, of designing,
> > developing, testing, debugging and releasing successful software?
> >
> > I have a good idea of what the answers are but I need that extra bit
> > of knowledge to allow me to be more successful. I would appreciate any
> > insight that you could give me.
> >
> > Thank you for your time and have a great day.
> >
> > Jason Cochran
> > Visionary Web Services

>
>



 
Reply With Quote
 
Michael Lang
Guest
Posts: n/a
 
      13th Aug 2003
I agree with the other posts. Also, Microsoft has an MCSD ceritification.
There are predefined courses to help prepare for these exams. You can
usually find training in a city near you, or do self-directed training. The
prerequisites pages will give an idea of what to look at. If interested in
certification, please get experience using all these techniques before
testing! The tests make you actually use the guidelines, not just recite
answers from memory.

http://www.microsoft.com/traincert/mcp/mcsd/default.asp

course: "Microsoft Solutions Framework"
http://www.microsoft.com/traincert/s...1846Afinal.asp

course: "Analyzing Requirements and Defining Microsoft .NET Solution
Architectures"
http://www.microsoft.com/TRAINCERT/S...2710bfinal.asp
--
Michael Lang, MCSD
See my .NET open source projects
http://sourceforge.net/projects/dbobjecter (code generator)
http://sourceforge.net/projects/genadonet ("generic" ADO.NET)

"Visionary Web Services" <(E-Mail Removed)> wrote in
message news:(E-Mail Removed)...
> Greetings,
>
> I am a developer with most of my background being in web development.
> I am now moving into the pocket pc platform. I do not have a degree
> and all of my knowledge is self-taught, so I am very rough around the
> edges. I want to increase my software development professionalism. I
> know that alot of what I do could be done alot better and I looking
> for a resource either on the web or in a book that could teach my a
> better way of doing things.
>
> For instance:
> 1) What is the best way to comment my code?
> 2) What are the best tools to use when designing software?
> 3) Should I use UML?
> 4) What is the best process, from start to finish, of designing,
> developing, testing, debugging and releasing successful software?
>
> I have a good idea of what the answers are but I need that extra bit
> of knowledge to allow me to be more successful. I would appreciate any
> insight that you could give me.
>
> Thank you for your time and have a great day.
>
> Jason Cochran
> Visionary Web Services



 
Reply With Quote
 
Ron McNulty
Guest
Posts: n/a
 
      15th Aug 2003
Hi Jason

>> 1) What is the best way to comment my code?

Make sure you use <summary> and <param> tags at a minimum. Sprinkle in some
<remarks> and <see> tags as you gain confidence. Download and install the
ndoc package - it makes prettier comments than the Visual Studio standard.
Aim your comments at a person that is of similar ability, but new to your
code. Tell them about what you are doing at the business level, not the code
detail level. Make your variable and method names self-describing.

>> 2) What are the best tools to use when designing software?

Common sense, and you need access to one or more business "power users" who
know what the final product will be used for. Sorting these key people out
from the morass of managers and analysts that have never worked at the
coal-face is a major challenge. Listen for the expression "it hardly ever
happens". This means "it sometimes happens", and when it does, your code
needs to handle the fallout. Also, many businesses operate using a model
that does not work. Typically they have one or two key people that handle
the exceptions - they are the ones that know the problems, and can often
suggest better ways of working.

>> 3) Should I use UML?

Well, after 20 years in IT (the last 5 as an architect), I am not convinced.
It is a great way to document a design, but I'm not sure it is a great tool
to create a design. My opinion might be different if object databases were
mature. Use Cases have their niche in describing concisely how a user is
going to interact with the system - I recommend them for systems where
security and fraud prevention are important. But class diagrams give you
something that is difficult to implement in a relational database.
Personally I use a good database design tool (Power Designer or Erwin) to
design a relational database that supports the business requirements. Get
that correct, and coding is a breeze.

4) What is the best process, from start to finish, of designing,
Documenting the business requirements is probably the most important step.
Often for small programs I write an outline of a user manual rather than an
official requirements document. Getting it down on paper limts "scope
creep", which is a frequent cause of non-delivery. And don't forget
interpersonal skills. If you can maintain a good working relationship with
your boss and with end users, you will end up writing useful code.

Also soak up knowledge - read all you can on design patterns, polymorphism,
encapsulation and other techniques for making software simple and elegant.
We programmers so often re-invent the wheel - borrow and adapt whatever you
(legally) can. Read newsgroups and slashdot.com. Keep an eye on new projects
in sourceforge.org.. No-one can understand in detail the huge volume of info
coming our way, but it pays to at least know what terms mean and where new
ideas fit in the scheme of things.

It is very easy to get into a rut (e.g. "I know Cobol, therefore everything
should be written in Cobol") And don't re-invent things just because there
is a learning curve. (e.g. Writing your own XML reader rather than learning
about .NET or open source DOM classes). Understanding the mainstream is
almost always the right way to go, and looks good on your CV

Lastly, do it once and get it right. I have worked with a number of
programmers that said they would "go back and comment/clean up their code".
Either they don't, or they spend an inordinate amount of time supporting a
flaky production system.

Well this rant will probably have the UML police after me, but thats life!

Regards

Ron

"Visionary Web Services" <(E-Mail Removed)> wrote in
message news:(E-Mail Removed)...
> Greetings,
>
> I am a developer with most of my background being in web development.
> I am now moving into the pocket pc platform. I do not have a degree
> and all of my knowledge is self-taught, so I am very rough around the
> edges. I want to increase my software development professionalism. I
> know that alot of what I do could be done alot better and I looking
> for a resource either on the web or in a book that could teach my a
> better way of doing things.
>
> For instance:
> 1) What is the best way to comment my code?
> 2) What are the best tools to use when designing software?
> 3) Should I use UML?
> 4) What is the best process, from start to finish, of designing,
> developing, testing, debugging and releasing successful software?
>
> I have a good idea of what the answers are but I need that extra bit
> of knowledge to allow me to be more successful. I would appreciate any
> insight that you could give me.
>
> Thank you for your time and have a great day.
>
> Jason Cochran
> Visionary Web Services



 
Reply With Quote
 
Visionary Web Services
Guest
Posts: n/a
 
      18th Aug 2003
Ron,

I really appreciate your comments. Living in West Texas does not grant
me the ability to speak with seasoned developers very often.

I was looking at buying "Code Complete". Is it a good book? Are there
any other books on developing solid code (not necessarily on a
particular language) that you recommend?

"Ron McNulty" <(E-Mail Removed)> wrote in message news:<(E-Mail Removed)>...
> Hi Jason
>
> >> 1) What is the best way to comment my code?

> Make sure you use <summary> and <param> tags at a minimum. Sprinkle in some
> <remarks> and <see> tags as you gain confidence. Download and install the
> ndoc package - it makes prettier comments than the Visual Studio standard.
> Aim your comments at a person that is of similar ability, but new to your
> code. Tell them about what you are doing at the business level, not the code
> detail level. Make your variable and method names self-describing.
>
> >> 2) What are the best tools to use when designing software?

> Common sense, and you need access to one or more business "power users" who
> know what the final product will be used for. Sorting these key people out
> from the morass of managers and analysts that have never worked at the
> coal-face is a major challenge. Listen for the expression "it hardly ever
> happens". This means "it sometimes happens", and when it does, your code
> needs to handle the fallout. Also, many businesses operate using a model
> that does not work. Typically they have one or two key people that handle
> the exceptions - they are the ones that know the problems, and can often
> suggest better ways of working.
>
> >> 3) Should I use UML?

> Well, after 20 years in IT (the last 5 as an architect), I am not convinced.
> It is a great way to document a design, but I'm not sure it is a great tool
> to create a design. My opinion might be different if object databases were
> mature. Use Cases have their niche in describing concisely how a user is
> going to interact with the system - I recommend them for systems where
> security and fraud prevention are important. But class diagrams give you
> something that is difficult to implement in a relational database.
> Personally I use a good database design tool (Power Designer or Erwin) to
> design a relational database that supports the business requirements. Get
> that correct, and coding is a breeze.
>
> 4) What is the best process, from start to finish, of designing,
> Documenting the business requirements is probably the most important step.
> Often for small programs I write an outline of a user manual rather than an
> official requirements document. Getting it down on paper limts "scope
> creep", which is a frequent cause of non-delivery. And don't forget
> interpersonal skills. If you can maintain a good working relationship with
> your boss and with end users, you will end up writing useful code.
>
> Also soak up knowledge - read all you can on design patterns, polymorphism,
> encapsulation and other techniques for making software simple and elegant.
> We programmers so often re-invent the wheel - borrow and adapt whatever you
> (legally) can. Read newsgroups and slashdot.com. Keep an eye on new projects
> in sourceforge.org.. No-one can understand in detail the huge volume of info
> coming our way, but it pays to at least know what terms mean and where new
> ideas fit in the scheme of things.
>
> It is very easy to get into a rut (e.g. "I know Cobol, therefore everything
> should be written in Cobol") And don't re-invent things just because there
> is a learning curve. (e.g. Writing your own XML reader rather than learning
> about .NET or open source DOM classes). Understanding the mainstream is
> almost always the right way to go, and looks good on your CV
>
> Lastly, do it once and get it right. I have worked with a number of
> programmers that said they would "go back and comment/clean up their code".
> Either they don't, or they spend an inordinate amount of time supporting a
> flaky production system.
>
> Well this rant will probably have the UML police after me, but thats life!
>
> Regards
>
> Ron
>
> "Visionary Web Services" <(E-Mail Removed)> wrote in
> message news:(E-Mail Removed)...
> > Greetings,
> >
> > I am a developer with most of my background being in web development.
> > I am now moving into the pocket pc platform. I do not have a degree
> > and all of my knowledge is self-taught, so I am very rough around the
> > edges. I want to increase my software development professionalism. I
> > know that alot of what I do could be done alot better and I looking
> > for a resource either on the web or in a book that could teach my a
> > better way of doing things.
> >
> > For instance:
> > 1) What is the best way to comment my code?
> > 2) What are the best tools to use when designing software?
> > 3) Should I use UML?
> > 4) What is the best process, from start to finish, of designing,
> > developing, testing, debugging and releasing successful software?
> >
> > I have a good idea of what the answers are but I need that extra bit
> > of knowledge to allow me to be more successful. I would appreciate any
> > insight that you could give me.
> >
> > Thank you for your time and have a great day.
> >
> > Jason Cochran
> > Visionary Web Services

 
Reply With Quote
 
Gabriele G. Ponti
Guest
Posts: n/a
 
      18th Aug 2003
Jason,

I read "Code Complete" some years ago, and I would definitely recommend it
to any programmer. It's not a bad book, however I think that some of the
content is now outdated and - while still conceptually valid - not up to
today's reality. If you have the possibility stop by a book store, and take
a look at its content before you buy it.

Gabriele


 
Reply With Quote
 
nospam
Guest
Posts: n/a
 
      20th Aug 2003
"Code Complete" is a good book if you want the same level of reliability as
other Microsoft Products which isn't good.

If you look in the Index of this book, Code Complete, there is NO mention of
the word, "Reliability".

That tells me a LOT about why software is so crappy in mission critical
environments or any environment.

If you look at the letter, "Q" for quality, you see very little material as
well....THAT also speaks volumes as well.

~13 pages out of a 900 page book is like 1% of the book that's devoted to
quality.



"Gabriele G. Ponti" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Jason,
>
> I read "Code Complete" some years ago, and I would definitely recommend it
> to any programmer. It's not a bad book, however I think that some of the
> content is now outdated and - while still conceptually valid - not up to
> today's reality. If you have the possibility stop by a book store, and

take
> a look at its content before you buy it.
>
> Gabriele
>
>



 
Reply With Quote
 
Gabriele G. Ponti
Guest
Posts: n/a
 
      20th Aug 2003
I don't agree with you, but I respect your opinion. What book would you
suggest?

"nospam" <(E-Mail Removed)> wrote in message
news:OnhPv$(E-Mail Removed)...
> "Code Complete" is a good book if you want the same level of reliability

as
> other Microsoft Products which isn't good.
>
> If you look in the Index of this book, Code Complete, there is NO mention

of
> the word, "Reliability".
>
> That tells me a LOT about why software is so crappy in mission critical
> environments or any environment.
>
> If you look at the letter, "Q" for quality, you see very little material

as
> well....THAT also speaks volumes as well.
>
> ~13 pages out of a 900 page book is like 1% of the book that's devoted to
> quality.
>
>
>
> "Gabriele G. Ponti" <(E-Mail Removed)> wrote in message
> news:(E-Mail Removed)...
> > Jason,
> >
> > I read "Code Complete" some years ago, and I would definitely recommend

it
> > to any programmer. It's not a bad book, however I think that some of

the
> > content is now outdated and - while still conceptually valid - not up to
> > today's reality. If you have the possibility stop by a book store, and

> take
> > a look at its content before you buy it.
> >
> > Gabriele
> >
> >

>
>



 
Reply With Quote
 
Ron McNulty
Guest
Posts: n/a
 
      21st Aug 2003
Hi Jason

I don't think I've read "Code Complete", so can't comment.

There is a good book in the Microsoft series on "Writing Solid Code" (By
Steve ??? I think) . The examples are in C and C++, but the principles apply
universally.

I went to the New Zealand Tech Ed conference this week. My feeling from the
conference was that "Model Driven Architecture" is the coming design
technique once the hype over Extreme Programming dies away. They were
talking of UML models, but the principles seem to apply equally to starting
with a database model - I have been pushing this technique for years.

Also, don't rely on Microsoft's Visio tools for UML or database model
design. They are sadly underpowered. I was really underwhelmed by the
session on UML with Visio - poor reverse engineering, no round trip
engineering and (quote) "Interfaces really aren't handled all that well"

Regards

Ron


 
Reply With Quote
 
nospam
Guest
Posts: n/a
 
      22nd Aug 2003
Now, that's a tough question.

If you read Code Complete (of which most Microsoft employees do) one could
guess that you might get same quality software...patches...more patches,
patches that break other patches.....Just remember, Microsoft has thousands
and thousands programmers and they are supposed to be the best of the best,
and have years of experience.....

How about other software companies? Well, like I said tough
question....they have just as many patches or bugs...just not trumpeted by
the news as much...

How about looking at the American car companies in the 1970's and compare
that's to the quality of American car companies now? How about looking at
how the Japanese made more reliable cars?

There is really no good book on software development quality.....

IN fact, software companies will tell you that BUGS are a fact of life.

Well, that's what the American Car Companies said in the 1970's and 1980's.

Has the quality and reliability of cars gone up? Yes indeed.

Look at GE....they have a Six Sigma program tailored after Motorola's...
six sigma is a process of improving things....

where 6 sigma is means 3.4 defects per million.

HOWEVER, software companies will tell you that things change and
requirements change so much, it would only stifle new development...yet we
spend a lot of time applying patches and windows updates and fighting
viruses......


NUTSHELL
I don't know what to tell you, but I aiming higher than those who say,
"software bugs are a fact of life".





"Gabriele G. Ponti" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> I don't agree with you, but I respect your opinion. What book would you
> suggest?
>
> "nospam" <(E-Mail Removed)> wrote in message
> news:OnhPv$(E-Mail Removed)...
> > "Code Complete" is a good book if you want the same level of reliability

> as
> > other Microsoft Products which isn't good.
> >
> > If you look in the Index of this book, Code Complete, there is NO

mention
> of
> > the word, "Reliability".
> >
> > That tells me a LOT about why software is so crappy in mission critical
> > environments or any environment.
> >
> > If you look at the letter, "Q" for quality, you see very little material

> as
> > well....THAT also speaks volumes as well.
> >
> > ~13 pages out of a 900 page book is like 1% of the book that's devoted

to
> > quality.
> >
> >
> >
> > "Gabriele G. Ponti" <(E-Mail Removed)> wrote in message
> > news:(E-Mail Removed)...
> > > Jason,
> > >
> > > I read "Code Complete" some years ago, and I would definitely

recommend
> it
> > > to any programmer. It's not a bad book, however I think that some of

> the
> > > content is now outdated and - while still conceptually valid - not up

to
> > > today's reality. If you have the possibility stop by a book store, and

> > take
> > > a look at its content before you buy it.
> > >
> > > Gabriele
> > >
> > >

> >
> >

>
>



 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
About Developing a software using VB and Ms Access Muzzammil - SKAB Microsoft Access Form Coding 0 24th Aug 2008 12:32 PM
BCM Add On SDK - Developing Software =?Utf-8?B?R2FyeSBQaGlsbGlwcw==?= Microsoft Outlook BCM 2 18th Jul 2007 12:00 AM
Resource for developing your own accounting software using MS technologies pedaammulu@yahoo.com Windows XP General 0 22nd Mar 2006 03:18 AM
Resource for developing your own accounting software using MS technologies ammulu Freeware 0 22nd Mar 2006 03:09 AM
Resource for developing your own accounting software using MS technologies pedaammulu@yahoo.com Microsoft Access Security 0 22nd Mar 2006 01:09 AM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 04:05 AM.