Saturday, March 10, 2007

What you need to be a Flasher

I know a number of people who want to be Flashers. Also there are many people who would like to know how is to be working on this line. Here is my perspective:

What you need:

1. Know what Flash is about. You can only achieve excellence if you know what Flash can do and eventually try to push its limits. It's basically visual programming, an unique mixture between let's say C# and Paintbrush.

2. Love Flash. In my opinion, you are a Flasher if you are a good programmer with some aesthetic sense or a good animator. For programmers check this.

3. Know how to interface Flash with third party technologies (if a programmer). Flash by itself can do only so much: video/audio, games, animations, simulators, presentations and such. If you really want to get to the heavy stuff, you have to connect it to servers and make disseminated data reach people. Of course you can treat server-side as a black box, still I consider preferably to know some server side insides if you are to push those limits. No one else will do it as server guys don't really understand Flash that well. Flash has yet to make known its capacities, and here you come into place.

Thursday, March 8, 2007

Applications possible with Flash

Too many people think Flash is for sites and slide shows. Here's a short list of things you can do using Flash and Flex. I should mention that everything here is capable of running in a browser or as a desktop application.

Multimedia CMSs
Video delivery: news, video sharing

Live data delivery
Stocks, secure financial data

Management
Project management
Accounting

Simulators

Device interfaces
Visual/Audio interfaces that you can use from PDAs to sea ships

Security systems
Remote recording, motion detection, face detection and recognition, complete user and administrator interface.

Virtual life systems
Social networks based on video, audio and text.

Games
Multiplayer
2D and software 3D

I'll add to this list in time and possibly add some links for every entry.

Sunday, March 4, 2007

Employees evaluation

Our company began a process of establishing an employee evaluation system on a trimester basis. I'll come back to it when it will be completed and tested, until then I'll just state my view.

Why?
Why does a company need this in the first place? Because you want to position and pay people right. In order to do that, you need a fair system that includes all important aspects to the company and eliminates most subjectiveness.

How?
I see the employment as a transaction. You give something to the company and you get something in return. Therefore an evaluation should point out how valuable you are to the company in the short and medium term. In other words, how much money your involvement brings.
Of course it's not that easy to calculate that and give a percent. Plus, people need some stability.
Large groups do that, cumulate individual dynamic energies and acts upon the median result.
Next, you have to figure out some criteria. Let's see how you can bring money:
1. Contributing to your current money maker project.
2. Contributing to the well being of the team. That means supporting other people and activities.

1. How to evaluate work? By the amount of effort you put in. Effort is Time x Complexity. Hence, our first two criteria.
What if you come up with an idea that saves resources and thus making the project more profitable? This is called Innovation, our third criteria.

2. What can you do to help your team work efficiently? Make the results of your work easy to use. Keep in mind that an easy to use product will save resources multiplied by the number of times involved. I'll name this Quality of work.
Most times you need to work together w/ the team to make individual parts work together. Therefore we have Availability. Sometimes the team needs working solutions and organizing. Let's call it Involvement.

Let's summarize:
Time
Complexity
Innovation
Quality of work
Availability
Involvement

What you can do with these? You can give them a mark for a period of time (several months). Next you have to think how important is every criteria in the great purpose of making money. The difference between the results of two salesmen on the same day can translate to several thousands work hours in production. Same with managers. A smart approach can make serious profits. If you go for a weighted average you need custom calculus for every position. Criteria above should be weighted differently.

Let's discuss similar positions.
We got Bill that works pretty standard and Dick that works twice as fast but only half the time. They should get equal pay right? Excluding the Availability criteria, the answer is yes. Thus Time & Complexity should mix together (Effort?). Let's consider normal time (marked with one unit) over normal complexity (also an unit). This should be the base for our future calculations. If someone works usually 1.2 complexity in the interest of the company, he should have 20% bigger paycheck.

Innovation. This one is tricky. One innovation can save 2 hours of normal work, another 2000. If we would be to calculate sums, we should add 2000 o the work of a person over a semester, we would have 1056+2000. He saved the work of two other team members! If you would have to get an average mark for the evaluation mark, the maximum weight for innovation should be twice that for the effort. With an usual value of zero, innovations are a rare thing.

Quality of work. A decent quality should be the norm. High quality that makes interconnecting and future modifications less costlier should be rewarded. If the usual amount of time for such operations is 15 percent of the work, doubling the speed should result in 7.5% economy. This would save 89.2 normal work hours for the six month period. Doesn't seem like much. More often we meet cases when sloppy work increases costs. The weight for this criteria should be no more than 0.14 if we admit a 10x reduction. Default value: 0

Availability
Seems similar to the previous. So let's say 0.15

Involvement
0.20 sounds good?

Of course, all numbers should be calculated, not chosen by feel. Varies from company to company, from position to position.

All this don't do much for the progress of a quality personnel. Someone brought the idea of goal, thus imprinting an attitude of continuous grow. People perform better when they know where they are and what they can do to get to the next step. It's at the core of the occidental civilization. So, you want a raise? Here's what you can do to get it. Those are also included in most evaluations forms, still being based on the criteria discussed.

Who's to make the evaluations? Technical performance can be evaluated by experts, the rest by the HR department using info from the employee him/herself and colleagues. Big responsibility ;) I heard of a case where soldered teams were almost dismantled by this. Not everyone is ready to accept that every person is entitled to an opinion and malevolent actions are a fact of life. You just have to make the best of the situation. An evaluation based on measurable results and large margins for eventual effects it is pretty much all that can be done. Add transparency and consent.