#1
  1. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Mar 2016
    Posts
    1
    Rep Power
    0

    Tips for a One Man Dev Team?


    Hello,

    I'm a young programmer with minimal professional programming experience. My employers have asked me to develop a large application involving several components (I'm a one man development team). I know that I am capable of what they're asking, but I am experiencing some hardships that I don't want to continue.

    I am using the following languages:
    C#, PHP/HTML/CSS/JS and BASIC

    Let me just list some problems I experience and any input is helpful:

    1. PHP is hard to structure in a readable way for me. Netbeans consumes a lot of resources and puts warnings in all kinds of unhelpful places. Eclipse is worse. I like the Visual Studio PHP plugin (PHP Tools), but it's expensive and I'm not sure my employers will understand investing in it.

    2. My employers do not know how they want the project to be when finished. They have a broad idea which makes it slightly hard to know what direction to take things in.

    3. It's too easy to start implementing "quick fixes" or hard coding values to make a finished product faster to show my employers while making it harder to work on later. I don't have any sort of standard review process or anyone to review the code besides me.

    4. This is the first time my employers have ever stepped into the world of Computer Programming. My employer asked of me to spend 50-60% of my time working on this project, while maintaining my duties as a Sysadmin. On paper the numbers look like they should compute. In reality, it's very hard for me to jump back and forth between programming and updating computers/checking scan logs/fixing various broken things.


    So, with these things in mind, I'm wondering if anyone else has been in the same position and what are good practices that helped them cope with it and produce quality code?
  2. #2
  3. Lazy Moderator
    Devshed Supreme Being (6500+ posts)

    Join Date
    Mar 2007
    Location
    Washington, USA
    Posts
    16,384
    Rep Power
    9645
    Originally Posted by Skyl3r
    1. PHP is hard to structure in a readable way for me.
    That's something you'll have to learn to work with. Look around to see what kinds of "best practices" are in use. Such as MVC, where you keep models (classes, database stuff) separate from controllers (most of the logic for how the site behaves) separate from views (where you output HTML and such).

    Originally Posted by Skyl3r
    Netbeans consumes a lot of resources and puts warnings in all kinds of unhelpful places.
    It does use memory, yeah. It's an IDE. They tend to do that.

    For the warnings, you can disable the ones you know about but don't need to be reminded of, but otherwise you really should fix what it points out.

    Originally Posted by Skyl3r
    2. My employers do not know how they want the project to be when finished. They have a broad idea which makes it slightly hard to know what direction to take things in.
    That sucks. Focus on being "agile": do stuff expecting that it could change. Prototyping can help too: get a simple version out sooner, let them look at it, and they'll inevitably want some parts of it changed. Repeat until they're happy.

    Originally Posted by Skyl3r
    3. It's too easy to start implementing "quick fixes" or hard coding values to make a finished product faster to show my employers while making it harder to work on later.
    Sounds like you know not to do it, then? Again, go for prototyping: you can do a quick fix or hard code with the prototype, then not when you go for the real version. It does have downsides, like having to do a fair bit more work - but when your client doesn't know what they want then I guarantee that you would end up doing more work anyways.

    Originally Posted by Skyl3r
    I don't have any sort of standard review process or anyone to review the code besides me.
    There's not much you can do about that. Do stuff, then come back to it a few days later and review it?

    Originally Posted by Skyl3r
    4. This is the first time my employers have ever stepped into the world of Computer Programming.
    Uh oh.

    Originally Posted by Skyl3r
    My employer asked of me to spend 50-60% of my time working on this project, while maintaining my duties as a Sysadmin. On paper the numbers look like they should compute. In reality, it's very hard for me to jump back and forth between programming and updating computers/checking scan logs/fixing various broken things.
    That can be a real problem. I actually left a job because I was put into that situation and they couldn't understand why I wasn't working 100% on all of my responsibilities.

    I don't know how best to deal with that, but I would probably tell them up front that you will not be able to work full-time on either part, and that some things will go more slowly because of that. And prioritize things: urgent sysadmin stuff you do now, obviously, but the less urgent stuff you put off a bit until you get some more work done with the new product. Don't be too afraid to delay things because you will have to do that - unless you want constant interruptions.

    Originally Posted by Skyl3r
    So, with these things in mind, I'm wondering if anyone else has been in the same position and what are good practices that helped them cope with it and produce quality code?
    Like I said, I quit when it happened to me: I needed to support an existing application (actually, many versions of it) with feature requests and bug fixes and such, but I was also expected to work on a new product. When some support stuff didn't happen fast enough (and my boss consistently wouldn't help with it) I would get in trouble. When I couldn't show enough progress with the new product (expecting progress with a frontend that physically could not have been developed at the time) I would get in trouble. Things went a bit more downhill from there and then I quit.

    Set rules now and make sure your employer knows that you have to split your time between tasks and that means nothing will be going as fast as it could be? Prioritize. Perhaps set a schedule for yourself where you say "in <time period> I will do the new project and in <time period> I will visit the backlog of low-priority sysadmin tasks". Don't let them push you around to the point where you get frustrated with them.
  4. #3
  5. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Mar 2016
    Posts
    3
    Rep Power
    0
    1. Take a look at OOP or some frameworks, such as Laravel, Codeigniter or even Phalcon (great to use at large applications, where time matters).
    4. If you were programming before, it shouldn't be that hard to get back into. Take a look at some articles about PHP (tutsplus e.g), I recommend articles about PHP security, since you said you aren't seriously experienced, there could be severals vulnerabilities such as SQLi, XSS and even more.
  6. #4
  7. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Jan 2017
    Posts
    2
    Rep Power
    0
    It seems your employer is pretty clueless about the project.

    You will need to plan the project very judiciously, besides doing the daily tasks.

    SOme project management skills must be applied here.

    And yes, agile is the best method just like other said.

    Take a small component, build it and show them.

    Do it regularly and cosistently you will be done with it hopefully.

    Consistency is the key here.

    Also ask the employers what matters most, this project or daily tasks?

    Depending on their answer, ask for a temporary assistance, e.g some software that can make daily task a little less time consuming.

    Good Luck!
  8. #5
  9. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Feb 2006
    Posts
    1
    Rep Power
    0
    As a single developer I know the issues too. A few suggestions.
    - Choose your platform and language to suit the project.
    - For programming tools in PHP I use phpStorm (by Jetbrains) which I find excellent and its not expensive so worth taking a look - they have editors for other languages too (Note: I have no relationship other than customer with Jetbrains!).
    Choose a good platform - I suggest looking at Laravel, and there is an excellent on-line tutorial site called Laracasts.com, which would also help with structure, integrating your front-end (using Vue for instance, also covered on Laracasts).
    Secondly - if the client doesn't know what they want, then almost impossible to satisfy them, and frustrating - so yes, prototyping, agile etc all can help, but plan it, don't add any bells whistles until client agrees the path forward.
    Third - your employers do not understand programming - that's fine, but they need to define in business words what the app should achieve. If you start from there and don't speak "computer" at them they will be much more responsive and you will get better answers from them.
    Good luck!

IMN logo majestic logo threadwatch logo seochat tools logo