Jump to content


Check out our Community Blogs

Register and join over 40,000 other developers!


Recent Status Updates

View All Updates

Photo
- - - - -

PHP Advice,Coding, Project Manager, Tools, Etc

php management team programming

This topic has been archived. This means that you cannot reply to this topic.
24 replies to this topic

#1 Pally

Pally

    CC Devotee

  • Senior Member
  • PipPipPipPipPipPip
  • 413 posts

Posted 24 April 2013 - 09:36 AM

Hey thanks for your time,

 

I need some advice from anyone with working experience as managers or anyone who works as a team is good,.

 

I'm working for a small company and right now I'm the only programmer doing PHP on a Customer Relationship Management.They want to expand what I've been doing and want me to hire unpaid interns to manage since we have a lot to do but I don't know much about managing a team in the programming world since I'm just fresh outta college etc.

 

I'm under the impression I'll obviously need to create a good common framework for everyone to code in and some way to divide the workflow, advice?

what framework should I program in for PHP that is professional and free? How to manage the team? Etc. Just your practical advice from real world experience.

 

 

as of now I've done all the development on linux using a simple plain text editor, I was just an intern and the work was not very crazy.

 

 

Thank you!


Edited by Pally, 24 April 2013 - 09:38 AM.

Your Friendly Neighborhood Pally

#2 KodeKool

KodeKool

    CC Addict

  • Advanced Member
  • PipPipPipPipPip
  • 276 posts

Posted 24 April 2013 - 10:31 AM

hmm. as far as frameworks go. there's quite a few out there. I've been doing a lot of stuff using CodeIgniter. an MVC framework. and personally I find it really straight forward, easy to use. and the documentation is extremely amazing. though the trade off being that with codeIgniter alone your Models tend to have a lot of code. but they fixed that problem with their ORM library called DataMapper. this enabled the models to be simplified immensely. often going from 300+ lines on big projects to less than 15.

 

Also. I just graduated from college. any tips for a guy looking to break into the industry? I.E what  I should be studying and brushing up on as well as anything that might help me further along down the road?


~A program will always do what you tell it to do, and seldom what you want it to do~

Check out my latest PHP tutorial


#3 WingedPanther73

WingedPanther73

    A spammer's worst nightmare

  • Moderator
  • 17757 posts

Posted 24 April 2013 - 11:11 AM

Well, if you're a book kind of person, here are a few books that I've found very helpful, even when working solo:

http://www.amazon.co...words=manage it

 

http://www.amazon.co...eywords=ship it

 

http://www.amazon.co...ords=release it

 

I think I've reviewed them on my blog here, too. The problem you're facing isn't a "framework" problem, which is a design consideration, but an "organization" problem: How do you bring new developers onto your project, get them up to speed quickly, and get productive work out of them?

 

A couple of things that will be important steps towards that:

1) Have a version control system with code reviews. Early on, you may have to do most of the code reviews, but better team members should be able to step up to that responsibility.

2) Have integration testing. When checking code in, other people are, too. If someone makes a change that you were counting on working one way in your work, the two changes combined will fail. Having solid TDD practices will help with this.

3) Design! Having specifications for people to code against means their code can be tested and verified.

 

I know from experience that when I work solo on a project, I can be a lot sketchier with my designs, because I can work out the details as I code. When I had to design two interfaces to one area of functionality, and was only going to code one of the interfaces, things changed a LOT. I had to be certain the database backend was going to work for both, and that the way they laid down data in it was going to be consistent. A solid design and a couple meetings with the other developer were key to making that happen smoothly, which brings us to:

 

4) Meet regularly. It doesn't have to be for very long, but I've had weekly meetings, biweekly meetings, and daily meetings. With biweekly meetings, you completely lose track of what other people are doing. Major tasks get completed that weren't even on the radar two weeks ago. Weekly meetings are pretty decent, but can still leave you not sure what to do if you finish your work too quickly. Daily meetings let everybody quickly (how much is there to say since yesterday?) report on what was accomplished, what your goals are for the day, and what you're stuck on. It also lets you quickly assess who's progressing faster, and who needs more assistance: a major concern if you have a few 3 month interns.


Programming is a branch of mathematics.
My CodeCall Blog | My Personal Blog

My MineCraft server site: http://banishedwings.enjin.com/


#4 Pally

Pally

    CC Devotee

  • Senior Member
  • PipPipPipPipPipPip
  • 413 posts

Posted 24 April 2013 - 11:46 AM

Kool Code, I think if your graduated then you probably know as much as needed to get going in the industry, except maybe a consistent and clean coding style if you don't have that then brush up on making everything clear i.e. no need for commenting if your variables are named clearly etc. If I had to make another recommendation it would be learn how to dress and speak professionally and finally put together some code and portfolio and bring your laptop to the interview and give them a demo and show them how you code that's how I basically got hired on the spot (and that was codecall users recommendations it works).

 

Panther, This is exactly what I was looking for kind of info, do you have a recommended version control system, should I used github? I'm handling private info keep in mind. I think all your other tips are perfect and I'll be working in the same room with them it should be easy to handle 2,3,4. Maybe I'll have a 15 minute session each morning talk about where we stand and what were doing today etc thus we can express concerns (well how are you outputting that information...) etc

I'm thinking about a nice IDE everyone can use or framework, you said thats not my problem I get that but do you have a recommendation of can everyone use whatever they want?

 

Thanks again everyone!


Edited by Pally, 24 April 2013 - 11:46 AM.

Your Friendly Neighborhood Pally

#5 KodeKool

KodeKool

    CC Addict

  • Advanced Member
  • PipPipPipPipPip
  • 276 posts

Posted 24 April 2013 - 11:49 AM

well i kinda dress like this bro in my avatar here :P so I could use a brush up on tying a tie :P however my portfolio is well on it's way. thanks for the tips :)


~A program will always do what you tell it to do, and seldom what you want it to do~

Check out my latest PHP tutorial


#6 lespauled

lespauled

    CC Leader

  • Expert Member
  • PipPipPipPipPipPipPip
  • 1360 posts

Posted 24 April 2013 - 12:18 PM

I learned more from my first job than I did throughout my entire time in college.  It was eye opening. Programmers that graduate are extremely green.  Understand that you will be dealing with people that may be even more dangerous than someone that never programmed, because they believe they know it all, when they really know nothing.  :biggrin:

 

Kool Code, I think if your graduated then you probably know as much as needed to get going in the industry, 

 

 

Within a few days or weeks, you will find the interns that genuinely want to learn.  Teach them.  Work WITH them to show them how to do things correctly.  Some will grasp some things, and others will grasp others.  Have patience and guide them when they get frustrated.

 

I had several interns working for me.  I looked at as a challenge.  I had to groom them to be successful in their career.  Understand that you will be dealing with talent as well as personalities.  
 
One caveat. Don't demand respect, command it by your actions and abilities.

My Blog: http://forum.codecal...699-blog-77241/
"Women and Music: I'm always amazed by other people's choices." - David Lee Roth

#7 WingedPanther73

WingedPanther73

    A spammer's worst nightmare

  • Moderator
  • 17757 posts

Posted 24 April 2013 - 12:36 PM

Panther, This is exactly what I was looking for kind of info, do you have a recommended version control system, should I used github? I'm handling private info keep in mind. I think all your other tips are perfect and I'll be working in the same room with them it should be easy to handle 2,3,4. Maybe I'll have a 15 minute session each morning talk about where we stand and what were doing today etc thus we can express concerns (well how are you outputting that information...) etc

I'm thinking about a nice IDE everyone can use or framework, you said thats not my problem I get that but do you have a recommendation of can everyone use whatever they want?

 

Thanks again everyone!

I could probably start a war over the version control system issue. With that said, I would NOT use github (it's not internal to your network). You could, however, use Git, Subversion, or Mercurial as good solutions. Git and SVN (Subversion) both work on the idea of having a central server that maintains all revision information. There are a bazillion configuration options, but the key consideration you'll want to keep in mind is backing up the server, and letting your people work. Mercurial is a distributed revision control system, which gives you a lot more flexibility (like having an official "release" copy on one server, an "snapshot" copy on another server that does nightly builds, and two people working on related code can pass changes back and forth between each other without touching either server), and a lot more potential confusion/headaches.

I have a certain fondness for Mercurial, simply because on of my favorite wiki programs (http://hatta-wiki.org/ ) uses it, and because I can set up multiple copies of the code on my local machine for throwaway experiments. Feel free to disagree :)

For the IDE, remember we're talking about PHP. A good syntax highlighting editor and a properly configured PHP installation are the two things you really need (along with IIS/Apache/whatever as a server). Towards that end, since the PHP configuration may be part of what you're controlling, I would pick a consistent choice of OS and server for development, and have testing use whatever is likely to muck you up.

 

I'm a fan of jEdit for an editor, but it is based on Java with all the headaches that can flow from that. On the plus side, it has a TON of plugins and extremly strong regex support. Geany is another nice option, which which will also build a symbol list of functions/classes/etc it can detect in your code. To be honest, I'm a fan of giving your coders a few options and letting them run with whatever makes them comfortable (if one uses VIM, and the other EMACS, but both get the job done, who cares?). I flip around between jEdit (90%), Geany (9%) and VIM (1%) based on my needs of the moment. One word of warning: flipping between editors can have its own problems. jEdit and Geany work with regular expressions slightly differently, and I use them a LOT. That's just one example.

 

If you're working with databases, SQuirreL SQL Client and DBeaver are good options for testing queries and database state. All the tools I've mentioned are FLOSS, so no cost to your company.


Programming is a branch of mathematics.
My CodeCall Blog | My Personal Blog

My MineCraft server site: http://banishedwings.enjin.com/


#8 Pally

Pally

    CC Devotee

  • Senior Member
  • PipPipPipPipPipPip
  • 413 posts

Posted 25 April 2013 - 05:34 AM

I could probably start a war over the version control system issue. With that said, I would NOT use github (it's not internal to your network). You could, however, use Git, Subversion, or Mercurial as good solutions. Git and SVN (Subversion) both work on the idea of having a central server that maintains all revision information. There are a bazillion configuration options, but the key consideration you'll want to keep in mind is backing up the server, and letting your people work. Mercurial is a distributed revision control system, which gives you a lot more flexibility (like having an official "release" copy on one server, an "snapshot" copy on another server that does nightly builds, and two people working on related code can pass changes back and forth between each other without touching either server), and a lot more potential confusion/headaches.

I have a certain fondness for Mercurial, simply because on of my favorite wiki programs (http://hatta-wiki.org/ ) uses it, and because I can set up multiple copies of the code on my local machine for throwaway experiments. Feel free to disagree :)

For the IDE, remember we're talking about PHP. A good syntax highlighting editor and a properly configured PHP installation are the two things you really need (along with IIS/Apache/whatever as a server). Towards that end, since the PHP configuration may be part of what you're controlling, I would pick a consistent choice of OS and server for development, and have testing use whatever is likely to muck you up.

 

I'm a fan of jEdit for an editor, but it is based on Java with all the headaches that can flow from that. On the plus side, it has a TON of plugins and extremly strong regex support. Geany is another nice option, which which will also build a symbol list of functions/classes/etc it can detect in your code. To be honest, I'm a fan of giving your coders a few options and letting them run with whatever makes them comfortable (if one uses VIM, and the other EMACS, but both get the job done, who cares?). I flip around between jEdit (90%), Geany (9%) and VIM (1%) based on my needs of the moment. One word of warning: flipping between editors can have its own problems. jEdit and Geany work with regular expressions slightly differently, and I use them a LOT. That's just one example.

 

If you're working with databases, SQuirreL SQL Client and DBeaver are good options for testing queries and database state. All the tools I've mentioned are FLOSS, so no cost to your company.

Yeah I guess its the question if I want it central or non-centralized, central seems simple, non-central seems potentially more convenient or confusing if I get several clones I'm cluttering up(I tend to hoard), I'll be debating this I suppose over the coming days. I'll be examining Git, and Mercurial in debt then probably one just from a first glance.

 

SQuirreL SQL Client and DBeaver, is this the same kinda thing just better than phpmyadmin(which is all I've been using lately)? 

 

 

I'm getting some software they outsourced in the past so it may be in oracle, or microsoft's sql server, I'm unsure yet hopefully its just mysql to make things consistent, but in the case those people in xyz country did use something else it's probably best I move the database over huh? but our hosting supports all so its not the end of the world.

 

IDE, ok yeah I don't see why it would matter to much either I was just reading online articles that say this that and the other with regards to my concerns, I'll stick to some free stuff thats decent for the task at hand.

 

 

Thank you

 

well i kinda dress like this bro in my avatar here :P so I could use a brush up on tying a tie :P however my portfolio is well on it's way. thanks for the tips :)

 

lol, and another tip, network with your peers its a small world I'm working with friends from college that I never expected to run into again :D


Your Friendly Neighborhood Pally

#9 WingedPanther73

WingedPanther73

    A spammer's worst nightmare

  • Moderator
  • 17757 posts

Posted 25 April 2013 - 05:51 AM

SQuirreL/DBeaver are both Java based. One of the tricks I sometimes do is run a query in SQuirreL, select the results as HTML, copy them into jEdit, and run a Macro to reformat it for a wiki/HTML web page. I've also taken content I needed, copied as INSERT...VALUES statement, tweaked a few values for what I need, and run the script to create 20 new records based on the old one. PHPMyAdmin is nice, but it's not what I would consider a full SQL tool. They can connect to Oracle, SQL Server, or MySQL with no issues other than downloading the appropriate JDBC library.


Programming is a branch of mathematics.
My CodeCall Blog | My Personal Blog

My MineCraft server site: http://banishedwings.enjin.com/


#10 Pally

Pally

    CC Devotee

  • Senior Member
  • PipPipPipPipPipPip
  • 413 posts

Posted 25 April 2013 - 03:23 PM

SQuirreL/DBeaver are both Java based. One of the tricks I sometimes do is run a query in SQuirreL, select the results as HTML, copy them into jEdit, and run a Macro to reformat it for a wiki/HTML web page. I've also taken content I needed, copied as INSERT...VALUES statement, tweaked a few values for what I need, and run the script to create 20 new records based on the old one. PHPMyAdmin is nice, but it's not what I would consider a full SQL tool. They can connect to Oracle, SQL Server, or MySQL with no issues other than downloading the appropriate JDBC library.

Okay the boss wants to know everything will need in the office to do our job well, any final recommendations? Thanks again!


Edited by Pally, 25 April 2013 - 03:24 PM.

Your Friendly Neighborhood Pally

#11 WingedPanther73

WingedPanther73

    A spammer's worst nightmare

  • Moderator
  • 17757 posts

Posted 26 April 2013 - 05:09 AM

I'd recommend having some sort of wiki for sharing information. I use tiddlywiki's at my job for storing project-specific notes, but it only works well for single users. I've used hatta-wiki before, and other FLOSS wikis are also available that work well. They vary wildly in how easy they are to set up, use, etc.


Programming is a branch of mathematics.
My CodeCall Blog | My Personal Blog

My MineCraft server site: http://banishedwings.enjin.com/


#12 Pally

Pally

    CC Devotee

  • Senior Member
  • PipPipPipPipPipPip
  • 413 posts

Posted 26 April 2013 - 03:07 PM

I'd recommend having some sort of wiki for sharing information. I use tiddlywiki's at my job for storing project-specific notes, but it only works well for single users. I've used hatta-wiki before, and other FLOSS wikis are also available that work well. They vary wildly in how easy they are to set up, use, etc.

 

I appreciate all of you help with these oppertunities I am working out,

 

Personally I am not necessarily a pro at the best coding practices, I mean its pretty clean but I'm not sure if there is a better standard I could be using, and if and how I should work to enforce this among my peers, I wonder if you have any insight into this. ** if I know to even approach writing an API manual efficiently, I guess I'm just a bit of a perfectionist and want everything perfect lol

 

All of your insights I have so many great ideas that they led me to. I'm very excited :D

 

PS: I never said thanks for the book recommendation yes that's exactly the kinda of person, I am love books, I've only skimmed there outline briefly but wanted to touch on that regard. Will be reading at least one of them soon.

 

oh and the wiki, brilliant this is so useful in so many ways, I can keep track of so many things and free up time from having to re-explain stuff I would have totally overlooked this. 


Edited by Pally, 26 April 2013 - 03:07 PM.

Your Friendly Neighborhood Pally




Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download