
|
View Full Version : Scripts/Applications development Methodologies ???
PurpleCow 02-10-2003, 09:33 AM Hello,
I am not a software developer, but I am considering employing few programmers to code a few apps, I am interested in !
I would like your input and feedback on the same :
Assuming that i wanted to develop a script something like Yahoo style Directory Script ... what is the best methodology to go with. How is the whole process handled ??
I'd very interested to hear from some of you experienced coders here !
Thanks much.
sylow 02-10-2003, 11:11 AM - Seperate program logic/code from html/graphic
- Develop in stages; work with a team who has knowledge of Xtreme programming prefereable
- Use developers who does flexible development style, because specs change on web very frequent, so code should be able to accept any change easily without lots of work.
- Watch out your database design. Let your developers explain it.
These are my humble opinions
Good luck with your project
Studio64 02-10-2003, 11:26 AM Originally posted by sylow
- Watch out your database design. Let your developers explain it.
Database design in a site like this is extremly important. A bad/flawed/ill executed DB design can hinder development. or just leave you w/ a non-functioning product.
The most important (although obvious, is usually almost always poorly executed) is to give a goal.
You must clearly explain in plain english (or your language of preference) what exactly are your goals for the project.
What do you want it to do on a basic level (What is the end role of the functioning product)
What are the specific functions you wish the product will do
What should the end-users be able to do
What should the administrators (different levels of access, if applicable) be able to do
Ensure functionality is clearly achieved (i.e. easy to use)
Not always an easy thing for pure programmers to understand. It doesn't matter if you can write unbelievablly brillant code, if the end user can't use it, it's worthless
Especially on a team project, make sure all code is completely documented before implementation into the working code base.
Nothing worse than putting uncompleted (undocumented is uncompleted) code into the functioning model
Be flexiable to what your willing to sacrifice. usually 10% of features you want to put into a functioning software project are usually scrapped because they don't met the goal or weren't properly planned for in the DB design
Database design. Again..... I truely believe you can never spend too much time on it. It will usually make or break a product from a functionality stand point
Set goals but, be flexable. Goaless project can't get off the ground but, be realistic. Don't always force goals. Sometimes pressure can be good but, when an unrealistic amount is applied it is degenerative to the proccess as a whole
Assign tasks. Don't burden a programmer with trying to fix a style sheet problem unless their equipped to fix it. They can probably learn how to fix it but, thats wasted time if you alreay have someone who is capable to do so
Set basic coding guidelines for comments and class structure. Use UML's if everyone knows how to
Xtreme programming is good but, usually ineffective for web collaborations because of the need for 2 people at a computer at a time. You can read about it but, if you know everyone is going to be physically seperated don't use it as a bible.
Be willing to dump someone who doesn't perform up to the caliber you expected. Bad programmers that need to be helped along usually slow down a team if they arn't quick learners. Time I spend teaching someone how to properly form a SQL statment is detracting from time I could be productivly coding.
Form a system for storing and organizing code. E.g. All of your database functions should be in a file named func_database.inc etc. But, don't go crazy. The more include type files you have the slower the execution time will be b/c of disk I/O overhead (unless you use a Zend type enhancer
Wow... I rambled....
I hope this helped...
My fingers need a rest now... :D
LizMarr 02-10-2003, 02:30 PM Originally posted by PurpleCow
Assuming that i wanted to develop a script something like Yahoo style Directory Script ... what is the best methodology to go with. How is the whole process handled ??
90% of actually programming is done on paper - before ever writing a letter of code. Generally to develop a program for someone, the person writing the code will either a) know from experience the application needed (they've either written simular before or used it often) or b) spend time interviewing the client about just what they have in mind. Part of the money that is spent to get a custom application is to insure that the programmer keeps tweaking it until it is right - in the long run it is less expensive to buy an app that does what you want that is already in production.
As for the logic, it is broken down into steps. First the overall application is discussed, then the sub-applications that make up the whole. With a directory, you know at you have certain information (database) and there is generally an understanding of the fields and indexes needed. Then it gets more complex. You need something like an index, something that does search, something for admin - with questions like, who does the input and the correcting - do the end users? (you'll need a multi-user system) is it imported from Access or another database? (you'd need a method for this) and so on. Each of those have other considerations. You need to have an idea of how many people would be accessing it at once, and how many bytes/megabytes of data/bandwidth will be the usual amount each "hit" generates. Experienced programmers will have some of the processes already developed from past jobs - perhaps even have the whole application from other jobs that they can just customize for you.
On the hardware side a programmer needs to know about server use and file handling. This is where experience comes in. If the database is large, then the toll on the server can be quite high. If the code is sloppy, then the server can have processes left open that will gobble up resources and can bring down the whole system (or take to its knees at a snail's pace)
You've done the first steps by having an idea of what you want and how you want it to look. The next could be a web search to see what other simular directories are out there (there might even be a "canned" product that does what you want) and then look for programmers. I can't emphasise enough - check past projects and references before commiting to a programmer.
I don't think I even touched on the "whole process" - just a small part of it. Perhaps I can sumarize:
1) know what you want
2) take bids
3) check references
4) set dates for goals to be met
5) have budget and date contingencies
It's a lot like taking a bid for any work done - construction, purchasing, whatever. One thing that drives up costs is a consumer who keeps changing his mind or adding things once the project is underway. Know what you want, on paper, before ever starting. Jot down everything, the programmer can tell you how "doable" it will be.
PurpleCow 02-10-2003, 11:49 PM Hello,
Thank you for the very valuable insights, tey are all very valuable to me and my developer team. Infact, i have taken a printout of the posts above.
I missed out on mentioning in my first post that, the technologies used will be PHP and CGI with MYSql as the back end.
Now lets say, I initially developed a particular application/script with PHP and mysql as the backend, in the later stages say, i also want to give Pgsql as an option to some users those who want it .... what steps in the beginning do i have to ensure in the coding so that it'll be easy to add pgsql also as a backend option along with mysql.
It's something like ... phpBB ... which gives the option of more than one database ??
Another thing is :
What if i want that application developed to be able to work on more than one OS.... guesss if i design it for linux...it perfectly functions on unix servers also...but what steps do i have to ensure, if i have to make the app run smoothly on windows system also ?? can i get the same code to work on all platforms or do i need to have two seperate packages .. one which works on *nix and the other on win platform ??
I'd also like to know more about Xtreme Programming mentioned above ??
I read that the DB design is a very critical and the most importatnt thing. I know, you have mentioned a few important points to be taken care of..... a bit more insight on the DB design could be very helpful for me, again !
Thanks a lot again for your very valuable time.
|