6.26.2012

Surprise! Technology can write its own story and find you

In the news within the past couple of months, a story emerged of computers writing sports news items for online newspapers.  The software was able to "write" a story that appeared to be written by a human.  This removes the ability of a paper to slant a story to their liking, at least until it hits the editor's desk...

Now imagine how that technology could be extended to write about anything.  Anything such as people or organizations.  The technology could assemble a complete background of information that can be found on news sites, so you would be profiled if you've made the news.  A little scary, but fascinating idea.

Well, imagine no more.  It seems that the Defense Advanced Research Project Agency (DARPA) is working on this idea now (DARPA machine reading system).  The software has not yet reached the perceived quality of that of the computer sports writers, but it's not too far away.  This link will take you to an interesting article about the "machine reading" capability (Computer writes story)

Another step into a similar direction in what I'm sure will have the conspiracy theorist up in arms is Google's announcement of a self-learning software package that over time begins to recognize shapes of bodies and faces.  Over time the system was able to accurately detect human faces 81.7% of the time.  Again, this system was not prompted to look for anything.  The premise was to let the neural system run to see what it would do.  That link is here (Google Neural Network).

So, what?  The wow factor is that science fiction is becoming reality very quickly.  Consider how these two technologies could easily complement the other.  For example, while the DARPA developed system was compiling news items about you, the Google system would be mining video for similar faces to yours.  Next step toward the world of Minority Report...or perhaps 1984. 



What do you think of these technologies and their possibilities?  Particularly interested in how one's privacy is viewed, even though the news item and most likely the video feeds are in the public domain.



6.25.2012

Windows 8 and The Apple Magic Mouse

I am hopeful that Microsoft, an OEM, or a hardware manufacturer releases a mouse similar to the Apple Magic Mouse.  With the introduction of Windows 8, the metro tile interface scrolls left and right when using a mouse scroll wheel.  The Apple Magic Mouse does this with a two finger swipe, so it seems it would not be a huge leap to see this in the Windows 8 environment.



I love this Apple mouse, and I would truly like to see a similar approach for the Windows environment.

Have you used this mouse and do you think its features would work well in the Windows environment?


14 March Update: I've had the opportunity to use the Magic Mouse with my Windows 8 computer, and I'm quite pleased there was no need for a hack or new drivers.  It worked, and will likely remain my mouse of choice until something better comes along.

Smart Phone as a Computer Input Device

Just something to think about...

Imagine having a computer without a mouse or touch pad.  Instead you'd use your smart phone as the input device.

One could place the phone on a flat surface, or hold it, and with a Bluetooth connection, use it in place of a mouse.

Obviously this would go beyond a simple mouse control.  It would instead be an extension of some of the application features we see in use today - music app control for example.

What do you think?

6.22.2012

Thinking Differently? Motivation? Perseverance? Or All?


Thinking differently requires one to break preconceived notions.  It requires one to go against conventional thinking.  It requires one to leave their comfort zone.  It does not require one to achieve buy-in from others.  It is no different than a young child thinking, believing, they cannot ride a bike or draw their favorite animal.  Most times thinking differently requires perseverance and motivation.  Think back through history and you will find many examples of historic significance which occurred because of someone thinking differently.  That difference was because of that person's motivation and perseverance to make a change.

In June 21, 217 BC, the Battle of Lake Trasimene occurred.  It was a major battle in the Second Punic War (WikiPedia).  The significance of the Lake Trasimene battle is that is one of the largest and most successful ambushes in military history.  That could not have occurred without someone having perseverance and motivation.

Consider the lowly vacuum and what its done for us, but most recently the Dyson vacuum.  In Dyson's own words, "We're taught to do things the right way.  But if you want to discover something that other people haven't, you need to do things the wrong way... When I was doing my vacuum cleaner, I started out trying a conventionally shaped cyclone, the kind you see in textbooks.  But we couldn't separate the carpet fluff and dog hairs and strands of cotton in those cyclones.  It formed a ball inside the cleaner or shot out the exit and got into the motor.  I tried all sorts of shapes.  Nothing worked.  So then I thought I'd try the wrong shape, the opposite of conical. And it worked."

I know I'm stating the obvious, but it's been on my mind for a couple of days.  No matter how important or mundane something is perceived to be, one can only move beyond where that topic is if they are willing to view it from different perspectives.  The new, or different, perspectives will only take you one step in the direction of a new product (or really anything), as it is the motivation and perseverance which follows that will carry the idea to fruition.  And right now, I am motivated to find another cup of coffee....though that's not really thinking differently.

6.19.2012

Has Technology changed or have I changed?


There once was a time that I believed I needed the fastest processor, the most RAM, and the largest and fastest hard drive.  Building, re-building, tweaking was a way of life for me.  There was also a time in which the differences between a low, middle, and high-end computer was substantial.  But, living on a Navy enlisted salary precluded me from enjoying a high-end computer, unless I built it myself (thanks to Barry B. for teaching me how to build computers!).  However, at some point in the last five years either the technology changed or I changed.  Maybe, both?

Last year I had a conversation with a friend about our computing needs.  He felt he needed a super fast computer (he doesn't play games...).  My response was that I only needed something that provided me a good internet connection and a solid, pleasurable user experience.  I know my statement is subjective, as my desired user experience is quite likely much different than yours.  The point, though, is that is first time I ever publicly articulated that I didn't need a computer capable of heavy lifting.  Heck, I'm not even sure if I had even really considered my computing needs until that moment.

I believe my weaning off of high performance computers began with my use of smart phones.  I've carried smart phones since 2000 as part of my job (thank you BlackBerry); I had email and net connectivity but the Blackberry was my plow horse.  I never cared what the horse looked like or worried about what it could do, as long as I could talk with my customers and be connected via email.  That work horse was like that reliable car your parents gave you to ensure you would make it home from college on the weekends - who really cared what it looked like as long as it got you from point A to point B.

It wasn't until the iPhone was released that I, like the rest of the world, realized that my work horse could also be a show horse.  Ah, but that is also, I believe, the same point in which my belief in what a computing device should really be doing for me.  Steve Jobs and Apple introduced many of us to the simplest, most powerful phone available, but they also introduced a new way of computing thinking.  At this point my needs did not change, as I still had customers and I still needed to talk and email with them regularly.  I was still one of those who schlepped a smart phone and a regular phone around; a modern day cowboy with a digital gun ready to bang out an email or phone without breaking sweat, and sometimes doing both at the same time on two different devices.  Yep, I was the modern day Pat Garrett!



Last week, my mother-in-law was finally ready to buy a new computer.  A laptop no less.  Her last computer purchase was stressful for both of us, as we were both trying to find the right computer at the right price, but with the most performance.  The decision process went on for what seemed like months...years...decades.  I kid, I kid.  The computer purchase before that one was just as decisive.  BUT!  But, this time, if you recall I am a reformed computing horsepower junkie.  I listened to her dutifully read off the computer specs for three different computers from three different computer sellers.  I stopped her after about ten minutes to tell her she was over thinking her computer purchase.  I explained that we no longer need to worry about the differences in computing power, as any one of the three computers she was considering will be 10 to 100 times more powerful than her current computer ;-) .  I said instead of focusing on computing power, lets instead focus on price point and retailer reputation at point of sale and support.  It's that simple.

Before anyone argues it is because I'm getting older.  It's not.  I still drive the loud, fast cars.  I still drive the Jeep that's lifted with over sized tires and loud exhaust.  No, I may be getting older, but I've certainly not matured.  Just ask my wife.  

My computing needs haven't changed either, except I don't play first person shooters any more as my reflexes aren't what they used to be and I honestly cannot justify spending any time playing a game on a computer when I could be doing something constructive like reading or taking a nap.  I do still get very excited when a new device is announced and I am usually an early adopter for new phones and devices (yes I will be an early owner of the new Microsoft Surface tablet, and not because I work for MSFT).

There continues to be a concerted effort to bring more horsepower to the CPU, and to make them smaller.  I'm not in that race anymore.  I want something that provides a consistent user experience - from browsing, talking, to games.  I want something that allows me to run it, at will, for days on end without recharging.  I want something with a constant, solid, fast internet connection.  Oh, and it's got to look good, too, as my vanity requires it.

So, I suppose technology and I have both changed, but I'm unsure if the technological changes influenced my view and usage of computers.  The chicken or egg argument, eh?



6.18.2012

Simple Answers to solve Complex Questions


As I always tell my children when we're cooking, they must always remember that there really is a such thing as "too much of a good thing".  That applies just as much to software.  Adding just one more feature can easily tip the scales from delivering a smooth user experience to one of confusion.

I'm not immune to it.  I fell into this trap of complex software thinking many years ago, and it burned me once the product was delivered to the user community.  I didn't know then, but simple design trumps complex every time.

The software I mentioned earlier provided the capability to build several products, but the focus for this particular build was on just one of those product flows.  Just one product, but my team determined that we could deliver new software with the capability to build that one product five different ways.  We failed to discuss this with our user community.  We failed to discuss it with anyone.  We failed.  Miserably.

It was quite weird to not have seen the problems with introducing a complex software package.  How could we have not seen the train wreck coming.  Someone should have picked up on this during requirements development and decomposition, as our requirements deck grew.  Dumb.  Five different methods without a reasonable explanation as to why we'd impose such a pain our user community.  Silly.  A follow on build had us removing all but two of those flows, and moving from complexity to simplicity in delivering a better product.



The complexity we introduced came as the result of good intentions.  We wanted to introduce the capability allowing the users as much as flexibility as possible, but it backfired.  Instead of flexibility we caused the users to pause to consider which use case was specific to that moment.  At no time should one have to pause to consider how to use software.  It is either obvious to the user or it is not.  If it is not, then you risk your product not being adopted and your competitor's product becomes the go-to answer.

Too often, we fall in love with our idea.  Too often, we lose sight of our goal of providing great user experiences.  When the first white board session begins, someone should write "Simple" at the top of the board as a reminder to everyone.  When a work flow is being developed, one should be continually asking if that is the simplest method to deliver the desired outcome.  I realize there are instances in which a complex approach may be necessary, but I am absolutely certain the complexity being introduced could be reduced if desired.  Over thinking the problem will likely force your user base to have to over think their problems. 


6.17.2012

My Blog's Browser stats


We read a lot about what is the most used browser which I've never paid much credence to, as I care only about what works for me.  My preferences have changed over time, but that's been because of the advances made in a particular browser, and not my affinity for a particular product.

The thing that is interesting to me is the browser statistics as they apply to my blog.
Firefox
(35%)
Internet Explorer
(34%)
Chrome
(16%)
Safari
 (7%)
Mobile Safari
(2%)
Opera
(1%)
Mobile
(1%)
CrMo
(<1%)
Shiretoko
(<1%)
BingPreview
(<1%)
 


I'm not sure what to make of my audience, as the numbers are different than what I've read as to how preferred browsers are ranked.  I wonder how this aligns with the Mayan Calender? 


Meetings and The Doughnut Eaters


Don't be the wall flower, the doughnut eater, the oxygen sucker.  You know that guy.  He sits, or stands, in the back of the conference room, who never speaks.  He just stares at the presentation.  He sucks the life out of the meeting by not participating.  He's the guy constantly checking his watch to ensure he's not late for his tee time.  He will, however, be the first one who grabs copies of the presentations so he can share everything he learned when returning to the home office.


Yeah, you know the guy...



So, listen up.  These things can happen, or are happening, if you are invited to my meetings -
  1. Expect to be involved in the meeting, because I expect you to be involved.  
  2. I will not be afraid to turn people away at the door.
  3. You either have value or you do not.  
  4. It is simple.  No open invitations.  You are either on the list or not...no in between.

Don't be afraid to stop your meeting and ask who just dialed in.  People think they're sneaky, but you can ferret out the lurkers.  Once, I did a meeting role call, and I knew (felt) that others were online but didn't speak up.  That feeling was validated a month later when a person made a joke about something I had said in that meeting.  It was a meeting in which that group had not been invited to attend.  Ah, a snitch is among us.  The obvious way around this is to not host a conference number, but I'd only suggest this if working on a critical project or you suspect you've had leaky meetings.

I've gone so far as locking conference room doors and conference call dial ins once I knew I had a quorum.  Well, I really only did this a couple of times, as there was one particular guy who was always late which forced us to rehash the first ten minutes to catch him up.  So, I locked him out.  If you don't respect my time, or the time of the others that showed up on time, then you do not belong.

Anyone can attend and take great notes, but it is those individuals that participate that help make a difference.  Participate in the meeting, or do not be in the meeting.  Attending a meeting is very different from participating in a meeting.  Meetings are hard enough to coordinate, as everyone is busy.  Meeting can end up being a time sucking black hole if not properly managed.

One last note, strive to hold your meeting in a locale considered non-exotic, or risk busting your budget on coffee and donuts for those that are only there to see a new, exciting place.  You know who they are.  A meeting that is typically held in a warehouse district never attracts a large audience, but the attendee list swells when it is announced the meeting is going to be held in Hawaii.  

6.12.2012

Rise of The Machines


At which point in your career, or heck even your daily endeavors, are you comfortable with allowing a machine to take over part of your tasking.  We've allowed machines to wake us for years (I've had a love-hate relationship with that invention since the beginning of time).  Coffee makers, microwave ovens, thermostats, DVRs.  The list is endless.  But in the last couple of years, we are seeing machines support, or complement, our decision processes as we tackle so called big data (Great timeline about big data - http://whatsthebigdata.com/2012/06/06/a-very-short-history-of-big-data/).  Certainly big data is changing the way businesses operate, but what of our decision processes?  They are changing, but I'm curious how many business are moving toward allowing total machine manipulation?

So, the Rise of the Machines in the decision making process is occurring.  


No, I'm not talking of the Terminator.


I'm thinking more about what humans have done (continue to do) for eons.  Those things are:
  1. Decision making
  2. Discovery (used to be called search, but I prefer discovery)
  3. Data association
  4. Complex reasoning (debatable everyone is capable of this)
  5. Categorization
Today a machine can perform these things and far faster than a human.  Our saving grace is the fact that computers can not yet make the contextual leap without human input.  But, how much longer will that be the case?  There are those that believe we are fast approaching the technological Singularity (http://en.wikipedia.org/wiki/Technological_singularity), but let's not open that can of worms today.  So, not only must data always visible, accessible, understandable, and trusted, it now has the possibility to always be manipulable by machines.  

Shall we play a game?


How possible is it that Singularity is truly upon us regarding the capability to truly leverage big data advantages.  So, consider the five bullets listed earlier and now add in Prediction (I'm sure I'm missing many elements from my list), and now we have a system that must be running into perpetuity.  The phrase "internet time" (which one assumes is much faster than a "New York minute") infers we now live in a time in which there are no coffee breaks, time outs, snack breaks.  It's either work as fast as the data arrives or miss out on that coveted high click through rate or be one upped by another news site.

Finally, the problem isn't so much that machine are taking over (the anxious side of me believes they have already taken over...we just don't know it yet), its the fact that the contextual links that need to occur is a dynamic being that cannot be pre-coded, pre-loaded, pre pre pre.  It's not possible to hit every possible data connectivity.  But that's not really the problem.  The problem is somewhere a business leader is going to be willing to allow the machines to drive the business logic without human intervention, and the IT team will be summarily executed when it fails.  Now is the time to begin holding decision makers hands and explain nirvana will not arrive until Singularity is truly achieved.  Until then, they cannot cut the IT budgets or reallocate their business analytic's team, as they will continue to be as necessary as the electricity supplying the  m a c h i n e s . 


6.11.2012

Unpredictable Data


Similar to what Jeff Jonas has spoken of for years about data finding data, the machines will be finding knowledge with little, or no, input from human operators.  Now imagine the data linkages being sifted through a knowledge colander looking for potential connections to new data, but also standing questions.  But what of data that's flowing in that was not thought of during set up?  

I know we are already using iterative processes working through large amounts of data searching for meaningful, logical data relationships to uncover trends, predict future events and then present a predetermined set of courses of actions to the decision makers.

How much thought has gone into data that is left on the floor...deemed as "unusable" by the algorithms.  Perhaps that data points to a different course of action that no one considered.  Considering the amount of unstructured data created every day, one understands bits of data are flowing through the filters untouched only to land in a data repository because we don't know every question, or combination of questions, that needs to be asked to find answers.

It seems a new specialty of data scientist is going to emerge which is not looking at dynamic or forensic data, but on data archaeology mining the unpredictable data.  The data archaeologist would be looking at the data that is left on the floor (unpredictable data) to determine why that data was collected / harvested, but not picked up as a solution or contributing to a solution.  This effort would help finesse the data algorithms to either ignore the so called unusable data or find that slice of info that would prove its merit (context) in being connected to other data.


Speaking of unpredictable....



Unpredictable Data is where businesses are losing.  Determining how to leverage that data is where one can gain a competitive advantage.  How much impact is unpredictable data making on businesses is unknown, but one can guess there is an impact...

6.05.2012

Do you provide development guidance or constraints?


Several years ago, I was asked by a customer I had previously supported to return to a project to help that team deliver a product.  The team was doing okay, but it had gotten stuck in the mud trying to multi-task.  Instead of focusing on the groundwork, the team was being pulled in many different directions testing, supporting current versions, and what ever else they and everyone else felt to be more important than the future vision.  It was going to be an awkward situation, but I decided to take on the challenge.

The first thing I did was review the requirements specification.  It was a monster specification document, but its size was too large in relation to the system it represented.  I whittled it down from over 850 requirements to approximately 250.  Think about those numbers.  While the previous authors had good intentions, they had certainly strayed into implementation territory.  I follow the philosophy that "less is more", but I don't like taking it down to a skeletal requirement set.

One thing to consider when determining how hefty your requirements set should be is that typically one's development bill will increase relative to the number of requirements.  I am not saying one must always settle for a small number of requirements, one must instead find the number of requirements that appropriately describe and bound the system which allows the development team to understand your intents.  It's a leap of faith, but the developers are on your team because someone (maybe you?) believed they were the ones capable of delivering the right product.  So, why then, do people insist on essentially handcuffing a development team with a huge requirements tome.

Back to my story.  About a year after a contract had been awarded to a development team, my customer brought in additional engineers who felt they needed to prove their worth.  Immediately I was told my requirements specification was too light...it needed more meat to it.  "We intend on rewriting and updating it immediately".  Do you see the train wreck coming?  I did, unfortunately they did not.  I advised them that they could certainly update the requirements document, but those changes would not go into effect until the next software version, as any requirements changed "now" would break the contract already in place with the outsourced development team.  No, that was not well received.  I naively thought they were grandstanding.  I was wrong, as they did truly intend on completely rewriting the document. Yet, they knew nothing of the system nor really understood the philosophy I had in writing the document.  But that's a story for another day....

The document update was stalled by their boss for a future effort which was a great thing indeed.  So, lets flash forward a year to the first site receiving the "requirements light" system.  There was a mix up in the delivery of the training (the story's not really relevant to today's topic), and the training was going to be delayed.  But, one of the system users asked if he could give the system a drive to see if he could figure it out.  The trip report quoted him as saying the system  was "too easy to use; there must be something wrong".

No, I do not believe that I can walk on water or save the world by writing an awesome requirements specification.  What I do believe is that by following my philosophy of only including what is absolutely necessary in a requirements document provided the development team the necessary leeway they need in finding the most efficient way to implement the idea.

The implementation of the idea is the development team's job.  Encroaching on that causes more problems than just bruised egos and endless, insane meetings.  Allowing a customer requirements deck to roam into the implementation side of the house constrains the development team to only one method, or approach, to developing a great software package. One's requirements should be what is desired, not what one wants to implement.

I'm no longer working for that customer, but I'm quite certain their engineering team has not taken the time to ponder why that system was so well received by the user community.  I'm quite certain the engineering team's college professors beat into them what a requirements document should be and they refuse to remove the "way it's supposed to be" blinders from their eyes to learn their are many ways one can deliver a product.  No matter how many professors and text books tell you, being heavy handed is not one of them.  A customer's requirements document purpose is to provide boundaries and desires, not handcuffs.

6.04.2012

Three prong formula for a purchase?

If you were to buy software today, any software package, which of the below would be your highest priority? Which wouldn't matter? Is there something missing? Would you be willing to drop one or two of these to get your desired package?
Price
Quality
User Experience
I liken this to the proverbial three-legged stool, in that one cannot remove any of the three without causing the stool to tip over. However, in this age of apps, people seem to tolerate more than earlier in this decade when many considered low-priced software to be lower quality. We are now seeing that is not necessarily the case with the introduction of the smart phone and table application markets and now the introduction of computer app markets (downloadable apps and browser-based apps). It has always been my belief that user experience trumps all, but I'm interested in your thoughts.
Let me hear your thoughts.