Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re^3: What is YOUR Development Process?

by talexb (Chancellor)
on Nov 08, 2005 at 18:36 UTC ( [id://506840]=note: print w/replies, xml ) Need Help??


in reply to Re^2: What is YOUR Development Process?
in thread What is YOUR Development Process?

    What do you consider a "web application"? If I have a CRUD app module (as mentioned elsewhere), I can have multiple instances of that module (meaning one physical copy of the module per server, but multiple instance scripts and template sets so that there are several "apps".

A web application is a piece of software that runs through a web interface.

I do have multiple instances of my application on a server; each one runs for a specific customer on its own web server, using its own database and directory path.

If I were being awfully clever I could have one set of code and multiple sets of data .. but I don't have to be that clever. Yet.

    I'm including CDBI backends, and any other modules we write in the "non-application modules" category. Are you?

Are you talking about a Class::DBI backend? I'm not even sure I know what that is. Can you explain?

    How do you select what files to check out? (is everything by itself, or are they tagged as a set?)

After installing (which means I have read-only copies of all of the files), I check out individual files against a specific issue. That makes them writable.

    What do you do when you're done testing? I have a designer that will edit templates, how would you recommend I get them in on it (they run windows and FTP changes to the servers).

When I'm done testing, I check everything in and ask the Release guy to make a version out of it. That gets passed to the QA person for a smoke test.

We've decided on three levels of builds, development builds (just for me), milestone builds (to mark the completion of a specific set of features and bug fixes) and releases (to mark a milestone that is sufficiently good to give to the customer).

If you have a designer that wants to edit templates, set them up with a userId on your source control system and show them how to check files out and then back in again. If you're on Linux and they're on Windows, perhaps have them ssh in to their home directory on a Linux system, use a command line interface to check files out, then ftp those files home for editting and testing. When they're done, ftp the same files back and check the files in.

Alex / talexb / Toronto

"Groklaw is the open-source mentality applied to legal research" ~ Linus Torvalds

Replies are listed 'Best First'.
Re^4: What is YOUR Development Process?
by swiftone (Curate) on Nov 08, 2005 at 19:13 UTC
    I do have multiple instances of my application on a server; each one runs for a specific customer on its own web server, using its own database and directory path.

    If I were being awfully clever I could have one set of code and multiple sets of data .. but I don't have to be that clever. Yet.

    I'm that clever now, and it seems to be a source of my problems :) It's a beautiful thing in terms of code-reuse, I can have a separate instance of the same base app with a different appearance just by changing a few meta-data lines and dropping in some changed templates (and usually only the navigation templates, the "functional" ones often don't change). However, the fact that any one "application" isn't a thing in and of itself seems to be the primary cause of my confusion.

    Are you talking about a Class::DBI backend? I'm not even sure I know what that is. Can you explain?

    Sorry, I guess that's in house lingo. Yes, that's Class::DBI. The application module just controls the state of the I/O and the templates. It's run-modes will call methods on some non-web-based module that does the actual work. It probably calls on Class::DBI interfaces to our databases, and those interfaces are, of course, modules. Respectively we call those application modules, the data modules, and the CDBI backends.

    use a command line interface to check files out,

    That's been the issue. With the designer not involved in the source control, he FTP files to the server for testing, and edits them on his box (a method _I'd_ find cumbersome, but he's content). He finds connecting to another box to make commits as a cumbersome step, and is fighting it. Since we've failed (from a technical/practical standpoint) at the last two tries to get him in the process, we don't have a strong basis to gain trust from him on this issue.

        That's been the issue. With the designer not involved in the source control, he FTP files to the server for testing, and edits them on his box (a method _I'd_ find cumbersome, but he's content). He finds connecting to another box to make commits as a cumbersome step, and is fighting it. Since we've failed (from a technical/practical standpoint) at the last two tries to get him in the process, we don't have a strong basis to gain trust from him on this issue.

      Whoa, Nelly!

      He's part of the project but he's not involved in the source control? Oops -- software sevelopment disaster in the making.

      Strongly recommend you push to get that changed, pronto. I can't imagine how impossibly difficult the job of running a Production system and developing software would become without a source control system.

      And I'll stop right there.

      Alex / talexb / Toronto

      "Groklaw is the open-source mentality applied to legal research" ~ Linus Torvalds

        He's part of the project but he's not involved in the source control? Oops -- software sevelopment disaster in the making.

        I'm in total agreement...which is why I'm trying to overhaul our development process, which involves posting to Perlmonks to see what other people do since lots of people work where they can't run the webserver on their personal machines, and have more than one worker on the project.

        So please don't stop the discussion...good answers are the only way to FIX my situation.

        However, to soothe your fears somewhat, he is IN the source control, just not well. (Bascially he bugs a programmer to commit his changes). It's a kludge, and annoying, and it will break sooner or later, which is why I'm trying to fix it.

      There are some nice GUI tools for Windows and Mac that handle CVS and SVN interaction. Your designer may not like it, but the downside of not doing it is pretty clear: your app will not work with the wrong version of the templates.
        In particular Tortoise(CVS|SVN) are very usable Explorer integration programs. Nice little colored blobs on each file/folder icon to indicate the status and a right-click menu to do stuff.

        If they never used version control before, of course there is a slight threshold, but these tools are nice once you get the hang of that.

        /J

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://506840]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (4)
As of 2024-03-29 07:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found