Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister

a question on case/software engineering

by user2000 (Sexton)
on Jan 13, 2008 at 18:46 UTC ( #662204=perlquestion: print w/replies, xml ) Need Help??
user2000 has asked for the wisdom of the Perl Monks concerning the following question:


sorry if this is the wrong node to post... not sure... wanted to know if anyone uses any software engineering tools for estimation, tracking scheduling? which tools? also anything for rapid development in perl? prototypin?

also, curious to know how much people charge per hour/per project in perl? my rates are like $10/hour... is that too less?

thank you, anant

  • Comment on a question on case/software engineering

Replies are listed 'Best First'.
Re: a question on case/software engineering
by fenLisesi (Priest) on Jan 13, 2008 at 19:23 UTC
    Estimation should be independent of whether you will use Perl. See Function point analysis and COSMIC, for example. For project management, we use Rational Portfolio Manager, RequisitePro, ClearCase and ClearQuest, but there are very good libre projects that do what some if not all of these do. I don't do contract work, so I can't give you an hourly wage feedback. The wages are likely to vary wildly from country to country. Cheers.
Re: a question on case/software engineering
by olus (Curate) on Jan 13, 2008 at 20:34 UTC
    I use trac on the projects I manage and develop.
    It has an integrated wiki and ticketing mechanism, and a lot of useful plugins that range from trac management itself, to documentation, ticketing extensions and estimation.
    It provides an interface to Subversion for version control, and allows highly configurable reports by simply editing some SQL queries.
    Its information is stored in an SQLite DB so you can also extend its functionality with some Perl scripting.

    As for the hourly rates, that may vary a lot from place to place and from country to country. You will need to do some math in order to see if at least your wages will allow you to take some vacation, and compare your monthly wage to what you might have when working as an employee somewhere.
      hi, i really liked your idea of using trac. now here is my situation. i am basically a single programmer. i dont have any employees (as of yet). but i have a server, on which i will install trac. is that the right thing to do? but will it handle only a single project or multiple projects? on my computer i have apache group\apache\cgi-bin and some projects in apache group\apache\modperl where i store some of my cgi scripts for different projects. now how to use trac? is there a guide/tutorial of trac for newbies? if you could show me some screenshots of your trac page like how it is organised and stuff then i can get a good idea on how to use it properly. i have been programming for quite some time now. but now i want to stream line my operations a bit more. so that i can keep track as well as analyse my data later. what about keep track of emails and payments made? which software to use for that? thank you for all your help.
        On trac's homepage they have a few links for the documentation that will help you get started as well as getting into some more advanced features.
        I have trac installed on a virtual machine, and manage several projects from the same installation.
        You must get acquainted with trac's command line tool that allows the initial setup and configuration for each project.

        You start by creating an svn repository for each project.
        My installation is at /servers/work/...
        sudo svnadmin create /servers/work/svn/repo/<PROJECT>
        Having created the repository, you can now initialize your trac environment for the PROJECT
        sudo trac-admin /servers/work/trac/env/<PROJECT> initenv
        Also, typing help on trac-admin's prompt will display a list of available commands and how you can set different levels of permissions.

        Do read the TracGuide. They have good documentation.

        I have trac online and work with the permissions in order to grant access to different kinds of information.
        Everyone can see the wiki and the ticket reports, but wiki and ticket creation are granted only to the developers and 'project owners'.
      also wondering how to use subversion properly. thing is i have mutliple projects. i want to keep track of all of them. so basically i have my files local on my computer and i should update the versions on the subversion database on the server (somehow...). also should i keep trac online? or should it be available locally only? sorry am so confused.
Re: a question on case/software engineering
by aquarium (Curate) on Jan 13, 2008 at 21:35 UTC
    contracting rates are a little confusing for starting self-employed contractors. you want to attract work and typically undersell your skills, as you may think you're not as efficient as established contractors.
    you have to keep things in perspective though, and balance the above and other considerations. Contracting rates have to cover holidays, sick, travel, and other expenses, which businesses cover for (non-contract) full time employees. Therefore contracting rates should be higher to compensate. In regards to setting a low rate to attract's difficult to later raise rates with existing customers, which (the rates) may be inadequate. In my opinion you should set the rate reasonably in line with current market going rates. If you think you took longer than reasonable on a project because you're just starting out, then just don't bill all the hours initially.
    if you provide quality work (to an agreed standard) then customers will pay well. Just don't leave yourself open to free lifetime upgrades/bug-fixes.
    good luck.....if you get stuck in code, perlmonks can help
    the hardest line to type correctly is: stty erase ^H
Re: a question on case/software engineering
by blahblahblah (Priest) on Jan 14, 2008 at 06:14 UTC
    If you're interested in estimation, I'd recommend this book: Software Estimation: Demystifying the Black Art. I found it very enlightening, and have effectively used some of what I learned.

    For the rates question, another book recommendation: Getting to Yes. I first heard about this book 5 years ago on perlmonks (software collectives vs. price of organizational license), and ordered it because the amazon reviews were so impressive. It got lost on my bookshelf until this past year when I picked it up, and it's been so interesting and useful that I regret not having read it sooner.


      hi, thankyou for all your replies. the thing is that suppose a customer asks me for a custom job, i end up saying "cost/hour: $10, hours required: 10, total: $100". Now the hours required i select is a wild guess on my part to be honest. the problem is how do i accurately set the hours required. then how do i measure it? (i dont want to use a watch while i work). and once i measure it, if its more how do i tell the customer that i should charge him more?

        The only way to figure that out is through experience. You make your best guess and then learn from experience how good your guesses are and adjust as necessary.

        Joel Spolsky has a product called "FogBugz" that started out as just a bug tracking tool but has morphed into much more. One of the more interesting things is that you can enter estimations of how long you think tasks will take, then as you figure out how long they actually take, there are tools that tell you how well you or your team are estimating. If you can list most of the tasks ahead of time, FogBugz can tell you a reasonable ship-date based on the estimated times and your past history. I've never tried it for single-developer use, but when I asked Joel about it, he said that there are some people trying it.

        In any case, FogBugz has some interesting ideas to borrow from for estimating time.

Re: a question on case/software engineering
by duff (Vicar) on Jan 14, 2008 at 19:04 UTC

    Regarding $10/hour ... I don't know where you are or how much you value your own skills/time or whether you're just getting jobs to learn right now or what. But when I was at University (about 17 years ago) and did consulting work, I charged $30/hour. For me then, every gig involved some sort of travel from where I lived so I factored in wear&tear on my car and gas money and travel time to get that $30. Granted this wasn't perl but it involved some hardware and software work. Just a data point for you to consider.

    Another thing, be sure when you are figuring your time to account for everything that eats your time so you don't accidentally cheat yourself. For instance, if you have a client that likes to talk on the phone, you may end up spending hours talking to them about their application. That's real time that you put your mind to their task. You should charge them for it as well as provide some communication time as part of your estimate.

    Of course, it's also important to be up-front and honest with your clients. If you estimate 10 hours and it ends up taking about 8 hours to get half way through, you need to let them know that the full project is going to take longer than you estimated. Also, you might want to quote a range of time to give yourself some lee-way. Instead of saying "10 hours", maybe you tell them "10-15 hours".

    Anyway ... just some of my thoughts.