Hourly Rates and Flat Rates for Software Development Work

I have heard many times from my customers that “My rates can fluctuate”. Its something they don’t like and would like to keep it consistent.

OK, I understand their point of view but they have to understand mine as well. I tell them a real life story but they dont seem to agree. Here is the story:

“You can go to the same mechanic for the same job, changing the oil in your car. Take 2 cars with you. Car 1 is a honda civic in good condition and not super old. Car 2 is a BMW 330 ci  in good condition. Pay up after he is done with Card 1. Take in Car 2, do the same job and pay up” Both jobs will may be take around the same amount of time. Which one do you think you will cost more ? (If you have owned a German Car, it would not take a scientist to figure this one )

My clients seem to say that a rate is a rate. For easier job I can do the job in less time and for a tougher job I need more time. My clients want to think of software development activity as a measure of time. What they seem is “The time spent on learning a technology, the time spent on gaining experience over a certain technology and the competition available in the market”.

For example, I do iOS app development for $70 / hour, I think its very specialized software development that requires learning progrmming language, getting used to the integrated development environment, knowing about various programming artifacts and basic software engineering principles, I cannot charge $70/hour for “wordpress website development”.

Being an hourly wordpress website development cannot be the same as androiod application development.  Getting my point ? What about Data Entry ? Why is that a low paid hourly job ? If I am given the same rate for data entry as I am given for Smartphone app development; heck I will enter data all day and all night !

I guess I start asking more questions than providing answers once I start to get angry internally and have negative feelings about a topic 😀

So please do not be that client and dont be quick to judge that I am trying to rip you off ! because I am not !

 

 

 

 

Leave a comment

Filed under Uncategorized

Is Naisss !

Pretty sweet Daughtry Song. Found as a backgroud track of “CS 1.6 Sniper Ownage Videos” . Yeah call me if you dont know what that is ;).

Here are the chords assuming you are pro at Em A G Bm D. The scale can be adjusted by moving down a couple frets  :

Intro
Em A Em A

Em                         A
A single rose left to remember
Em                                 A
As a single tear falls from her eye
Em                       A
Another cold day in December
G                  A      
A view from the day she said goodbye

Em                           A
It seems it’s only been a moment
Em                                   A
Since the angels took him from her arms
Em
She was left there
A
Holding on to their tomorrow
G                A
But as they lay him in the ground
G                   A
Her heart would sing without a sound

Bm                                      D
For the first time you can open your eyes
Em                   
And see the world without your sorrow
G                                A
No-one knows the pain you left behind
Bm                              D
Or the peace you could never find
     Em
It’s waiting there to hold and keep you
G
Welcome to the first day of your life
                    Em    A   Em       A
Just open up your eyeeeeees,  eyeeeeees

Em                            A
A single lifetime waves behind her
Em                        A
As she draws her final breath
Em                           A
Just beyond the door he’ll find her
G              A
Taking her hand he softly says

Bm                                      D
For the first time you can open your eyes
    Em                   
And see the world without your sorrow
G                               A
No-one knows the pain you left behind
Bm                              D
Or the peace you could never find
     Em
It’s waiting there to hold and keep you
G
Welcome to the first day of your life
                    C
Just open up your eyes
                Em
As I lay down tonight
      D/F#   G
Safe on the other side
C                A
No more tears to cry

Bm                                      D
For the first time you can open your eyes
    Em                   
And see the world without your sorrow
G                               A
No-one knows the pain you left behind
Bm                              D
Or the peace you could never find
     Em
It’s waiting there to hold and keep you
G
Welcome to the first day of your life
                    Em    A   Em       A
Just open up your eyeeeeees,  eyeeeeees
Em    A   Em       A
Eyeeeeees,  eyeeeeees

Leave a comment

June 26, 2012 · 2:08 pm

Vacation Work and Gambling Rant

Please dont tell me that “I am extremely tired” after you are back from a cruise vacation. I mistakenly thought that you had a great time and are now refreshed and energized after quality time with your family. Lol ! No hard feelings for the cruisers just something I was thinking about, as I hear this alot.

Also dont tell me with a sad face that “Shows were good in Vegas” so yeah the vacation was alright. Its OK and I definitely understand if you tell me that they took all your gambling money in 30 minutes and that totally sucked 😛

– Cheers

Leave a comment

Filed under RANTS

USE CASES IN UML AND OBJECT ORIENTED PROGRAMMING

When I took a Object Oriented Programming Class in my second semester in college, I was not able to understand a lot of concepts essential to software design and architecture. I was new to the concept of Classes, relationships between classes, API and exposing methods and attributes. Of course, that’s why I was taking the class. I could program some fundamental programs in pascal before this and i loved global variables (the fact of the matter is I still love them but probably somebody who is debugging a problem or a bug in my code, probably would not like them). So coming back to the point, the first concept in any Software development methodology is a requirement. Business Analysts would talk to the potential customers and figure out a bunch of requirements. Software Architects or Software Designers would view the requirements and model the requirements in a way that would make sense to a Software Developer. Sometimes a business analyst would be talking to the customer and doing a design, there are no hard and fast rules. The main purpose of UML is to specify requirements and design in a standard format so in a team other people can relate to the requirements and design and write efficient code. In my software development experience, good requirements mean 50% less work and also it would save the rework and costs in terms of testing time, and no hacks in code. Overtime a piece of code gets modified multiple times by different people who like to code differently, so more clear the requirement is, most relevant
code you can write to begin with.

What is a use case ?
I would not go too much technical detail on exactly how it is defined. To me its a functional requirement and that’s what I have read in books as well. Functional requirements of a system can be described using Use cases and Use Case Models.By functional requirement I mean that we would use a USE CASE to describe a feature of the system we are trying to design. It will usually involve describing an event that will happen as a result of user or system doing something.
If Use case defines a requirement then a Use Case Model pretty much describe the overall working of the system by showing a collection of requirements and the relationships that exists between them. Lets say we are designing

Let me give you an example, you love Facebook right ? Right or wrong ?? he-he, lets say you have to describe the event of “Sending a friendship request to another member” how that will happen ? There are some business rules that will govern how. First thing is the person browsing Facebook needs to be logged in, second thing is you should be able to find the profile where you want to send the friendship request to. Then there should be a button or a link or some User Interface that the person would be able to click to be able to send a friendship request. After the button or link is clicked, Facebook will do its thing and display if it was able to send your friendship request or “Sorry No Donuts for You”, I guess ORKUT did that, not guessing I am pretty sure ! So in the scenario I just described there are a bunch of components that will make up the use case and I will describe them as I go.

The Aim or Goal or Description of the Use case is to be able to send a friendship request to another member of Facebook. You can give it a short and sweet name and be fancy like “Sending a Friendship request”. So the name/title of the USE CASE would be “sending a friendship request” and the goal/aim/description would be “The system/website/Facebook should be able to send friendship requests to other members with a profile on the system/website/Facebook. So now you know what is the title and description (description is a wordy extension of the title). Next thing would be to identify who is initiating this behavior of the system and by doing what ? A user is initiating the action by clicking on a link. The Primary actor/stake holder of the use case is the “USER” and “Clicking the Send Friendship Request Link” is the Trigger. After clicking since the system/Facebook will do something and say whether it was successful or not and actually send the request “SYSTEM” can be thought of as Secondary actor. So now we are down 5 trashy terms (Title,Description, Primary Actor,Secondary Actor and Trigger). Now there are some conditions that should be fulfilled before the Action/Description can happen like the person sending the friendship request should be signed in to Facebook and be able to locate the profile of the person where the request would be sent and be able to click on the correct link. These are the Preconditions of the Use Case. So the conditions that should be fulfilled before the scenario described in the use case are its preconditions. Usually they can be represented as a numbered list on a Use Case. Similarly after the scenario described in the USE CASE is completed, something will happen that would be the POST CONDITION. Either the friendship request is sent or Sorry No Donuts for you :P. Now comes the main flow or happy scenario or the USE CASE which would define a sequence of events and action that would describe the Use Case. For example

1. User A found User B on Facebook and is able to stalk
2. User A clicks on the “Send Friendship Request” link
3. System sends a friendship request to User B and also sends a notification email

This scenario is happy because whatever we are trying to achieve we did so successfully. Similarly since the system will not be happy all the time, you can have an alternate scenario. Alternate scenarios are also called USE CASE Extensions

1. User A found User B on Facebook and is able to stalk
2. User A Clicks on the “Send Friendship Request” link
3. System was unable to send a friendship request due to some error and displays a message “Sorry No donuts for you since cookies are disabled in the browser !”

I would recommend text from UML Distilled and anything written by Martin Fowler on this subject.

Leave a comment

Filed under Software Design

This is an old old Indian Song. I recently heard a cover where Sam Hasan performed and I really liked his performance. Below is my version and The chords are G, D , C and Em. Hope you like it.

Ghazab ka hai din – Asad Siddiqi

Here is the Cover from Sam Hasan:

Leave a comment

May 22, 2012 · 3:23 am

God gave me you Cover – David Barnes

I like the version of song by Blake Shelton but I heard this one from David Barnes and I like it much better than the Blake Shelton’s version. Beautiful Lyrics !

Leave a comment

Filed under Uncategorized

Sequencer Cover Majboorian

The orignal song is from one of my favorite bands “The Sequencers”. For some strange reason I really like this song and this is my cover version ! Let me know how you like it

Majboorian Cover – Click Here to Play

Here is the orignal and I just love it !

Leave a comment

Filed under My Recording