Coming soon: Google on your brain The pace of computing power gains is only getting faster and that means big changes in the way we live. Are you ready to become a mind-reader?

NEW YORK (Fortune) — Just thinking about likely near-term innovations in computing is exciting, but slowly a longer-term vision is coming into focus.

Down the road we’re probably going to have access to something approaching all information all the time. Our lives – much longer by then because of the implications of this for medical care – will be enriched, even as our behavior will be very unlike how we live today.

Already much of our software and data is moving to giant remote servers connected to the Internet. Our photos, music, software applications like Microsoft Word, and just about everything else we use a computer for will be accessible to us wherever we go.

The other huge, and related, move of the moment is toward ultimate mobility. Several trends are taking us there. The cellphone is becoming more like a PC while the PC is becoming more like a cellphone. In short, the next great era of computing – succeeding the PC one – will likely be about smaller, cheaper, more-powerful portable devices.

If you wonder how devices can get smaller and yet replace the PC, keep in mind that a major innovation we’re seeing right now is vastly-improved voice-recognition software. While it only works on the fast processors of a PC today, the inexorable growth of computing power will soon take that kind of power into your cellphone. So long keyboard!

In the next phase, the devices essentially disappear. An article in the new issue of Fortune by Peter Schwartz and Rita Koselka describes the amazing coming world of quantum computing.

Forget the technical details – quantum computing is tough for non-engineers to grasp. Suffice it to say that if you thought the increase in computing power was impressive during the past 20 years, the pace will likely speed up radically as quantum computing takes hold within the next decade.

In a short piece I wrote as part of a broader look at the future last September, I speculated that in the future we would feel that everything in life had become like an open-book test. “Any kind of information is available anytime you want it,” I wrote. “Simply speak a question, or even think it. You will always be connected wirelessly to the network, and an answer will return from a vast, collectively-produced data matrix. Google queries will seem quaint.”

At the time, I thought I was being a little wild, but less than a year later such talk is almost routine in the futurist camp. Chris Taylor at Business 2.0 this week published “Surfing the Web with Nothing but Brainwaves.” Taylor explains that already quadriplegics can play videogames, control robotic arms, and turn a TV on and off, using only their minds. They are connected to a computer with an implant that reads electrical patterns in the brain.

Sony has already patented a game system that beams data directly into the brain without implants, reports Taylor.

In the future quantum-computing world which Schwartz and Koselka describe, we’d go way further. Computing power would be so great that we could easily have “network-enabled telepathy.” We’d wear headbands with unimaginable computing power.

It’s fascinating to consider some of the potential social and even political ramifications of such a turn toward ubiquitous information availability. The necessity to learn languages might disappear. If the devices necessary to participate in this information revolution were cheap enough, and the network truly ubiquitous and global, the economic playing field could be leveled. If information is power, everyone would have it. That’s the kind of breakthrough the developing world needs.

Even moral codes and behavior might alter, if all that available information led to a profound transparency in human conduct. One of my beliefs is that people will routinely record their entire lives on some equivalent of video.

Sharing your personal history – warts and all – might then become routine, in order to improve your perceived trustworthiness. Computing is now so important that to talk of its future is inevitably to consider the future fate of mankind.

Five mistakes managers make most often

Some management mistakes are so common that you can actually compile them into a list. If you’re a manager struggling to find out why your team is dysfunctional, take a look at the behaviors in this list and see if any look familiar.

  1. Not communicating with the team. I know, I know, you’ve seen the advice for communicating so often you want to smack someone. I want to smack myself for saying it so often. But you know what? Unless you’re on the front line heading into a military battle, you have to take time to communicate with your team members. You don’t have to pass on every shred of information you’ve gotten from upper management on a new initiative, but you have to give them enough information to know why they’re being asked to do what they’re being asked to do. The more information your team members have, the more ownership they’ll feel in the process, and the better they’ll perform.
  2. Continually focusing on the negative. Thinking in negative terms is a common result from working in a reactive environment, which IT tends to be. In that environment, IT spends most of its time keeping the negative to a minimum with goals such as decreasing network downtime or putting out fires. A good leader has to make an effort to recognize the positive. (How about mentioning increased uptime?) Recognize your people for the forward progress they make and not just for their efforts to keep things from getting worse.
  3. Changing policy due to one person. The term “team” makes some managers think they have to treat everyone the same way. This is true in many cases, but if one person has a performance issue, don’t take across-the-board measures to correct it just because you’re afraid of confronting that one team member. If one team member is failing to complete some duties in a timely manner, don’t introduce a policy forcing the whole team to submit weekly progress reports. Deal only with the one with the issues.
  4. Not understanding the needs and concerns of your team. Some IT leaders find it virtually impossible to tell their bosses that something can’t be done. The team’s bandwidth or overall state of mind takes a backseat to real or imagined glory of being the guy who “gets things done.” Good managers don’t over-promise on their team’s behalf.
  5. Never admitting you’re wrong or never taking responsibility. There’s risk involved in being a manager of a team. And that risk is, if your team fails at something, you should and will be the one held accountable. It doesn’t matter if one team member screwed something up; your job was to manage the overall process of all the team members, and you didn’t do it. So suck it up and own up to that. On a related note, if one of your actions caused a kink in a project, admit it. It’s ironic but not owning up to a problem damages your credibility with your team more than simply saying, “I was wrong.”

10 skills developers will need in the next five years

If you’re a developer looking to get ahead in your field (or in some cases, to simply stay employed), this is not a good time to be complacent. Justin James lists the skills you’ll want to work on now to maximize your future job prospects.

With the recent changes in the economy, a lot of developers are focused on their short-term job prospects. At the same time, it’s important to make sure that you get the most bang for your buck when it comes to taking the time and energy to learn new skills. Here is our list of 10 skills you should be learning right now to make sure that your resume is relevant for the next five years. The list is hardly exhaustive, and there are huge swaths of the industry it won’t cover (mainframe developers, for example). Nonetheless, for average mainstream development, you can’t go wrong learning at least seven of these skills — not only to the point where you can talk convincingly about them at a job interview, but actually use them on the job.
1: One of the “Big Three” (.NET, Java, PHP)

Unless there is a radical shift in the development world (akin to an asteroid hitting Redmond), most developers will need to know at least one of the Big Three development systems — .NET (VB.NET or C#), Java, or PHP — for the near future. It’s not enough to know the core languages, either. As projects encompass more and more disparate functionality, you’ll need to know the associated frameworks and libraries more deeply.
2: Rich Internet Applications (RIAs)

Love it or hate it, in the last few years, Flash is suddenly being used for more than just animations of politicians singing goofy songs. Flash has also sprouted additional functionality in the form or Flex and AIR. Flash’s competitors, such as JavaFx and Silverlight, are also upping the ante on features and performance. To make things even more complicated, HTML 5 is incorporating all sorts of RIA functionality, including database connectivity, and putting the formal W3C stamp on AJAX. In the near future, being an RIA pro will be a key resume differentiator.
3: Web development

Web development is not going away anytime soon. Many developers have been content to lay back and ignore the Web or to just stick to “the basics” their framework provides them with. But companies have been demanding more and more who really know how to work with the underlying technology at a “hand code” level. So bone up on JavaScript, CSS, and HTML to succeed over the next five years.
4: Web services

REST or SOAP? JSON or XML? While the choices and the answers depend on the project, it’s getting increasingly difficult to be a developer (even one not writing Web applications) without consuming or creating a Web service. Even areas that used to be ODBC, COM, or RPC domains are now being transitioned to Web services of some variety. Developers who can’t work with Web services will find themselves relegated to legacy and maintenance roles.
5: Soft skills

One trend that has been going for quite some time is the increasing visibility of IT within and outside the enterprise. Developers are being brought into more and more non-development meetings and processes to provide feedback. For example, the CFO can’t change the accounting rules without working with IT to update the systems. And an operations manager can’t change a call center process without IT updating the CRM workflow. Likewise, customers often need to work directly with the development teams to make sure that their needs are met. Will every developer need to go to Toastmasters or study How to Win Friends and Influence People? No. But the developers who do will be much more valuable to their employers — and highly sought after in the job market.


6: One dynamic and/or functional programming language

Languages like Ruby, Python, F#, and Groovy still aren’t quite mainstream –  but the ideas in them are. For example, the LINQ system in Microsoft’s .NET is a direct descendent of functional programming techniques. Both Ruby and Python are becoming hot in some sectors, thanks to the Rails framework and Silverlight, respectively. Learning one of these languages won’t just improve your resume, though; it will expand your horizons. Every top-flight developer I’ve met recommends learning at least one dynamic or functional programming language to learn new ways of thinking, and from personal experience, I can tell you that it works.
7: Agile methodologies

When Agile first hit mainstream awareness, I was a skeptic, along with many other folks I know. It seemed to be some sort of knee-jerk reaction to tradition, throwing away the controls and standards in favor of anarchy. But as time went on, the ideas behind Agile became both better defined and better expressed. Many shops are either adopting Agile or running proof-of-concept experiments with Agile. While Agile is not the ultimate panacea for project failure, it does indeed have a place on many projects. Developers with a proven track record of understanding and succeeding in Agile environments will be in increasingly high demand over the next few years.
8: Domain knowledge

Hand-in-hand with Agile methodologies, development teams are increasingly being viewed as partners in the definition of projects. This means that developers who understand the problem domain are able to contribute to the project in a highly visible, valuable way. With Agile, a developer who can say, “From here, we can also add this functionality fairly easily, and it will get us a lot of value,” or “Gee, that requirement really doesn’t match the usage patterns our logs show” will excel. As much as many developers resist the idea of having to know anything about the problem domain at all, it is undeniable that increasing numbers of organizations prefer (if not require) developers to at least understand the basics.
9: Development “hygiene”

A few years ago, many (if not most) shops did not have access to bug tracking systems, version control, and other such tools; it was just the developers and their IDE of choice. But thanks to the development of new, integrated stacks, like the Microsoft Visual Studio Team System, and the explosion in availability of high quality, open source environments, organizations without these tools are becoming much less common. Developers must know more than just how to check code in and out of source control or how to use the VM system to build test environments. They need to have a rigorous habit of hygiene in place to make sure that they are properly coordinating with their teams. “Code cowboys” who store everything on a personal USB drive, don’t document which changes correspond to which task item, and so on, are unwelcome in more traditional shops and even more unwelcome in Agile environments, which rely on a tight coordination between team members to operate.
10: Mobile development

The late 1990s saw Web development rise to mainstream acceptance and then begin to marginalize traditional desktop applications in many areas. In 2008, mobile development left the launch pad, and over the next five years, it will become increasingly important. There are, of course, different approaches to mobile development: Web applications designed to work on mobile devices, RIAs aimed at that market, and applications that run directly on the devices. Regardless of which of these paths you choose, adding mobile development to your skill set will ensure that you are in demand for the future.