1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

[Developers] Before you open your IDE ...

Discussion in 'Off Topic' started by LPH, Apr 23, 2014.

  1. LPH

    LPH Well-Known Member

    I'm just curious how you (a developer/programmer) approach a project. Do you sketch out the flow of files before writing? Do you put together an outline? Do you talk it out with a friend? Do you spend time off the computer to develop the idea or do you stick to the computer screen? Do you create all the files then populate them with PHP, HTML, CSS? What is your creative process?

    I've been undisciplined regarding my approach and would love to know how others approach a project. I'd love to see responses from @Chris D, @xfrocks, @Waindigo, @Bob B, @Kier, @Mike .... Geesh .... so many great developers on here so I shouldn't try to name them all (it would take up a full page).

    Anyway ... do you just open an IDE and let it flow ... then edit from that point ?
  2. Brogan

    Brogan XenForo Moderator Staff Member

    I wasn't asked but as you've had no responses...

    I usually make notes first, outlining what it is I want the add-on to do, any potential issues, any items of note with regards to how it will function, etc.

    The first step is of course to actually create the add-on in the ACP.

    Then I start doing the options and style properties, admin templates, admin template modifications.

    Then I do the templates and template modifications.

    Then I start on the PHP, listeners, etc.

    It's an iterative process though; some things have to be done in sequence and there is a lot of back and forth between the PHP and ACP/templates, etc.
    LPH and Bob like this.
  3. Chris D

    Chris D XenForo Developer Staff Member

    I am also undisciplined in my approach but I do plan. It's not necessarily on paper, but when I start I generally have a fair idea of what I'm going to do and the order I'm going to do things.
    LPH and Bob like this.
  4. LPH

    LPH Well-Known Member

    Hi Brogan - I didn't mean it to be an exclusive - and you have definitely provided me with lots of insights.

    I'm actually marking your answer for when I dive into the XenForo side.
  5. LPH

    LPH Well-Known Member

    Cool !

    Do you change the order with different projects?
  6. Bob

    Bob Well-Known Member

    Do you sketch out the flow of files before writing? Not necessarily the files, but the project, yes.. I flow chart processes on just about everything I do (either on the white board or scratch pad notes).

    Do you put together an outline? For large projects yes, for smaller ones no.

    Do you talk it out with a friend? I can't think of anything I've coded professionally that I've not talked with others about.

    Do you spend time off the computer to develop the idea or do you stick to the computer screen? I spend a lot of time on the white board, in meetings, sketching notes etc.

    Do you create all the files then populate them with PHP, HTML, CSS? No, I create a file when I need it and they get methods/functions added as needed when I am working on specific functionality. Same with DB tables, Templates, phrases, options, permissions etc..

    Do you just open an IDE and let it flow ... then edit from that point ? I always have a plan in place before a single line of code is written.

    What is your creative process? a TON of research and I ask people a lot of questions (just ask @MattW @Sheldon as I bug them all the time wanting enduser feedback).
    LPH, MattW and Brogan like this.
  7. LPH

    LPH Well-Known Member

    @Bob B - wow. That post is inspiring !!
  8. Brogan

    Brogan XenForo Moderator Staff Member

    If I ever get stuck on a concept, implementation, piece of code, etc. I find that I usually hit on the answer when I'm either running, in the shower (easy ladies), or just about to fall asleep.

    The problem is I don't have a notepade/tablet with me at any of those times so I have to try and remember until the next time I do :D
    LPH, MattW, Amaury and 2 others like this.
  9. LPH

    LPH Well-Known Member

    Time to get you a water-proof tablet for the shower ;)

    PST - I believe the authors of the book "hard drive" wrote Bill Gates didn't shower but later was convinced to take baths - so that he could keep his notes close... ;)
  10. xfrocks

    xfrocks Well-Known Member

    Normally I will discuss the requirement (with a customer or with myself) until everything is clear, perform tests to make sure all features are possible/reasonable to implement. After the scope is confirmed, I won't work on it for 3 or 5 days, only think about it whenever I have time (I have other full time job), take note, do more tests. For big project, I do have to write it down to break the tasks but most of the time I keep the structure in my head. When the time comes, I use my helper to create the foundation of the add-on (directory structure, CVS, database schema, admin scaffolding, common phrase and templates) then other stuff.

    Mostly nope. I do that sometimes with tiny projects though :D

    Hope this helps :)
    LPH and Bob like this.
  11. MattW

    MattW Well-Known Member

    I find myself doing the same. Taking a step back and trying to not think about it for a while usually means I come up with what I'm trying to do.

    LPH and Bob like this.
  12. Shamil

    Shamil Well-Known Member

    Most of my recent work has faced significant architectural challenges experienced by refactoring code written for a particular purpose to a new, framework-like, modular system- whilst maintaining compatibility with older systems.

    I use endless maps on whiteboards to sketch out, right down from table schema to class names with method names. I generally follow TDD principles to develop my code - whilst I am not absolutely sold on unit test, I certainly don't write code to be unit tested.

    Where does it all start for me? The requirements gathering stage. I am not primarily involved with this, nor am I involved in any feature-planning. I have a large overview of the integration of smaller components of the software.

    I consider the changes which are going to be made, the greater effects to the system and anticipate any regressions.
    LPH likes this.
  13. LPH

    LPH Well-Known Member

    TDD or Test Driven Development has interested me but I'm no where near ready for it. My hat is off to you.
    Shamil likes this.
  14. digitalpoint

    digitalpoint Well-Known Member

    Like some others, I freestyle it (no plan/diagrams or anything else other than what's mapped out in my head). :)
    LPH and Jeremy P like this.

Share This Page