Showing posts with label software. Show all posts
Showing posts with label software. Show all posts

Tuesday, December 23, 2008


  1.  When you call us to have your computer moved, be sure to leave it buried under half a ton of postcards, baby pictures, stuffed animals,dried flowers, bowling trophies and children's art. We don't have a life, and we find it deeply moving to catch a fleeting glimpse of yours.
  2.  Don't write anything down. Ever. We can play back the errormessages from here
  3.  When an I.T. person says he's coming right over, go for coffee.That way you won't be there when we need your password. It's nothing forusto remember 700 screen saver passwords.
  4.  When you call the help desk, state what you want, not what'skeeping you from getting it. We don't need to know that you can't getintoyour mail because your computer won't power on at all.
  5.  When I.T. support sends you an E-Mail with high importance, deleteit at once. We're just testing.
  6.  When an I.T. person is eating lunch at his desk, walk right in andspill your guts right out. We exist only to serve.
  7.  Send urgent email all in uppercase. The mail server picks it up andflags it as a rush delivery.
  8.  When the photocopier doesn't work, call computer support. There'selectronics in it.
  9.  When you're getting a NO DIAL TONE message at home, call computersupport. We can fix your telephone line from here.
  10.  When you have a dozen old computer screens to get rid of, call computer support. We're collectors.
  11.  When something's wrong with your home PC, dump it on an I.T. person's chair with no name, no phone number and no description of the problem. We love a puzzle.
  12.  When an I.T. person tells you that computer screens don't have cartridges in them, argue. We love a good argument.
  13.  When an I.T. person tells you that he'll be there shortly, reply in a scathing tone of voice: "And just how many weeks do you mean by shortly?". That motivates us.
  14.  When the printer won't print, re-send the job at least 20 times. Print jobs frequently get sucked into black holes.
  15.  When the printer still won't print after 20 tries, send the job to all 68 printers in the company. One of them is bound to work.
  16.  Don't learn the proper name for anything technical. We know exactly what you mean by "My thingy blew up".
  17.  Don't use on-line help. On-line help is for wimps.
  18.  If the mouse cable keeps knocking down the framed picture of your dog, lift the computer and stuff the cable under it. Mouse cables were designed to have 20kg of computer sitting on top of them.
  19.  If the space bar on your keyboard doesn't work, blame it on the mail upgrade. Keyboards are actually very happy with half a pound ofmuffin crumbs and nail clippings in them.
  20.  When you get a message saying "Are you sure?" click on that "Yes" button as fast as you can. Hell, if you weren't sure, you wouldn't be doing it, would you?
  21.  When you find an I.T. person on the phone with his bank, sit uninvited on the corner of his desk and stare at him until he hangs up. We don't have any money to speak of anyway.
  22.  Feel perfectly free to say things like "I don't know nothing about that computer crap". We don't mind at all hearing our area of professional expertise referred to as crap.
  23.  When you need to change the toner cartridge in a printer, call I.T. support. Changing a toner cartridge is an extremely complex task,and Hewlett-Packard recommends that it be performed only by a professional engineer with a master's degree in nuclear physics.
  24.  When something's the matter with your computer, ask your secretary to call the help desk. We enjoy the challenge of having to deal with a third party who doesn't know anything about the problem.
  25.  When you receive a 50mb (huge) movie file, send it to everyone as a mail attachment. We've got lots of disk space on that mail server.
  26.  Don't even think of breaking large print jobs down into smaller chunks. Somebody else might get a chance to squeeze a memo into the queue.
  27.  When you lose your car keys, send an email to the entire company. People out in Pofadder like to keep abreast of what's going on.
  28.  When you bump into an I.T. person at the grocery store on a Saturday, ask a computer question. We do weekends.
  29.  Don't bother to tell us when you move computers around on your own. Computer names are just a cosmetic feature.
  30.  When you bring your own personal home PC for repair at the office, leave the documentation at home. We'll find all the settings and drivers somewhere.
  31.  Keep it crashing!
Read More

Sunday, November 16, 2008

Proposal to maximize the efficiency of software development process (by Tudor Constantin)

Summary
  1. Goals/targets of the paper
  • Proposing a new and better work system for software development industry
  • Increasing the overall satisfaction of all the actors in the software development industry:
    • The customers gain:
      • Faster delivered software products
      • Better products
      • Lower costs for the same product
    • The software company will have:
      • An objective way to evaluate and reward workers
      • A more competitive and meritocratic work environment
      • More enthusiast, motivated workers
      • Higher work efficiency
      • More satisfied customers
    • The employees:
      • The possibility to advance on the fast track
      • The possibility to earn more money
      • A higher sense of involvement and importance
      • The possibility to do what they like and know best
  1. Motivational patterns
    There are two ways people get motivated: 'away from' and 'toward to.' Both have advantages, and each person tends to use one style preferentially.
    Away from people look at their problems, try to find solutions, and thus move “away from” the problem. Toward people dream up their ideal goals and then find ways to move towards them.
Away from people:
  • Tend to concentrate on problems and do anything to avoid them
  • The bigger the problem, the more motivated is the person
  • Their motivation decreases when the problem disappears, gets solved
Toward to people:
  • They set goals and based on the reward of the goal they do whatever is necessary to achieve it
  • They tend to consider each goal a challenge
  • The bigger the rewards (based on their own system of values) , the more challenging the goal gets, so the bigger the driving force toward achieving it becomes
Common people are affected by both ways of motivation.
All of the above patterns comes into action for satisfying individual needs.

Abraham Maslow synthesized and categorized the human needs in a pyramid called Maslow's hierarchy of needs (see the image below).


On short, the first 4 levels of the pyramid are called deficiency needs or basic needs and the needs from the last level are called growth needs. When a basic need (like security of employment, of health, of body, friendships, etc) is satisfied, it is no longer a motivational factor in one’s life. Instead, growth needs like self-actualization, although they become active when the rest of the basic levels are satisfied, they are enduring motivations or drivers of behavior.
  1. Current motivational environment
The companies which we talk about now thrives to offer to their employees a work environment in which the employee feels protected. They offer employment stability, there are people working in the company since 10-20 or more years ago, they rarely if ever decrease salaries, instead, they periodically increase salaries and there are extremely rare examples of people being fired. All these factors are aimed to make the employee feel safe and protected. On one hand this is a good thing, because the employee will rarely take the risk and go out to seek a new, better workplace. On the other side, the employee will be always satisfied with his workplace, he will rarely tend to improve himself, his quality of work and productivity will remain the same over the entire course of his employance. Even if an employee starts with high levels of motivation, in a longer or shorter period of time he tends to invest less and less effort in his work. If the company is satisfied with his peers low level of work, the company will be satisfied with his low level of work also. There are extreme rare examples of companies whom are able to virtually unlimitedly increase their employees wages in order to keep them ever motivated. This is the case in most of the state workers and state working environment.
  1. The New system
The new performance measurement system
  • The new performance measurement system is based on a credit evaluation of work
  • Each complete task brings to its crafter a number of credits.
  • At the end of the month, each programmer will have gained a specific amount of credits
  • We define 100 credits as the amount of work to be done in one working week (40 hours of normal work) by one medium software developer. So, an average programmer is able to gain 100 credits per week.
  • A developer is able to gain credits by finishing on time his assigned tasks, or by offering consultancy to other colleagues and agreeing with them to the amount of credits he will receive from their task credits.
  • A developer will lose credits based on the following system:
    • If he/she does not finish the task, or terminates it in more than 4 times the original amount of time originally settled
    • If he/she finishes the task on time will earn the whole amount of credits, if the programmer exceeds the original time, the amount of credits earned decreases proportionally to the increasing of the overtime. So for example if a programmer has to do something in one week for 100 credits, he will get only 50 credits after 2½ weeks of work. After 4 weeks of work, he gets nothing.
    • If he/she requests consultancy, the consultant will be able to requests a number of credits for his precious advice.
The new performance based rewarding system
  • Instead of raising the wages based on a timely fashion (there is a raise at every 3, 6 or 12 months), we create a premium fund -- this will grow at the same rate as the previous, periodically, permanent raises.
  • So for example, if we have a team of 10 people, instead of increasing the budget for that team by let’s say 600 EUR by giving them permanent increased wages, we create a monthly premium fund of 600 EUR. Each member of the team will be able to earn a part of that premium fund, based on the number of credits they earned in the current month.
  • Each month, there will be a top of the workers for each team, based on the credits they earned during this period of time. Based on this:
    • the top 20% performers will get 50% of the premium fund (in our beautiful real world 20% of the people of the planet owns 80% of all the money in the world, so a 20-50 rule is rather socialist than capitalist)
    • next 40% performers get 40%,
    • the next 20% get 10% of the premium
    • the last 20% gets nothing – they will have to try harder next month.
Tasks assignment process
  • Due to the fact that each developer normally wants to make the easy, pleasant, and highest rewarded work, we must set an objective way of assigning tasks
  • The task assignment process is based on a bidding system:
  • There are a number of tasks that has to be done in a period of time.
  • Let’s say for example that 5 tasks of different importance levels and different difficulty have to be done in 1 week and we have a team of 3 different people. These 3 people also have different levels of professional skills.
    • The amount of time that the tasks has to be done, sets the amount of credits a developer is able to bid for that bucket of tasks (in our case, each programmer can bid totally 100 credits for all 5 tasks)
  • The team leader/project manager will assign each task based on several factors:
    • The number of credits a developer bided for that task
    • The importance of the task (how important it is to be done strictly on time, bug free, etc ), correlated with the experience and professional reliability of the lowest bidders
The expected logical workflow
  • The programmers will bid high on tasks they don’t want to do and low on tasks they want to do. A developer wants to do a task if he can do the task by himself, if the task is rewarding enough and if he enjoys the process of doing it.
  • Gifted developers will tend to bid low on challenging tasks and of high complexity and will bid high on monotone, boring tasks
  • Less gifted developers will tend to bid low on monotone tasks and high on hard to do tasks.
  • Although, the team leader decides who what does.
  1. Features and benefits
  • The company will have a very dynamic and objective way of evaluating and reward their personnel
  • The programmers will have the possibility to choose what they like and can do, so they will be more enthusiast
  • The employees will be able to determine how much they earn each month – this means more enthusiasm
  1. Conclusion
Now, a programmer can come with a high amount of excuses regarding why he did not finish his tasks on time. From having a bad day/week/month, personal problems, the need to be creative and the fact that you cannot impose targets on creativity , to the lack of experience, or of proper training, these are all common excuses met, not only in the software developing industry but in all kind of production environments. Of course, some excuses are well founded, but most of the obstacles can be easily overcome if the person really wants to. This paper wants to be an blueprint of how to make the people want to overcome the obstacles, and if they successfully do it, they get rewarded for it. It’s a win-win system.
This is not by far a complete document. Here I proposed a system for evaluating only the software developers. There are still team leaders, testers, system designers, architects, managers who’s activities might be well improved and has to be integrated with this working system. Anyway, the hard part is covered, the software developing process can be quantified, the developer can be stimulated to work, to be creative, to learn and improve as fast as he can.
Comments, thoughts, critics and feedback are all appreciated and really welcomed.
Thank you for reading this and keep close, because there is more to come.

Read More