1. Advertising
    y u no do it?

    Advertising (learn more)

    Advertise virtually anything here, with CPM banner ads, CPM email ads and CPC contextual links. You can target relevant areas of the site and show ads based on geographical location of the user if you wish.

    Starts at just $1 per CPM or $0.10 per CPC.

PHP programmers help a frustrated female project manager...

Discussion in 'PHP' started by ste1995, Jan 15, 2009.

  1. #1
    Hello everybody, first of all thanks for listening to me. I work as a project manager for online marketing firm. Let me explain we have been working with our programmers making a social community app for the last 8 months, I never knew how different it was to make a big website application as other projects.

    Since I am new to all this world I would like to ask for some advice to other programmers that dont have anything to do with this company, its just 2 questions:


    1. What would be the perfect process to make a web application? By work process I mean the way the programmers here work is:

    a- Applications Specifications
    b- Program, program and programming
    c- Bug Testing

    Im pretty much sure that this isnt the perfect way to work dont you think? Is there any "official" way of working or running these projects? Any tutorials?

    2. Secondly, in every department of this company except the programming department, everybody reads blogs and resources every week to get updated with their niche (Example: SEO department continously read SEO blogs and forums to stay updated), the programmers here dont, is this normal?, what are the best blogs for LAMP programmers, forums etc? this would help a lot.

    Well, thanks for your time and help, hope I have explained myself clearly!

    thanks..
     
    ste1995, Jan 15, 2009 IP
  2. Vozzek

    Vozzek Active Member

    Messages:
    206
    Likes Received:
    10
    Best Answers:
    0
    Trophy Points:
    58
    #2
    Hehe... oh boy.

    Programming is unlike just about every other field you can go to college for. A doctor or lawyer is going to study the same types of human physiology and legal cases that the doctors and lawyers did 20, 40, or even 60 years ago. But programming languages and applications change so rapidly it can make your head spin.

    When I was in college I learned QBasic, Fortran, Pascal... even Godforsaken Cobol. These things taught me to program but they didn't prepare me for a job. After I graduated everything went GUI and people were doing things very differently. VB, J++ and a bunch of other stuff made my knowledge all but obsolete. I ended up becoming a MUMPS programmer for about 10 years. Don't even ask what that is, the important part is that it sucked.

    Still, a programmer will always be a programmer. And as you suggest here, a good programmer will stay sharp. He or she will stay on top of the latest most cutting edge tools and techniques used to get the job done. This is especially true for web-programming, where things move faster than hell. But a good programmer will do this on his or her own.

    I really can't stress this enough: you have to let a programmer PROGRAM. You cannot mire him in red tape, documentation, and training classes. So many times my old company tried to upgrade their antiquated system... and each time they formed a task force. First they analyzed. Then they documented. They researched, compared, contrasted, and traveled to analyze some more. They ate a lot of finger sandwiches. They did cost feasibility studies, charted proposed system life cycles, and by the time they decided to finally outline the specifications for the system... there were already much better methods to choose from. That's when the cycle began at the beginning. They spent hundreds of thousands of dollars in analysis, yet they never ever updated that system. Even as I type this, they're still using MUMPS.

    Forcing your programmers to 'read blogs' sounds pretty arbitrary. It sounds like something upper management would handily come up with as a bullet point during some wasted meeting. I remember one day some idiot came along and decided we needed to flowchart each module of our system (all 4,000 of them) using VISIO, then print out the charts and store them in a big red binder. Everyone had to sign these docs with exactly the right signatures, on exactly the right date, or I think demons would be summoned from the ass-end of the parking lot and eat us. These SOP's got to be so ridiculous that no one got any work done.

    My advice is to work on clear specifications, then let your programmers do their thing. You'll KNOW if you have good programmers. You won't have to force them to eat their broccoli. Great programmers will have almost an obsessed glow to them. Owning my own company now, I'd hire a kid out of high school who's got that glow wayyyyyyy before I'd hire a college grad who doesn't. You'll know when your programmers are good when they're happily enmeshed in working on your system rather than reading up on mandatory docs and blogs.

    Don't be that dude (or dudette). ;)
     
    Vozzek, Jan 15, 2009 IP
    nihangshah and SamT like this.
  3. Colbyt

    Colbyt Notable Member

    Messages:
    3,224
    Likes Received:
    185
    Best Answers:
    0
    Trophy Points:
    210
    #3

    That worked for me everywhere I was in management and is is damned fine advice!

    Edit: At the risk of sounding like Dilbert here, let me add that in this particular situation the problems arise when management is unable to communicate what it really is that they want.
     
    Colbyt, Jan 15, 2009 IP
  4. Barti1987

    Barti1987 Well-Known Member

    Messages:
    2,703
    Likes Received:
    115
    Best Answers:
    0
    Trophy Points:
    185
    #4
    The process is pretty much the same as regular programming.

    If it was me, I would just use the company standards or start using anything other than the waterfall process.

    To keep themselves updated, they have to program more, just like with other languages.

    Peace,
     
    Barti1987, Jan 15, 2009 IP
  5. rjd22

    rjd22 Peon

    Messages:
    63
    Likes Received:
    2
    Best Answers:
    0
    Trophy Points:
    0
    #5
    In holland the official work way is this:

    Plan of Implementation:
    Here are all the project details and Planning etc

    Functional Design
    This keeps all the functions of the application how the user goes trough it. What the effects are on the company and Hardware. Who is going to test it.

    Technical Design
    All technical functions are written here. Like what hebben if the use clicks that button and what the scripts do als the database structure if using one.

    Screen Sketches
    What the screens will look like.

    If you have a go on all these documents you begin the programming.
    after programming is the first test phase that will be done by experts so prolly other colleagues. The second test phase is being done by the users themselfes when they take it in use.
     
    rjd22, Jan 15, 2009 IP
  6. phper

    phper Active Member

    Messages:
    247
    Likes Received:
    17
    Best Answers:
    0
    Trophy Points:
    60
    #6
    Answering your first question, the modern process that many big companies follow nowadays is called 'Agile'. It's not a small topic, but you can get the basic idea here: http://en.wikipedia.org/wiki/Agile_software_development

    The main ideas are (based on my own experience, some may be different to the WIKI article):
    • Break the project into small tasks
    • Put time estimates on each task, and always aim to never exceed the estimates.
    • Group related tasks together to be worked on within a certain short period (called 'iteration') of between 1 and 4 weeks.
    • In each iteration, the team focus only on the tasks allocated for that iteration. The tasks of course should also be tested within the iteration.
    • In the case where a task turns out to be bigger than expected (thus requiring more time), instead of expanding the time, the Agile way of dealing with it is breaking it into smaller tasks and schedule the tasks that can't be worked on now to future iterations.
     
    phper, Jan 15, 2009 IP
  7. khu84

    khu84 Active Member

    Messages:
    441
    Likes Received:
    4
    Best Answers:
    0
    Trophy Points:
    58
    #7
    Along with breaking into tasks blogs modules or portions must be assigned to programmers seprately.

    e.g. Programmer A will handle all work related to video sharing.
    Programmer B will take care of all work related to sms and email alerts
    Programmer c will tackle with all issues of registration and login processes.

    This way everyone stays in touch with a single area and no one else change his/her code or logic. So everyone knows what he or she is doing.

    As you asked for blogs, here is a PHP programming blog: http://codingtricks.blogspot.com
     
    khu84, Jan 15, 2009 IP
  8. phper

    phper Active Member

    Messages:
    247
    Likes Received:
    17
    Best Answers:
    0
    Trophy Points:
    60
    #8
    I think this is a bit impractical. What if there's 85% of work required for video sharing, 10% for email alerts and 5% for registration and login?

    Also, trying to get each programmer "owns" their code exclusively, you'd end up with a lot of code duplications and programmers would tend to write unmaintainable code as they have the idea that no one else would be reading / working with their code anyway.
     
    phper, Jan 15, 2009 IP
  9. EverestTech

    EverestTech Well-Known Member

    Messages:
    554
    Likes Received:
    12
    Best Answers:
    0
    Trophy Points:
    140
    #9
    Well, for your first question it's pretty much similar as your programmers are doing, the development process should include application specification, planning at the earlier stage, then visualizing and designing should be the next step of application development.
    After those two phases have been completed, programming comes the next, ofcourse yes programing, programming and programming until the application is completed ;) which includes deisgn pattens and frameworks implementation if required. Once the application programming is completed, it should be in either alpha/beta stages, then there comes bug testing... the developers should give enough time for testing the application until it seems to be stable once those stages are completed and the application gets on market it's wise to provide regular updates for the application also regularly monitor for bugs and errors on the currently deployed application.

    For your next question,
    I wouldn't think this is normal, neither it should be technology today is advancing rapidly and someone who is keen on what they do no matter how good they are they should keep updated with new technology, it's wise to give time for reading blogs, forums related to their field, this is really an important factor. And as you know there's no way of getting easier access to such huge resources of information besides internet.

    And for every stuffs related to LAMP the first step of keeping upto date is visiting websites official websites, this include blogs/forums/newsgroups/pressreleease etc..

    you can visit various linux distribution official websites (just google for it)
    besides it's good to keep updated with those sites

    http://www.linux.com/
    http://www.linuxquestions.org/
    http://www.unix.com/
    http;//www.linuxforums.org/
    http://www.howtoforge.com/

    http://www.apache.org
    http://www.mysql.com
    http://dev.mysql.com/
    http://dev.mysql.com/doc/
    http://forums.mysql.com/

    http://www.php.net
    http://www.phpfreaks.com/

    http://www.devshed.com/
    http://forums.devshed.com/
     
    EverestTech, Oct 19, 2010 IP
  10. Gray Fox

    Gray Fox Well-Known Member

    Messages:
    196
    Likes Received:
    8
    Best Answers:
    0
    Trophy Points:
    130
    #10
    Some important programmer tips about big PHP projects:
    - Framework usage is essential. No exceptions here. Building your own framework IS an option, although it would probably take up all the time you would usually save up by just using one of pre-made frameworks. My strong recommendation is Zend. Don't use "simple" frameworks or ANY framework that works with PHP 4. Those are most definitely NOT for enterprise applications and I could make a whole list of reasons.
    - If you're not using a versioning system, you're shooting yourself in the foot. SVN or Git are mandatory and there are tons of blog posts explaining why.
    - For PHP application testing - PHPUnit, so powerful and popular it's built into some IDEs and many frameworks have a built-in support.
     
    Gray Fox, Oct 19, 2010 IP