SELECT * FROM Joseph.Thoughts WHERE Topics LIKE 'Pseudo' AND PostDateTime LIKE 'Random' DESC
Monday, November 14, 2011
Gplus
I am a rare user of Facebook or Twitter; but I am a frequent user of Weibo. Not saying that Facebook or Twitter is not good, in fact they are great and lots and lots of my (non-Chinese) friends love them. Just I prefer Weibo as lots and lots of my (Chinese) friends are using them, even my parents and my in-laws are visiting Weibo regularly. Yes, it is not about which product is better, it is about who else is using it. That's the essence of Social networking. Of course better products attract more people, but there is also timing, preference, acceptance, etc.
Back to the capital G, there have not been a lot of exciting updates. Honestly, I haven't used "Like" or "+1"; I have not switched to the new look for my inbox; I visit G+ once a month probably. On the other hand, I am still a loyal gmail user. So will G+ be successful, we could have asked Steve.
Tuesday, January 19, 2010
《阿凡达》—— 耗时两个半小时的魔兽争霸 WarCraft(zz)
此时HUM的人口为70,而暗夜人口为30,双方英雄:人族山丘(将军)已达到8级,血法(公司老总)只有5级,二英雄加茫茫多的坦克和直升飞机,由于双方出生在远点,所以人族一开始并未TR,暗夜方面,首发的黑暗游侠(奈蒂莉)7级和6级恶魔猎手(苏泰)
双方的战术思想也大相径庭,HUM此时急需扩张来继续扩大优势,
,到这时才派出了小绵羊(杰克)侦查。而暗夜方面并未意识到危险降临,仍然靠打野怪
升级。
就在小绵羊进入暗夜领地的时候,突然被路过的黑暗游侠发现,黑暗游侠正欲射杀小
绵羊,突然暗夜圣母显灵,小绵羊得以保全性命。。。
根据小绵羊**的情报,HUM终于锁定了暗夜的位置,此时小绵羊非常纠结,一方面他
是被女巫变成小绵羊侦查的,马上就要变回真身,另一方面他不知道自己究竟是那边的,
正在这时,黑暗游侠放出6级大招将小绵羊杰克招至麾下,众人表示不解,恶魔猎手甚至几
欲挥刀相向,但是黑暗游侠却一再坚称是圣母旨意,众人只好作罢。
接下来的日子黑暗游侠带着一级的杰克打野,一路上幸运的吃到N本经验书,使其等级
迅速飙升,单挑甚至不弱于恶魔猎手,而此时黑暗游侠的等级也提升到了8级(暂且认为5
级以后打野怪也加经验- -).
就在此时,HUM部队冲向暗夜主矿靠坦克对建筑的高输出直取暗夜生命之树!无奈兵力
差距太大,在损失了20多人口的兵力后只得退守2点方向的分基地。。。此战HUM大获全胜
,山丘之王也飙升至10级!!!!局面对暗夜十分不利。。。
HUM在回家后进行了简单的补给,欲乘胜追击,攻下对手分矿,结束比赛。就在此时,
小绵羊挺身而出!在制服中央泉水处的红龙后,等级达到9级!!他果断回城到达暗夜分矿
,招兵买马爆人口,缩小了双方兵力差距,而恶魔猎手屈从于红龙淫威,不敢造次,只得
听从小绵羊指挥。。。
大战终于到来,双方在暗夜分矿处展开了世纪大战!由于血法被山丘软禁,使得HUM部
队实力略有下降,但是HUM却靠着兵力优势击杀了对方已到7级的DEMON HUNTER!!!但是由于
火力过于集中,使得自己的部队损失过于严重。
但是瘦死的骆驼比马大,HUM小分队在4点钟方向围住了暗夜的黑暗游侠!正当HUM以为
比赛将就此结束时,暗夜派出了她们一直隐藏的第3英雄——兽王!没有人知道兽王什么时
候到达了6级,只见他二话不说放出了6级大招——万兽奔腾!团灭了HUM小分队,也保住了
黑暗游侠的生命。
坐在飞艇上督战的MK,见双方兵力对拼已尽,在飞艇爆炸前立即降落并使用了天神下
凡!而小绵羊由于击杀对方许多兵力,也早已到达10级!双方在分矿处展开了1V2!MK很轻
松地将黑暗游侠杀成了贫血,黑暗游侠为了保命早早退出战场,此时MK与小绵羊的对决成
为了本场比赛的最后决战,MK由于MP不够,一直处于劣势,但他转念一想,把攻击目标转
向了暗夜的最后一个建筑!!这样建筑一旦被打爆,比赛也将结束!!!此时贫血的黑暗
游侠不得不回救!放出了2记黑暗之箭结束了山丘的性命,比赛以暗夜的胜利而告终。。。
Thursday, December 17, 2009
Should I use a #temp table or a @table variable?
http://databases.aspfaq.com/database/should-i-use-a-temp-table-or-a-table-variable.html
In a stored procedure, you often have a need for storing a set of data within the procedure, without necessarily needing that data to persist beyond the scope of the procedure. If you actually need a table structure, there are basically four ways you can "store" this data: local temporary tables (#table_name), global temporary tables (##table_name), permanent tables (table_name), and table variables (@table_name).
There is a partial list of questions and answers about table variables, including some differences between table variables and #temp tables, in KB #305977 - INF: Frequently Asked Questions - SQL Server 2000 - Table Variables.
Local Temporary Tables
| CREATE TABLE #people ( id INT, name VARCHAR(32) ) |
A temporary table is created and populated on disk, in the system database tempdb — with a session-specific identifier packed onto the name, to differentiate between similarly-named #temp tables created from other sessions. The data in this #temp table (in fact, the table itself) is visible only to the current scope (usually a stored procedure, or a set of nested stored procedures). The table gets cleared up automatically when the current procedure goes out of scope, but you should manually clean up the data when you're done with it:
| DROP TABLE #people |
This will be better on resources ("release early") than if you let the system clean up *after* the current session finishes the rest of its work and goes out of scope.
A common use of #temp tables is to summarize/compact/reorganize data coming from another stored procedure. So, take this example, which pares down the results of the system procedure sp_who2 into only the SPID, Status, and HostName of *active* processes that are *not* part of the regular operation of the system:
| CREATE TABLE #sp_who3 ( SPID INT, Status VARCHAR(32) NULL, Login SYSNAME NULL, HostName SYSNAME NULL, BlkBy SYSNAME NULL, DBName SYSNAME NULL, Command VARCHAR(32) NULL, CPUTime INT NULL, DiskIO INT NULL, LastBatch VARCHAR(14) NULL, ProgramName VARCHAR(32) NULL, SPID2 INT ) INSERT #sp_who3 EXEC sp_who2 'active' SELECT SPID, Status, HostName FROM #sp_who3 WHERE spid > 15 DROP TABLE #sp_who3 |
One of the main benefits of using a #temp table, as opposed to a permanent table, is the reduction in the amount of locking required (since the current user is the only user accessing the table), and also there is much less logging involved. (You could also increase this performance by placing tempdb on a separate drive... but that's another story.)
One minor problem with #temp tables is that, because of the session-specific identifier that is tacked onto the name, the name you give it is limited to 116 characters, including the # sign (while other table types are limited to 128). If you try, you will see this:
| Server: Msg 193, Level 15, State 1, Line 1 The object or column name starting with '# |
Hopefully this won't be a limitation in your environment, because I can't imagine a table name that long being useful or manageable.
Another potential problem with #temp tables is that, if you enter a transaction and use a #temp table, and then cancel without ever issuing a ROLLBACK or COMMIT, you could be causing unnecessary locks in tempdb (for more information, see KB #159747).
Global Temporary Tables
| CREATE TABLE ##people ( id INT, name VARCHAR(32) ) |
Global temporary tables operate much like local temporary tables; they are created in tempdb and cause less locking and logging than permanent tables. However, they are visible to all sessions, until the creating session goes out of scope (and the global ##temp table is no longer being referenced by other sessions). If two different sessions try the above code, if the first is still active, the second will receive the following:
| Server: Msg 2714, Level 16, State 6, Line 1 There is already an object named '##people' in the database. |
I have yet to see a valid justification for the use of a global ##temp table. If the data needs to persist to multiple users, then it makes much more sense, at least to me, to use a permanent table. You can make a global ##temp table slightly more permanent by creating it in an autostart procedure, but I still fail to see how this is advantageous over a permanent table. With a permanent table, you can deny permissions; you cannot deny users from a global ##temp table.
Permanent Tables
| CREATE TABLE people ( id INT, name VARCHAR(32) ) |
A permanent table is created in the local database, however you can (unlike #temp tables) choose to create a table in another database, or even on another server, for which you have access. Like global ##temp tables, a permanent table will persist the session in which it is created, unless you also explicitly drop the table. (For contention and concurrency reasons, creating a "temporary" permanent table in this manner doesn't really make a lot of sense.) If you are planning to create a permanent table when the procedure runs, you should check to see if it exists, in order to avoid errors like the one mentioned above. For more information about checking for the existence of both local #temp tables and permanent tables, see Article #2458.
Like global ##temp tables, there seems to be little reason to use a permanent table unless the data is going to persist... and if that is the case, why not create the permanent table before the stored procedure is ever run, thereby eliminating all the CREATE / DROP logic?
Table Variables
| DECLARE @people TABLE ( id INT, name VARCHAR(32) ) |
A table variable is created in memory, and so performs slightly better than #temp tables (also because there is even less locking and logging in a table variable). A table variable might still perform I/O to tempdb (which is where the performance issues of #temp tables make themselves apparent), though the documentation is not very explicit about this.
Table variables are automatically cleared when the procedure or function goes out of scope, so you don't have to remember to drop or clear the data (which can be a good thing or a bad thing; remember "release early"?). The tempdb transaction log is less impacted than with #temp tables; table variable log activity is truncated immediately, while #temp table log activity persists until the log hits a checkpoint, is manually truncated, or when the server restarts.
Table variables are the only way you can use DML statements (INSERT, UPDATE, DELETE) on temporary data within a user-defined function. You can create a table variable within a UDF, and modify the data using one of the above statements. For example, you could do this:
| CREATE FUNCTION dbo.example1 ( ) RETURNS INT AS BEGIN DECLARE @t1 TABLE (i INT) INSERT @t1 VALUES(1) INSERT @t1 VALUES(2) UPDATE @t1 SET i = i + 5 DELETE @t1 WHERE i < style="font-family: 'franklin gothic book',tahoma,verdana; font-size: 13px;"> DECLARE @max INT SELECT @max = MAX(i) FROM @t1 RETURN @max END GO |
However, try that with a #temp table:
| CREATE FUNCTION dbo.example2 ( ) RETURNS INT AS BEGIN CREATE TABLE #t1 (i INT) INSERT #t1 VALUES(1) INSERT #t1 VALUES(2) UPDATE #t1 SET i = i + 5 DELETE #t1 WHERE i < style="font-family: 'franklin gothic book',tahoma,verdana; font-size: 13px;"> DECLARE @max INT SELECT @max = MAX(i) FROM #t1 RETURN @max END GO |
Results:
| Server: Msg 2772, Level 16, State 1, Procedure example2, Line 7 Cannot access temporary tables from within a function. |
Or try accessing a permanent table:
| CREATE TABLE table1 ( id INT IDENTITY, name VARCHAR(32) ) GO CREATE FUNCTION dbo.example3 ( ) RETURNS INT AS BEGIN INSERT table1(name) VALUES('aaron') RETURN SCOPE_IDENTITY() END GO |
Results:
| Server: Msg 443, Level 16, State 2, Procedure example3, Line 8 Invalid use of 'INSERT' within a function. |
Table variables can lead to fewer stored procedure recompilations than temporary tables (see KB #243586 and KB #305977), and — since they cannot be rolled back — do not bother with the transaction log.
So, why not use table variables all the time? Well, when something sounds too good to be true, it probably is. Let's visit some of the limitations of table variables (part of this list was derived from KB #305977):
- Table variables are only allowed in SQL Server 2000+, with compatibility level set to 80 or higher.
- You cannot use a table variable in either of the following situations:
INSERT @table EXEC sp_someProcedure
SELECT * INTO @table FROM someTable - You cannot truncate a table variable.
- Table variables cannot be altered after they have been declared.
- You cannot explicitly add an index to a table variable, however you can create a system index through a PRIMARY KEY CONSTRAINT, and you can add as many indexes via UNIQUE CONSTRAINTs as you like. What the optimizer does with them is another story.
One thing to note is that you cannot explicitly name your constraints, e.g.: DECLARE @myTable TABLE
(
CPK1 int,
CPK2 int,
CONSTRAINT myPK PRIMARY KEY (CPK1, CPK2)
)
-- yields:
Server: Msg 156, Level 15, State 1, Line 6
Incorrect syntax near the keyword 'CONSTRAINT'.
-- yet the following works:
DECLARE @myTable TABLE
(
CPK1 int,
CPK2 int,
PRIMARY KEY (CPK1, CPK2)
) - You cannot use a user-defined function (UDF) in a CHECK CONSTRAINT, computed column, or DEFAULT CONSTRAINT.
- You cannot use a user-defined type (UDT) in a column definition.
- Unlike a #temp table, you cannot drop a table variable when it is no longer necessary—you just need to let it go out of scope.
- You cannot generate a table variable's column list dynamically, e.g. you can't do this:
SELECT * INTO @tableVariable
-- yields:
Server: Msg 170, Level 15, State 1, Line 1
Line 1: Incorrect syntax near '@tableVariable'.
You also can't build the table variable inside dynamic SQL, and expect to use it outside that scope, e.g.:DECLARE @colList VARCHAR(8000), @sql VARCHAR(8000)
SET @colList = 'a INT,b INT,c INT'
SET @sql = 'DECLARE @foo TABLE('+@colList+')'
EXEC(@sql)
INSERT @foo SELECT 1,2,3
-- this last line fails:
Server: Msg 137, Level 15, State 2, Line 5
Must declare the variable '@foo'.
This is because the rest of the script knows nothing about the temporary objects created within the dynamic SQL. Like other local variables, table variables declared inside of a dynamic SQL block (EXEC or sp_executeSQL) cannot be referenced from outside, and vice-versa. So you would have to write the whole set of statements to create and operate on the table variable, and perform it with a single call to EXEC or sp_executeSQL. - The system will not generate automatic statistics on table variables. Likewise, you cannot manually create statistics (statistics are used to help the optimizer pick the best possible query plan).
- An INSERT into a table variable will not take advantage of parallelism.
- A table variable will always have a cardinality of 1, because the table doesn't exist at compile time.
- Table variables must be referenced by an alias, except in the FROM clause. Consider the following two scripts:
CREATE TABLE #foo(id INT)
DECLARE @foo TABLE(id INT)
INSERT #foo VALUES(1)
INSERT #foo VALUES(2)
INSERT #foo VALUES(3)
INSERT @foo SELECT * FROM #foo
SELECT id
FROM @foo
INNER JOIN #foo
ON @foo.id = #foo.id
DROP TABLE #foo
The above fails with the following error:Server: Msg 137, Level 15, State 2, Line 11
Must declare the variable '@foo'.
This query, on the other hand, works fine:SELECT id
FROM @foo f
INNER JOIN #foo
ON f.id = #foo.id - Table variables are not visible to the calling procedure in the case of nested procs. The following is legal with #temp tables:
CREATE PROCEDURE faq_outer
AS
BEGIN
CREATE TABLE #outer
(
letter CHAR(1)
)
EXEC faq_inner
SELECT letter FROM #outer
DROP TABLE #outer
END
GO
CREATE PROCEDURE faq_inner
AS
BEGIN
INSERT #outer VALUES('a')
END
GO
EXEC faq_outer
Results:letter
------
a
(1 row(s) affected)
However, you cannot do this with table variables. The parser will find the error before you can even create it:CREATE PROCEDURE faq_outer
AS
BEGIN
DECLARE @outer TABLE
(
letter CHAR(1)
)
EXEC faq_inner
SELECT letter FROM @outer
END
GO
CREATE PROCEDURE faq_inner
AS
BEGIN
INSERT @outer VALUES('a')
END
GO
Results:Server: Msg 137, Level 15, State 2, Procedure faq_inner, Line 4
Must declare the variable '@outer'.
For more information about sharing data between stored procedures, please see this article by Erland Sommarskog.
Conclusion
Like many other areas of technology, there is no "right" answer here. For data that is not meant to persist beyond the scope of the procedure, you are typically choosing between #temp tables and table variables. Your ultimate decision should depend on performance and reasonable load testing. As your data size gets larger, and/or the repeated use of the temporary data increases, you will find that the use of #temp tables makes more sense. Depending on your environment, that threshold could be anywhere — however you will obviously need to use #temp tables if any of the above limitations represents a significant roadblock.
Tuesday, December 1, 2009
25 Movie quotes
famous quote by Michael Conner Humphreys (young Forrest) of Forrest Gump
"Bond, James Bond"
quote from numerous James Bond movies
"Frankly my dear, I don't give a damn"
quote from Clark Gable (Rhett Butler) in Gone with the Wind
"What we have here is a failure to communicate"
quote from Cool Hand Luke
"You're gonna need a bigger boat"
quote from Roy Schneider (Police Chief Martin Brody) in Jaws
"Say hello to my Little Friend"
quote by Al Pacino (Tony Montana) - Scarface
"I feel the need - the need for speed"
Quote from Tom Cruise (Maverick) in Top Gun
"You know you drive almost slow enough to drive Miss Daisy"
quote by Will Smith in Bad Boys
"I'm the king of the world"
quote by Leonardo DiCaprio (Jack Dawson) in Titanic
"Ditto"
quote from Patrick Swayze (Sam) in Ghost
"You can't handle the truth"
quote from Jack Nicholson (Colonel Jessup) in A Few Good Men
"Show me the money"
quote from Cuba Gooding Jr. (Ron Tidwell) in Jerry McGuire
"Houston, we have a problem"
quote from Tom Hanks (Jim Lowell) in Apollo 13
"Here's looking at you kid"
quote from Humphrey Bogart (Rick Blaine) in Casablanca
"There's no crying in baseball"
quote from Tom Hanks (Jimmy Dugan) in A League of Their Own
"I'll Be Back"
quote from Arnold Schwarzenegger from Terminator
"I'll get you my pretty"
quote from Wicked Witch of the West, Wizards of Oz
"Go ahead make my day"
quote by Clint Eastwood (Harry Callahan) in Sudden Impact
"Well, nobody's perfect"
quote from Joe E. Brown (Osgood Fielding III) in Some Like it Hot
"Keep your friends close, but your enemies closer"
quote from Al Pacino (Michael Corleone) in Godfather Part II
"Snap out of it"
quote from Cher (Loretta Castorini) in Moonstruck
"You had me at hello"
quote by Rene Zellweger (Dorothy Boyd) in Jerry McGuire
"You talkin' to me?"
famous quote by Robert De Niro (Travis Bickle) in Taxi Driver
"After all, tomorrow is another day"
quote from Vivien Leigh (Scarlett O'Hare) in Gone with the Wind
"There's no place like home"
quote from Judy Garland (Dorothy Gale) in Wizards of Oz
Tuesday, October 6, 2009
Evolution of the Cell Phone
Sunday, October 04, 2009 05:00 PM PDT
http://www.pcworld.com/printable/article/id,173033/printable.html
From enormous, 80-pound, car-mounted beasts to tiny terminals in our back pockets, mobile phones have come a long way. What once cost thousands, weighed 2 pounds, and packed 60 minutes of battery life now costs $99, weighs 4 ounces, and packs 5 to 10 hours of battery life--and also includes a full-fledged computer, a video camera, audio/video playback, and high-speed Internet access.
How did we get from there to here? Let's take a brief tour through the history of the cell phone. The following phones don't necessarily reflect the first or best of each type, but instead represent certain phases in mobile phone evolution over the last 50 years.
SRA/Ericsson MTA (Mobile Telephone System A)
Year: 1956
In the days before cellular phone networks, the world's mobile phones lacked a unifying standard. Instead, they used varying communication methods defined on a company-by-company basis.
The 88-pound MTA phone, shown here, is typical in size and weight of early mobile phone systems from the pre-integrated-circuit era. Most were so heavy and power-hungry that they required permanent installation in a car or other vehicle. Very few people owned, used, or even encountered such devices; for example, the service for the model shown here existed in only two Swedish cities and served a mere 125 subscribers from 1956 to 1967.
Notable qualities: The first automatic mobile telephone system (it didn't require a human operator to manually connect the user to an outside phone line)
Photo: Ericsson
Motorola DynaTAC 8000X
Year: 1983
Though Motorola announced the world's first handheld mobile phone--a prototype of the DynaTAC 8000X you see above--in 1973, it took ten years for the DynaTAC to reach the market. In those ten years, engineers squeezed more capability into less space, and Motorola built much-needed infrastructure--the towers necessary for cell phone service.
Upon its release in 1983, the DynaTAC 8000X became an instant cultural icon, both as a status symbol for the rich (thanks to the $3995 retail price--$8657 in 2009 dollars) and as an almost miraculous wonder-phone that a person could use anywhere. With the DynaTAC, the cell phone revolution had finally begun.
Notable qualities: Small size, light weight; the first handheld mobile phone
Photo: Motorola
Nokia Mobira Talkman
Year: 1984
Motorola's handheld DynaTAC was an amazing breakthrough, but in reality its size proved limiting due to the battery technology of the era. The DynaTAC could manage only 60 minutes of talk time in ideal conditions, while larger "luggable" phones equipped with capacious batteries--such as the Mobira Talkman, shown here--could provide many hours of continuous operation.
Notable qualities: Early luggable mobile phone; relatively long talk time
Photo: Nokia
Motorola MicroTAC
Year: 1989
After the success of the DynaTAC, Motorola followed up with the much smaller and lighter MicroTAC phone in 1989. The MicroTAC included a novel space-saving idea: Motorola engineers placed part of the phone's hardware in a hinged section that could fold inward or outward as needed, thus reducing the phone's size when it wasn't in use. The flip concept lives on in many cell phones today.
Notable qualities: First flip phone, first pocket phone; smallest and lightest cellular phone at the time of its debut
Photo: Motorola
Motorola 2900 Bag Phone
Year: 1994
When many people think of the "car phones" of the 1980s and 1990s, they picture bag phones like the Motorola 2900, shown here. The bag contained a transceiver and battery, and the user operated a much lighter corded handset. Owners could carry the bag on their shoulder, but a bag phone's general bulk mostly limited its usage to cars.
Despite the availability of smaller phones on the market, bag phones remained popular well into the late 1990s due to their long talk times and their superior range. Thanks to heftier batteries, bag phones could afford to transmit a cell signal with greater power, allowing the phone to be used farther away from a receiving tower. This was especially important in the days when cellular coverage wasn't nearly as widespread as it is now.
Notable qualities: Long talk times, plus greater battery life and signal range
Photo: Motorola
Motorola StarTAC
Year: 1996
In 1996, Motorola further shrank its line of pocket cell phones, producing the 3.1-ounce StarTAC--which immediately proved popular and influential. The StarTAC expanded on the partially collapsible design of its precursor, the MicroTAC, by allowing users to fold the phone in half when they weren't talking on it. We now call this design "clamshell," for its resemblance to the way a clam opens and closes. The StarTAC's general design was widely imitated, and a large percentage of mobile phones still use it today.
Notable qualities: First fully "clamshell" mobile phone design; smallest and lightest mobile phone at its release
Photo: Motorola
Nokia 9000i Communicator
Year: 1997
Though the Nokia 9000i wasn't the first-ever smartphone (many people give that honor to the IBM Simon), it marked the real beginning of our modern smartphone era. The 9000i truly was a pocket computer and a cell phone rolled into one, with an Intel 386-derivative CPU and 8MB of RAM. The phone's physical configuration was novel at the time: Users could open the 9000i in a horizontal clamshell fashion to reveal a wide LCD screen and a full QWERTY keyboard. When folded, it resembled an ordinary cell phone.
The 9000i could send and receive faxes, text messages, and e-mail, and it also had (extremely) limited Web access through 160-character SMS messages. And like any self-respecting smartphone, it shipped with a full complement of PDA-like organizer capabilities.
Notable qualities: First Nokia smartphone; first modern PDA/cell phone combo; mobile Internet connectivity
Photo: Nokia
Nokia 8810
Year: 1998
In the earlier years, all cellular phones shipped with external antennas that stuck out in aesthetically unpleasing ways. Nokia engineers found a way around that problem by designing a flat, plate-like antenna that could hide inside the body of a cell phone. The result was the Nokia 8810, the first true "candy bar" phone in the modern sense. This small, compact, non-clamshell design soon became standard for many Nokia handsets; you rarely see an external cell phone antenna these days.
Notable qualities: First cell phone without an external whip or stub antenna; first "candy bar" phone
Photo: Nokia
Nokia 7110
Year: 1999
Not too long ago, WAP (Wireless Application Protocol) was a huge deal. The mobile phone industry designed WAP to allow Web access on simple devices with limited processing power and displays, like cell phones circa 1999 to 2002. Instead of a rich graphical experience, users would see a stripped-down, typically text-only subset of the Web. Nokia was the first company to bring WAP browsing to a mobile phone with the 7110, released in 1999.
In our present age of smartphones with full-featured browsers, large screens, and beefy CPUs, WAP has quickly become a relic of the past. Web browsing has most assuredly not.
Notable qualities: World's first WAP-capable mobile phone; nifty sliding keypad cover
Photo: Nokia
RIM BlackBerry 5810
Year: 2002
The BlackBerry brand began in 1999 as a simple two-way pager, but it morphed into a line of full-fledged smartphones in 2002 with the BlackBerry 5810, the first of the series to include integrated cell phone support. Thanks to top-of-the-line mobile e-mail and text messaging (the QWERTY keyboard didn't hurt either), BlackBerry phones soon became indispensable tools for businesspeople and other professionals.
Notable qualities: First BlackBerry with an integrated voice cell phone; push e-mail support
Photo: Research in Motion
Sanyo SCP-5300
Year: 2002
Who would want a camera in their cell phone? When news of such combination devices trickled over from Japan in the early part of the decade, the idea seemed silly and excessive to some people. In 2002, Sprint and Sanyo released the first American cell phone with a built-in camera, the SCP-5300--and the public went crazy for it.
The camera phone became a bona fide cultural phenomenon, allowing the average Joe to quickly and personally share both mundane and earthshaking events with the rest of the world. Today, camera phones are so common that we don't call them "camera phones" anymore.
Notable qualities: First U.S. mobile phone with an integrated camera; color screen, clamshell camera phone design
Photo: Sanyo
T-Mobile Sidekick/Danger Hiptop
Year: 2002
At the time of its release in the United States, the T-Mobile Sidekick (also known as the Danger Hiptop) quickly became the text-messaging addict's dream machine. This innovative smartphone incorporated a novel design with a large LCD screen that rotated and flipped to reveal a generous QWERTY keyboard. The Sidekick line, with its distinctive full-reveal keyboard, persists today, having influenced many similar hide-and-reveal keyboard designs since its emergence in 2002. These clever and attractive designs helped fuel text messaging's popularity beyond the tie-and-Frappuccino BlackBerry set, extending it to the youth of the world.
Notable qualities: Large, flippable screen; relatively uncramped and full-featured QWERTY keyboard
Photo: T-Mobile
Motorola Razr V3
Year: 2004
At a time when most cell phones were starting to look the same, Motorola decided to break the status quo with the Razr V3, a slim, slab-like clamshell phone with a large screen, a stylish and flat keyboard, a built-in camera, and multimedia capabilities. Impressive technical features aside, you have to admit that the Razr simply looks cool (especially by 2004 standards), a fact that contributed significantly to its wide popularity.
Notable qualities: Stylish design, slim form, and a full set of features
Photo: Motorola
Apple iPhone
Year: 2007
Apple's ability to rock our world through nifty gadgets should not be underestimated. Between the Apple II, the Macintosh, and the iPod, Apple is responsible for more trend-setting consumer technology than most companies. In the same vein, the iPhone goes far beyond being just a mobile telephone: It's a powerful pocket computer, a game machine, and a multimedia-playback device. Better yet, it gives you instant, high-speed access to the Web, e-mail, Facebook, Twitter, and YouTube, wherever you can find mobile phone coverage. In short, it's a revolutionary device, and other companies are already coming up with imitators.
Notable qualities: Everything--but particularly the excellent software, the large and sharp screen, the multitouch interface, visual voicemail, the App Store... (Need I say more?)
Photo: Apple
Thursday, September 17, 2009
How to Have a 36 Hour Day
How many times do you hear someone say "I wish there were more hours in the day" or something along those lines? The fact is that all of us are only given 24 hours. Having said that, how we spend those 24 hours varies radically from person to person. It's become a bit of a cliche by now but the 24 hours we have is the same 24 hours that Thomas Edison and Mother Theresa had and that Oprah Winfrey and Bill Gates currently have. As the old song goes "It's in the way that you use it."
But what if we had more than 24 hours in a day?
Not possible? I disagree. While we can never have more than 24 hours of chronological time I think it's very possible to have many more hours of functional time. In fact, I think it's probably possible to get up to 36 hours of functional time in your day if you do a few relatiively simple things. So without further ado, here is my prescription for the 36 hour day.
It's a list of ways to save time that you may or may not have thought of. Implement a few of them and you'll likely open up a couple of hours each day that you didn't previously have . Implement all of of them and you just might find yourself with too much time on your hands. File that under "Good Problem to Have" right? :)
So here are 10 ways that you can radically change your life and free up the time you didn't know that you could.
36 Hour Day Strategy #1: Optimize Your Sleep - Some of us can get by just fine on 3-5 hours a sleep a night (I'm jealous of you!) while others "need" 9+ hours to feel rested. Certainly a good portion of this is genetic and perhaps environmental. Having said that I tihnk that there are ways that all of us can sleep less and at the same time feel more rested. Here are a few suggestions:
Wake up at the same time every morning . I've been trying it for a little while and totally dig it. It's a simple concept. Just set your alarm clock for the same time each morning, wake up when it goes off and then go to bed at night when you feel tired and not before.
Make your room a quiet, dark cave - For too many people the bedroom is a source of activity, light and noise. Do your best to minimize the amount of sound in your bed room (consider buying an air cleaner or white noise generator if you live in noisy apartment building or neighborhood). Take steps to eliminate or reduce the light that comes into your bedroom while you sleep (heavy curtains or dark room material on the windows work well here). And do your darnedest to remove stimulus from your bedroom (e.g., TV, lots of clutter, etc.)
Experiment with polyphasic sleep - Polyphasic sleep is a sleeping pattern that proposes to reduce sleep down to 2-5 hours a day.
Time Savings from Optimizing Your Sleep = Approximately 1.5 Hours
36 Hour Day Strategy #2: Optimize Your Diet
The human body spends more of its energy on digestion and elimination than anything else . What you put into your body in the form of food and drink will definitely have an impact on your energy levels as well the amount of sleep you'll need. A few years back I was pretty heavy into weightlifting and was eating a ton of calories and lots of protein every day. The result? I need to sleep a *ton* to feel rested. Sometimes 10-11 hours a night (the hard workouts didn't help either).
Now my diet has done a 180 and I'm eating a much better (but far from perfect) mix of vegetables, fruits, whole grains and healthy fats and oils. The difference in energy is dramatic and I sleep a lot less than I previously needed to. My diet still needs improvement but these changes have literally added hours to my days.
I'd recommend a few resources for people looking to save time by improving their diet. The first is Tony Robbins' Living Health course. Tony has more energy that any person I've ever seen and that's a great testament to his health and fitness regimen. He has based a lot of his information on the work of Dr. Robert Young and thus I would recommend Dr. Young's book The pH Miracle as well.
Finally, consider going on a cleanse. I recently went on a four-day cleanse as outlined in the pH Miracle book and I've had a lot more energy in the week and a half since I went off it. The book Juice Fasting and Detoxification also helped me through a pretty intense (both physically and emotionally) four days and I'd recommend that one as well.
Time Savings from Optimizing Your Diet = Approximately 1.5 Hours
36 Hour Day Strategy #3: Multi Task
OK, this is a given right. If you do two things at the same time you will be able to do more during your day. But isn't multitasking bad? The lady driving down the highway with her cell glued to her ear is probably not the best model for multitasking. The guy you had lunch with yesterday who checked his Blackberry 17 times before they brought the main course out isn't doing anyone any favors with his technology-enabled form of ADD.
But I'd argue that multi-tasking, when done right, is one of the best ways to save time throughout your day. Combining talking on the phone and "brain dead activities" is a great way to multitask. For most people, doing laundry or washing the dishes is an activity that takes no thought. Why not use that time to make a few phone calls and kill two birds with one stone? But remember, checking e-mail or watching TV are not brain dead activities. And nothing is more annoying than having a phone conversation with someone who is not fully present.
Another great way to multi task is to incorporate exercise into your activities. Need to get together with a friend to catch up? Meet them for a jog and get caught up while you knock out your daily workout. I'll often stretch (it's good for you!) while I'm reading or at my computer (I've got one those exercise balls that allows we to stretch while I'm checking e-mail...kinda geeky but it works for me!).
Something else I do is to do a series of exercises created by a gentleman named Pete Egoscue. These exercises are designed to improve flexibility and range of motion and prevent injury. And many of them can be done while reading, on the phone, etc. I'd highly recommend Pete's book Pain Free for anyone interested in these.
There are a ton of ways that you can incorporate exercise into your daily routines without taking any extra time out of your day. It's really a great way to free up your schedule and keep your body in tip-top shape.
Time Savings from Multi Tasking = Approximately 2.0 Hours
36 Hour Day Strategy #4: Get Organized
You really owe it to yourself to get organized because it will save you both time and stress. There are a number of different ways and strategies for getting organized. One of the best that I've found (and use personally) is David Allen's Getting Things Done methodology. GTD, as it is more commonly referred to, is a system for capturing and managing the things that you need to do and remember. It's remarkably effective in that it gets all of the little things out of your head which frees up your "psychic RAM" for more productive thoughts and results in increased creativity.
David Allen's system isn't the only one out there. A lot of people will use Franklin-Covey, Tony Robbins' life management system or any of a number of other planning systems. I'm not convinced that there's one best system out there but I think it's important for all of us to use some sort of a system so that "Remember to buy toothpaste" isn't consuming even an ounce of our mental energy.
There's a ton of info about GTD online for free and the investment you'll make in learning one of these systems will pay off in spades. Not only will you be more productive but you'll also feel less stressed which will result in more energy and once again will add hours to your days.
Time Savings from Getting Organized = Approximately 1.0 Hours
36 Hour Day Strategy #5: Improve Your Typing Speed
In this computer age, the keyboard is often our primary form of communication with many people. This is a wild ass guess but I'd say that the average person probably spends about 1-2 hours a day typing. This could be e-mails, IMs, memos, reports, etc . Certainly for some people this number is much higher and for others it is low. So let's just say an average of 1.5 hours per person for now.
Now let's assume that you currently type 40 WPM. If you improved your typing speed to 60 WPM you would save 33% of the time you are currently spending typing. Improve it to 80 WPM and you've now saved 50%. That's probably a half an hour or 45 minutes a day you've saved. Over the course of a year or a decade (not to mention a lifetime) this results in a *huge* savings.
It's amazing that we invest in all of these productivity applications in businesses and yet you have many people who are still hunting and pecking at their keyboard. That's just crazy to me. The faster you type the better you can communicate plain and simple. The keyboard becomes a natural extension of you vs. some impediment to exchanging information and sharing yourself with the world.
I'd highly recommend investing a little time (even just a few minutes a day) in improving your typing. A program that I use for this is TypingMaster and I love it. It's easy to use and can even be configured to track your real-world typing so that it can incorporate words you commonly mis-type into its drills. This is definitely a great way to save time on a daily basis.
Time Savings from Improving Your Typing Speed = Approximately 0.75 Hours
36 Hour Day Strategy #6: Improve Your Reading Speed
Just as with typing, improving your reading speed can make you more productive and save you tons of time. It also varies a lot but I'll assume that each of us again spends on average between one and two hours a day reading. Whether this is the morning paper, e-mails at works, research for your job or for school or the latest book we all have a need to be continually reading in this day and age.
The fact of the matter is that most of us don't read all that well. We read slow and we often have to read things multiple times to understand what's going on. And in the end that either reduces the amount of stuff we end up reading (if you read slow and have trouble comprehending reading just won't be enjoyable to you) or results in a lot more time invested in reading than necessary.
As with typing there are ways to improve your reading abilities. Here are a few that I've incorporated:
Active Reading - One of the reasons why many of us don't read that well is that we're entirely passive when reading. The brain engages much more when it is active and the best way to encourage this is to make notes while reading. If you're reading a book then mark the hell out of it. Underline passages, jot notes, etc. You'll find that your comprehension will go way up as will your reading speed (even after accounting for the time spent marking up your book). One of the best parts about making notes is that you can return to the material later and review it more quickly and effectively.
EyeQ - Off and on over the last few years I've been using a software application calledEyeQ to improve my reading speed. I think it's the fastest and easiest way for a person increase their ability to rapidly process information. It works by getting you to move your eyes more quickly through material. This results in an increased ability to filter out words that are meaningless (a, an, the, etc.) as well as a reduced reliance onsubvocalization.
Photoreading - I took a class in Photoreading a few years ago and while I'm still not convinced that it's 100% legit any system that claims to increase reading speed to 25,000 words per minute or more is definitely worth checking out. For people who have a ton of reading to do (e.g., graduate students, attorneys, etc.) something like Photoreading could possibly revolutionize their lives and free up tons of time.
Time Savings from Improving Your Reading Speed = Approximately 0.75 Hours
36 Hour Day Strategy #7: Learn Out Loud
Probably the #1 reason why I started LearnOutLoud.com is that I believe so strongly in the power of audio learning to literally add hours to peoples' lives and provide increased enjoyment of, and fulfillment during, times which have historically been frustrating and unproductive (e.g., the morning commute).
Audio learning is the perfect multi-tasking activity. Most people who know me know that I'm listening to audio books, podcasts, etc. several hours every day. I'll do this whenever I'm driving, while exercising, doing stuff around the apartment, etc. I've been able to crank through an unbelievable number of books in the last year (including unabridged versions of My Life by Bill Clinton and The World is Flat by Thomas Friedman) that I never would have found the time to sit down and read. Likewise, I've been able to virtually "attend" conferences like South by Southwest and the World Economic Forum thanks to the miracle of podcasting.
Thanks to the iPod and other portable MP3 players it's never been easier to learn out loud. One of my favorite things to do is to go for a run with a few podcasts or an audio book queued up. In fact, I recently completed the LA Marathon while simultaneously listening to the first half of John Battelle's book The Search (read more on that here). It was kind of fun to know that I was getting both a workout for my body and for my mind.
We've essentially set up LearnOutLoud as the epicenter for what I truly feel will be an audio learning revolution in upcoming years and decades. People are increasingly pressed for time and the opportunity to listen to the information you need to consume rather than having to read it opens up a lot of doors. It's a great way to stay on top of all the information and trends that affect your world and that's why I'm so excited about it.
Time Savings from Learning Out Loud = Approximately 1.5 Hours
36 Hour Day Strategy #8: Use Software To Your Advantage
The right software can bring huge time savings to your life. Certainly not all software will save you time. In fact, some applications can actually be huge time sucks. Anyone ever hear of Minesweeper? :) But there are some programs out there that will add minutes to your days and hours to your weeks and months. Here are some that I've stumbled upon:
ActiveWords - ActiveWords is a macro application that allows you to assign hot keys to repetitive tasks. We use this a lot in our business to save time and it could certainly save you time in your personal life as well.
Here's a simple example of how I use it. Let's say that someone is coming by the office for lunch. I want to give them fairly detailed directions via e-mail. One option would be to type up directions each time. That's really a waste as I'm writing the same thing everytime. Another option would be to type up the directions and put them in a text file and then cut and paste them into my e-mail each time I needed them. That does save time but I still have to find the text file on my system each time and do the cut and paste. What ActiveWords allows me to do is to assign a hot key or phrase to my directions. Now all I have to do is type "officedirections" and hit F8 and the directions will automatically be inserted into my e-mail. Cool huh?
There are a ton of ways to use this nifty little application and I feel that I'm just scratching the surface of its usefulness.
Cloudmark Spamblocker (or other anti-spam software) - If you're manually processing and deleting spam you're just wasting your time. The investment in a good spam blocker is well worth it. I've been using Cloudmark's product for several years and I really like it. Almost all my spam gets blocked and rarely does a legitimate message end up in my spam folder.
Another solution is to use GMail (or another web-based app) for your e-mail. These systems end up doing a pretty good job of filtering spam as well. And now a lot of these services have advanced functionality so you can use them and have the e-mails still appear to be coming from your domain (e.g., jon@learnoutloud.com rather than learnoutloud@gmail.com).
Bloglines (or other RSS aggregation software) - I follow 50+ blogs on a number of subjects including technology, new media, audio books, podcasting, U2 and of courseDilbert. There's no way I'd be able to stay on top of all of this stuff without the help
of a piece of software that puts all these blogs in one place and shows me what new updates have been made to each of them. I use Bloglines and I love it. Not only can I read blogs when I'm at the computer but there's even a mobile version of Bloglines so I can read blogs from my Blackberry.
Blogs are increasingly becoming the best way to consume information online and so if you haven't set up an aggregator yet I'd definitely recommend it. There are dozens of aggregators out there and while Bloglines does the trick for me you may want to look at the other apps to find one that works well for you.
Time Savings from Using Software To Your Advantage = Approximately 0.5 Hours
36 Hour Day Strategy #9: Cut Your TV Time in Half
Depending on what study you look at you'll find that the average person watches something like four hours of TV a day. That boggles my mind. We're incredibly busy and yet we somehow find a way to spend four or more hours a day watching television?!!! Crazy...
Now I'm not one to say that all television is bad or that mindless entertainment is never a good thing. There are definitely some TV shows and there's of course a time and a place for turning the brain off for a bit. I have no beef with that but what disturbs me is when people give huge chunks of their life to an activity that doesn't really provide any meaningful benefit in most cases.
A year and a half ago I turned off my cable service and I haven't missed it at all. I've got a Netflix subscription so I can have a few movies handy for times when I want to watch them. And if there's a big game on (like last night's incredible UCLA win...Go Bruins!) then I can typically find a place to watch it with some friends. What I have noticed is that the activity of sitting down "just to see what's on" has become entirely foreign to me. And I think that's a very good thing.
So I'm not saying you have to go to the extreme and shut your TV off. Just be conscious of what you're watching and why. And see if you can't reduce the amount of time you spend watching TV by 50%. If you currently watch four hours a day you almost assuredly can get by watching two hours a day. I mean there are some good shows on but not that many good shows...
Time Savings from Cutting Your TV Time in Half = Approximately 2.0 Hours
36 Hour Day Strategy #10: Get Help from Others
The final way to have a 36 Hour Day is to look for opportunities to have other people help you out with stuff. A lot of this definitely depends on factors like what your job is and how much money you have. If you're the CEO of a Fortune 500 company you can probably find people to do a lot of stuff for you and will have no probably paying them to do so. But what about the rest of us?
First of all, don't discount people's interest in helping you out for free. Let's say you are moving in a few weeks. Why not ask several friends to help you out? It certainly makes the load a lot easier and saves you time.
Another possibility is trading things you are good at for things you need help with. For instance, let's say you need help with housecleaning. Perhaps you can find someone whose English skills aren't that good and offer to tutor them in English in exchange for help with cleaning. You'll save time and they'll benefit from your help resulting in a win-win for both of you.
There are tons of opportunities like this if you just keep your eyes open for them. Of course asking someone to help you out means being willing to help if you're asked to. But with all this time you're saving this shouldn't be a problem right? :)
P.S. There's another great way to save time when you're researching something or looking for information. There are a number of services online that will help you for free or a nominal charge. For instance, when I have a tech problem I'll often post it toExperts Exchange and I'll usually get back an answer within hours or even minutes. For non-techie questions I'll use a service like Google Answers. There's a small fee associated with getting questions answered but you can set the amount and it's almost always worth it in terms of the amount of time you save by getting someone to help you out with the research.
In addition to services like this there are thousands of message boards on the Internet staffed with volunteers who can help you answer many questions. Back in the day I started one of these message boards at CertTutor.net and it has helped thousands of people get their technology certification questions answered. It's just one of many like it out there in just about every subject you can imagine.
Time Savings from Getting Help from Others = Approximately 0.5 Hours
So as we add these up we find that there's the potential here to say 12 hours of time each day. Wow. Certainly your mileage with vary with the strategies but hopefully you can implement some of them in your daily life. Time is the most precious commodity on the planet and by saving time in some areas you'll have more time for doing the things that are truly the most important to you and for pursuing your goals and following your bliss. And if we all do that...well, I think that will change the world.
Thursday, September 10, 2009
The unspoken truth about managing geeks
September 8, 2009 (Computerworld) I can sum up every article, book and column written by notable management experts about managing IT in two sentences: "Geeks are smart and creative, but they are also egocentric, antisocial, managerially and business-challenged, victim-prone, bullheaded and credit-whoring. To overcome these intractable behavioral deficits you must do X, Y and Z."
X, Y and Z are variable and usually contradictory between one expert and the next, but the patronizing stereotypes remain constant. I'm not entirely sure that is helpful. So, using the familiar brush, allow me to paint a different picture of those IT pros buried somewhere in your organization.
My career has been stippled with a good bit of disaster recovery consulting, which has led me to deal with dozens of organizations on their worst day, when opinions were pretty raw. I've heard all of the above-mentioned stereotypes and far worse, as well as good bit of rage. The worse shape an organization is in, the more you hear the stereotypes thrown around. But my personal experiences working within IT groups have always been quite good, working with IT pros for whom the negative stereotypes just don't seem to apply. I tended to chalk up IT group failures to some bad luck in hiring and the delicate balance of those geek stereotypes.
Recently, though, I have come to realize that perfectly healthy groups with solid, well-adjusted IT pros can and will devolve, slowly and quietly, into the behaviors that give rise to the stereotypes, given the right set of conditions. It turns out that it is the conditions that are stereotypical, and the IT pros tend to react to those conditions in logical ways. To say it a different way, organizations actively elicit these stereotypical negative behaviors.
Understanding why IT pros appear to act the way they do makes working with, among and as one of them the easiest job in the world.
It's all about respect
Few people notice this, but for IT groups respect is the currency of the realm. IT pros do not squander this currency. Those whom they do not believe are worthy of their respect might instead be treated to professional courtesy, a friendly demeanor or the acceptance of authority. Gaining respect is not a matter of being the boss and has nothing to do with being likeable or sociable; whether you talk, eat or smell right; or any measure that isn't directly related to the work. The amount of respect an IT pro pays someone is a measure of how tolerable that person is when it comes to getting things done, including the elegance and practicality of his solutions and suggestions. IT pros always and without fail, quietly self-organize around those who make the work easier, while shunning those who make the work harder, independent of the organizational chart.
This self-ordering behavior occurs naturally in the IT world because it is populated by people skilled in creative analysis and ordered reasoning. Doctors are a close parallel. The stakes may be higher in medicine, but the work in both fields requires a technical expertise that can't be faked and a proficiency that can only be measured by qualified peers. I think every good IT pro on the planet idolizes Dr. House (minus the addictions).
While everyone would like to work for a nice person who is always right, IT pros will prefer a jerk who is always right over a nice person who is always wrong. Wrong creates unnecessary work, impossible situations and major failures. Wrong is evil, and it must be defeated. Capacity for technical reasoning trumps all other professional factors, period.
Foundational (bottom-up) respect is not only the largest single determining factor in the success of an IT team, but the most ignored. I believe you can predict success or failure of an IT group simply by assessing the amount of mutual respect within it.
The elements of the stereotypes
Ego -- Similar to what good doctors do, IT pros figure out that the proper projection of ego engenders trust and reduces apprehension. Because IT pros' education does not emphasize how to deal with people, there are always rough edges. Ego, as it plays out in IT, is an essential confidence combined with a not-so-subtle cynicism. It's not about being right for the sake of being right but being right for the sake of saving a lot of time, effort, money and credibility. IT is a team sport, so being right or wrong impacts other members of the group in non-trivial ways. Unlike in many industries, in IT, colleagues can significantly influence the careers of the entire team. Correctness yields respect, respect builds good teams, and good teams build trust and maintain credibility through a healthy projection of ego. Strong IT groups view correctness as a virtue, and certitude as a delivery method. Meek IT groups, beaten down by inconsistent policies and a lack of structural support, are simply ineffective at driving change and creating efficiencies, getting mowed over by the clients, the management or both at every turn.
The victim mentality -- IT pros are sensitive to logic -- that's what you pay them for. When things don't add up, they are prone to express their opinions on the matter, and the level of response will be proportional to the absurdity of the event. The more things that occur that make no sense, the more cynical IT pros will become. Standard organizational politics often run afoul of this, so IT pros can come to be seen as whiny or as having a victim mentality. Presuming this is a trait that must be disciplined out of them is a huge management mistake. IT pros complain primarily about logic, and primarily to people they respect. If you are dismissive of complaints, fail to recognize an illogical event or behave in deceptive ways, IT pros will likely stop complaining to you. You might mistake this as a behavioral improvement, when it's actually a show of disrespect. It means you are no longer worth talking to, which leads to insubordination.
Insubordination -- This is a tricky one. Good IT pros are not anti-bureaucracy, as many observers think. They are anti-stupidity. The difference is both subjective and subtle. Good IT pros, whether they are expected to or not, have to operate and make decisions with little supervision. So when the rules are loose and logical and supervision is results-oriented, supportive and helpful to the process, IT pros are loyal, open, engaged and downright sociable. Arbitrary or micro-management, illogical decisions, inconsistent policies, the creation of unnecessary work and exclusionary practices will elicit a quiet, subversive, almost vicious attitude from otherwise excellent IT staff. Interestingly, IT groups don't fall apart in this mode. From the outside, nothing looks to be wrong and the work still gets done. But internally, the IT group, or portions of it, may cut themselves off almost entirely from the intended management structure. They may work on big projects or steer the group entirely from the shadows while diverting the attention of supervisors to lesser topics. They believe they are protecting the organization, as well as their own credibility -- and they are often correct.
Credit whoring -- IT pros would prefer to make a good decision than to get credit for it. What will make them seek credit is the danger that a member of the group or management who is dangerous to the process might receive the credit for the work instead. That is insulting. If you've got a lot of credit whores in your IT group, there are bigger problems causing it.
Antisocial behavior -- It's fair to say that there is a large contingent of IT pros who are socially unskilled. However, this doesn't mean those IT pros are antisocial. On the whole, they have plenty to say. If you want to get your IT pros more involved, you should deal with the problems laid out above and then train your other staff how to deal with IT. Users need to be reminded a few things, including:
- IT wants to help me.
- I should keep an open mind.
- IT is not my personal tech adviser, nor is my work computer my personal computer.
- IT people have lives and other interests.
Like anyone else, IT people tend to socialize with people who respect them. They'll stop going to the company picnic if it becomes an occasion for everyone to list all the computer problems they never bothered to mention before.
How we elicit the stereotypes
What executives often fail to recognize is that every decision made that impacts IT is a technical decision. Not just some of the decisions, and not just the details of the decision, but every decision, bar none.
With IT, you cannot separate the technical aspects from the business aspects. They are one and the same, each constrained by the other and both constrained by creativity. Creativity is the most valuable asset of an IT group, and failing to promote it can cost an organization literally millions of dollars.
Most IT pros support an organization that is not involved with IT. The primary task of any IT group is to teach people how to work. That's may sound authoritarian, but it's not. IT's job at the most fundamental level is to build, maintain and improve frameworks within which to accomplish tasks. You may not view a Web server as a framework to accomplish tasks, but it does automate the processes of advertising, sales, informing and entertaining, all of which would otherwise be done in other ways. IT groups literally teach and reteach the world how to work. That's the job.
When you understand the mission of IT, it isn't hard to see why co-workers and supervisors are judged severely according to their abilities to contribute to that process. If someone has to constantly be taught Computers 101 every time a new problem presents itself, he can't contribute in the most fundamental way. It is one thing to deal with that from a co-worker, but quite another if the people who represent IT to the organization at large aren't cognizant of how the technology works, can't communicate it in the manner the IT group needs it communicated, can't maintain consistency, take credit for the work of the group members, etc. This creates a huge morale problem for the group. Executives expect expert advice from the top IT person, but they have no way of knowing when they aren't getting it. Therein lies the problem.
IT pros know when this is happening, and they find that it is impossible to draw attention to it. Once their work is impeded by the problem, they will adopt strategies and behaviors that help circumvent the issue. That is not a sustainable state, but how long it takes to deteriorate can be days, months or even years.
How to fix it
So, if you want to have a really happy, healthy and valuable IT group, I recommend one thing: Take an interest. IT pros work their butts off for people they respect, so you need to give them every reason to afford you some.
You can start with the hiring process. When hiring an IT pro, imagine you're recruiting a doctor. And if you're hiring a CIO, think of employing a chief of medicine. The chief of medicine should have many qualifications, but first and foremost, he should be a practicing doctor. Who decides if a doctor is a doctor? Other doctors! So, if your IT group isn't at the table for the hiring process of their bosses and peers, this already does a disservice to the process.
Favor technical competence and leadership skills. Standard managerial processes are nearly useless in an IT group. As I mentioned, if you've managed to hire well in the lower ranks of your IT group, the staff already know how to manage things. Unlike in many industries, the fight in most IT groups is in how to get things done, not how to avoid work. IT pros will self-organize, disrupt and subvert in the name of accomplishing work. An over-structured, micro-managing, technically deficient runt, no matter how polished, who's thrown into the mix for the sake of management will get a response from the professional IT group that's similar to anyone's response to a five-year-old tugging his pants leg.
What IT pros want in a manager is a technical sounding board and a source of general direction. Leadership and technical competence are qualities to look for in every member of the team. If you need someone to keep track of where projects are, file paperwork, produce reports and do customer relations, hire some assistants for a lot less money.
When it comes to performance checks, yearly reviews are worthless without a 360-degree assessment. Those things take more time than a simple top-down review, but it is time well spent. If you've been paying attention to what I've been telling you about how IT groups behave and organize, then you will see your IT group in a whole different light when you read the group's 360s.
And make sure all your managers are practicing and learning. It is very easy to slip behind the curve in those positions, but just as with doctors, the only way to be relevant is to practice and maintain an expertise. In IT, six months to a year is all that stands between respect and irrelevance.
Finally, executives should have multiple in-points to the IT team. If the IT team is singing out of tune, it is worth investigating the reasons. But you'll never even know if that's the case if the only information you receive is from the CIO. Periodically, bring a few key IT brains to the boardroom to observe the problems of the organization at large, even about things outside of the IT world, if only to make use of their exquisitely refined BS detectors. A good IT pro is trained in how to accomplish work; their skills are not necessarily limited to computing. In fact, the best business decision-makers I know are IT people who aren't even managers.
As I said at the very beginning, it's all about respect. If you can identify and cultivate those individuals and processes that earn genuine respect from IT pros, you'll have a great IT team. Taking an honest interest in helping your IT group help you is probably the smartest business move an organization can make. It also makes for happy, completely non-geek-like geeks.