Tuesday, February 28, 2012

The Largest Benefit of Collaboration in the Workplace

I believe that the biggest benefit to collaboration in the workplace in today’s market has to be the potential for innovation. In one of my class textbooks Enterprise 2.0 Implementation, it states on page 72: ”In today’s economic arena wherein competition is global and products and services are cheap due to the increasing commercial potentcy of emerging markets, price is no longer an area in which organizations can hope to differentiate themselves. Instead, innovation is the principle means through which organizations can remain competitive.”

I agree with the author here, but I would take it even further and argue that in order to even enter certain markets, companies must have an innovative product or service. In many industries/markets, the barriers to market entry to be the cost leader are very high. I doubt anyone will be able to compete with Walmart as a cost leader, for example, any time soon.  However, one only needs to look at Apple for a good case study on innovation and becoming a market leader in the high-end niche electronics market.  Apple decided to change the focus of its company and drive focus away from just PCs and also into the mobile computing market.  Soon after coming out with the iPhone and iPad Touch, it was able to post its best non-holiday quarter earnings of 1.2 billion in profilts (Q1 FY 2009). In addition, Facebook is another good example.  Facebook started out as just one of many social networking sites. Initially, it was an invitation-only website where members had to be a student at a University in order to access and participate in the site. However, soon after adding a way to “tag” photos of friends and by concentrating on the user experience instead of sponsors Facebook took off, while its competitors, like MySpace, faded in popularity.  That innovative focus boosted the popularity of the website and has driven its succcess even to today (source).  Finally, Spigit is taking advantage of this trend by providing tools for companies to harness "crowdsourcing" in their client's organizations in order to boost opportunities for innovative solutions to problems.  "Spigit’s customers include 26% of the Fortune 100 and 16% of the Fortune 500".

So how does a company foster innovation through collaboration you ask?  Many have argued that innovation occurs in complex environments through social learning networks because the knowledge needed to solve the problem in that domain often spans multiple disciplines or specialties. For example, a paper entitled Interorganizational Collaboration: and the Locus of Innovation: Networks of Learning in BioTechnology states “We argue in this paper that when the knowledgebase of an industry is both complex and expanding and the sources of expertise are widely dispersed, the locus of innovation will be found in networks of learning, rather than in individual firms.”  Also, a white paper by IBM, entitled The new Collaboration: Enabling Innovation, Changing the Workplace, makes a similar point:  ”A company is a group of individuals. No one knows what everyone else knows… The new collaboration can provide a platform for helping the many operate as one because each person can be only a step away from the knowledge that other people have.”

It seems the need for collaboration is here to stay and will only grow increasingly more important in order to gain market leverage in our fast-pasted, highly competitive global economy.  Therefore, the salient question becomes: are you doing enough to foster meaningful collaboration that leads to business value among your employees in your organization?

Friday, February 24, 2012

Personal Attitudes Toward Solving IT Problems

Building Trust with the Client or Why Soft Skills are so Important

I used to think the most important goal of developing software was to do everything the client says to do, verbatim, without argument or regard for the consequences. However, in my experience, this has often led to project failure. Projects succeeded when my point of contact for the client was a subject knowledge expert on the technologies being used and really understood and valued user experience design principles.

The *best* way to build trust with the client (or anyone else for that matter) is to convey your ernest desire to do whatever is in the best interest of the client for the entire duration of your relationship with the client - in a word: altruism. Use your active listening skills to understand what your client really needs.

Once trust has been established, your recommendations are more likely to be considered and implemented. Sometimes this may mean offering a cheaper solution or a solution that the customer can maintain themselves without needing custom development or maintenance every year. Your clients will remember that you acted selflessly and will be more likely to work with you again in the future on another project, or recommend and introduce you to other clients.

Could this be a Systemic Problem?

Systems Thinking has always fascinated me. And I only got more interested after reading Peter Senge's book The Fifth Discipline: The Art and Practice of Learning Organizations. Systems Thinking is one of the 5 disciplines he believes an organization must possess in order to maximize its business potential, among other things. It's a good book and I highly recommend it. I have a favorite bookmark that I go to, as a cheatsheet of sorts, when I am faced with a particularly challenging work flow or business process problem that I need to solve: Places to Intervene in a System.

Debugging is Underrated!

I feel strongly that this is the *first* lesson any programmer should be taught: how to debug computer systems. I would have to say that the most useful skill I possess as a programmer is the ability to debug anything. I *have* to know why it's not working - it will keep me up all night... And here's the thing - it's completely underrated! Sure, you can find millions of webpages dedicated to tips and tricks and code samples, but very few sites on good debugging techniques. I'll be sharing some of my favorite resources in a future post. I just wanted to shine the spotlight on debugging.

Continuous Improvement

Confession - I have a tendency to over-think really simple things. I'm not alone - most IT folks I know seem to have the same affliction. For example, when I was a kid, I often pondered about the most efficient way to tie my shoes (go ahead, laugh). I've literally spent days thinking about this from every perspective I could imagine - from redesigning the laces and shoes to some sort of self-tying mechanism.

So, when I approach an IT problem, I often check in with myself to determine if I'm over-thinking the solution:

  • Have I properly identified, defined and understood the problem? 
  • Have I verified that all my assumptions are true? 
  • If I were the user, ideally, how would I want the overall system to function? 
  • Can any of the processes/components be simplified/improved? 

    Monday, February 20, 2012

    A Rant on the Usability of Mobile Touchscreen Websites

    This is a desperate plea to all web developers out there.  Please detect that I am on a mobile device and change all of your links to buttons.  Yes, even if the button will take up the entire width of my screen - that is OK!  What is *not* OK is having to zoom (which, sometimes I can't) and try for a very long time to touch a link and navigate to the page that contains the information that I want.  Stop using links.  Use buttons.  That is all.  Thanks for your consideration!

    Signed,
    Every Mobile User.

    Laziness is Simply a Lack of Motivation

    Programmers are often accused of being lazy.  However, I would argue that being lazy can be a good thing - especially when laziness comes from not wanting to waste mental energy coding a file upload routine, coding a basic form or hand coding routines that could easily be auto-generated.  

    What excites and motivates me is the process of innovation, or more specifically, getting to a place where I can experiment or research in order to determine the best way to accomplish a task or even, occasionally, break new ground.  But, I'll also settle for solving a problem after careful consideration and planning.  Sure - there are those die hard optimizers out there who want to create the most efficient file saving routine.  I say more power to you - and while you are busy with that, I'm going to figure out how to get more done in less time with fewer lines of code, while giving the user the best possible experience without cutting corners.  

    Users have grown more sophisticated and simply won't search through a terrible information architecture to find hidden or poorly presented information.  Nor do they want to watch your lengthy marketing videos.  I have observed (through academic research that I will be sharing soon) that the average internet user now appears to exhibit symptoms of a mild form of ADHD and/or information overload.  They simply do not have any more room in their heads for more stuff and instead seek to be entertained or informed quickly, efficiently and accurately.  Yes, they are growing more skeptical by the second and are catching on to your shoddy journalism or your pseudoscience interpretation of good research.  And since there are so many places on the interwebs to get something similar, they're just as happy to go elsewhere.

    I like to imagine that my users are too smart and too busy and I have too many competitors to make excuses about the poor user experience of  my website/web application.  This always motivates me to produce the best results.