This week I am beginning the process of building my program.
For a professional programmer either working for a company or independently the
first step to of the process is determining what the end product of the program
is to do. In most cases a basic description of this is provided by the person
or company who the program is being made for, it is then the programmer’s job
to ask questions to understand exactly what the boss/client wants. After
meeting with the boss or client, the next step is to take everything that was
learned from the meeting and break the program down into individual modules,
parts of the program. One thing I learned last week during my software design
class that really shows how important understanding the needs of the program is
that analyzing what is needed out of the program alone should take up about 35%
of the time spent making the whole program. Another 30% should be spent just
designing the program and how it will work. The remaining 35% should be spent
implementing the analysis and design, coding the program, testing the program,
if needed debugging any problems that arise and maintaining and updating the
code. It is critical that ample time be allocated to analyze what is needed and
design a program that fits the needs.
Since I am not making this program for anyone specific I
began this week with trying to figure out what I want the program to be able to
do. After ruling a few ideas out either for being far too difficult for me to
have a chance of finishing in 16 weeks or so simple that I could have to
program completely finished in a few days I thought of a program that with my
current experience will be a challenge to complete in 16-weeks but I think
could be possible to do.
The program will allow a user to enter and store a password
and give the entry a label, for example a user might store their password to
their Amazon.com account, so they might label it as Amazon. Once a user saves
an entry, that one and any added in the future, will be accessible via an entry
library which will display all the labels.
All of the information inputted by the user will be encrypted for
security and then stored. If the user wants, a password to secure access to the
entire library can be applied.
One other feature of the program I am considering including
in it would be a way so that when a user clicks on an entry they can press a
button that would open their internet browser to the login page for the site
their password is used on. If I were to do that I would need to have a way for
users to input the URL of the login screen for websites that aren’t included in
the program.
Great post. You anticipated my request for creating a not-overly-difficult program. And I wonder (hopefully you'll cover this in a future post): how much of programming is reverse engineering current programs?
ReplyDeleteDo programmers reinvent the wheel each time they have a new project with a new client? Are codes proprietary? What is the general time frame from start to completion for one programmer on a code like the one you'll do? Are most programs written in teams?