Category: Education

  • False positive demystified

    It happens sometimes when your colleagues come from a non-English language talking in a common language such as English, there are phrases which don’t readily convey what you want to say.

    The other day, when a friend of mine used “It’s a false positive” so suggest something, the other colleague gave a puzzled expression “What’s a false positive?”. Up until that point, I must admit neither did I have a clear understanding, but looking at the two words – false, positive – I could muster up an intuitive explanation on the spot.

    But back in my mind, I wasn’t really sure if I did explain the meaning simply using the dictionary definitions of those two words apart. I mean, it isn’t hard. But it was one of those phrases that you want to know more about with some level of confidence & clarity. Maybe it’s just me.

    The other day, when working with some study materials for a course about machine learning, I came across a brilliant piece of explanation that finally answered the meaning of “false positive” in one fell swoop. Take a look at this table below

    Actual = CorrectActual = Incorrect
    Prediction = CorrectTrue positiveFalse positive
    Prediction = IncorrectFalse negativeTrue negative

    Does it make sense? Absolutely yes – but I’ll explain if it doesn’t.

    The prediction is a machine learning result saying something is correct or incorrect (in my example the problem the machine learning is trying to solve/predict is if a patient has cancer or not looking at the size of the tumor & patient’s age). The actual is what you know – based on evidence or tests done beforehand proving that the patient did indeed have cancer or not. Lining up correct/incorrect with what the prediction says against what actually is makes the understanding about “false positive” much more clearer to me now.

    So, if you thought something was correct but it actually isn’t then it’s a false positive.

    The other way round, if you thought something was incorrect but it turned out to be correct then it’s a false negative.

    Makes much more sense now.

  • How to increase HDD size for a VM

    Quick step by step guide on how to increase HDD size for a VM

    Steps required are,
    1. To increase the hard drive space, first increase the hard drive size in VMWare.
    2. Execute below commands to first recognize the partition
    # /sbin/fdisk /dev/sda
    p
    n, p, enter # select partition number
    enter
    p # to verify new partition
    w
    # reboot

    3. Add the new partition to total partition to increase the disk space
    # /sbin/pvcreate /dev/sda3 # Modify sda3 to the last sda
    # /sbin/vgdisplay | /usr/bin/head # Check the VG Name, and LV Name which we are going to extend
    # /sbin/vgextend vg_centos /dev/sda3 # Modify sda3 to the last sdan
    # /sbin/lvdisplay
    # /sbin/lvextend /dev/vg_centos/lv_root /dev/sda3 # Modify sda3 to the last sdan
    # /sbin/resize2fs /dev/vg_centos/lv_root
    # reboot

    4. You should now see increased disk space
    # df -h

    Steps have been adapted from
    http://www.bluhm-de.com/increase-centos-6.2-hard-drive-space-/-partition

  • What would future in the ‘cloud’ look like

    What would future in the ‘cloud’ look like

    I am always amazed at what computers have done so far. Many of us use, live and interact with a lot of devices, connected peripherals every second of our life. It has undoubtedly led towards a better, more social (perhaps), and a much engaging, but sophisticated ‘digital’ life.

    Whenever I look back over history on how this trend has progressed, the outcomes do seem to follow one particular pattern – progress, fueled by improving our ability to do some things we couldn’t accomplish so readily (and easily, economically) in the past. Things such as online shopping, commerce, ability to communicate, share important moments, bringing resources from one end of the globe to the other end in fraction of seconds. It is definitely a better place to be in today, than it was before. I believe most of us would now find it hard to imagine how could one live without an Internet, or even a mobile phone ever.

    One of the important achievements towards making this possible has been the big names such as Google, Amazon, IBM, Microsoft, HP etc pushing the limits of what software, hardware together can do to achieve a more connected, a more ‘alive’ digital world to come true. One of the most important topics of this decade (I would say) has been the advent of Cloud Computing.

    Cloud Computing, in a nutshell, is the ability to use computing resources – such as CPU, memory, storage – over the Internet. While the debate over whether Cloud Computing is just another market buzz is pointless in my opinion, it does has brought a few important questions to my mind as I think about what kind of future this progress can promise.

    Take a look at a mind-map I made recently when researching one of the most popular clouds offered – Amazon Web Services.

    Amazon Web Services 2014 Mind-Map

    The beauty of AWS (Amazon Web Services, for short) is how they’ve accomplished a feat with a clear mindset of making computing truly available as a utility. Of course, many in the corporate world would argue that such types of computing facilities already existed in virtualization world, and that is very true. Corporate worlds often had these needs to be able to spin out new machines, networks inexpensive yet keep economies of scale when you have to throw away any unused inventory that you no longer need. With a physical computer, it is hard to just get the right mix of specs to satisfy, but with a virtual one, things become slightly more manageable.

    One of the key strengths of the AWS, and perhaps the topic in question that I have in mind is, the ‘promise’ of utility computing, pay-as-you-go computing, ‘rent’ over ‘own’ type of computing.

    Historically, when computers were the size of a room, and mere mortals couldn’t afford (or even consider) to have one, IBM owned and dominated an industry of computing power available to corporations interested on a ‘rent’al basis. The premise was for IBM to offer computers to big companies, universities and let them use these under a pay-as-you-go sort of agreement. The idea was to be able to bill customers mainly on CPU time, but this soon expanded into an industry where it was a full-time job for one to understand, and perform accounting on CPU utilization, storage used, and even control the unwanted cost so that rented costs could be managed. I consider that this model had its run, and in some cases, is still prevalent in corporate worlds which use rental printers, infrastructure as a service, or some might say, even software as a service. This kind of model did have some benefits, mainly in terms of being able to not worry about maintenance of such complicated machinery, even not worry about servicing, maintenance since all of that could be bundled by IBM as a ‘service’.

    So, in a nutshell the benefits of using IBM’s model were

    1. You pay for only using what you used, nothing else. For a small cost, we take care of any hardware maintenance, patching, upgrades for you.
    2. No upfront costs, nor any costs down the line. We can offer, augment, decrease our rented resources to balance your needs
    3. Your environment, your assets. We give you the best computing resources to get things done cheaper, and faster.

    Of course, it may have been done differently for different sizes, different customers, different geographies, but I believe that was the promise expressed to alot of corporate consumers who started switching to personal computers, workstations before then. Of course, everybody wanted one computer of their own, and many still do.

    Now, when I look at AWS, I kind of feel many points are reminiscent of the time when powerful computing, networking, increased storage was not cheaply available for many of us to use. Networked computing, cost of managing servers, databases is hard, and not just that, it is ‘expensive’ too once you own it. Given the vast power offered by Amazon to anyone at their fingertips, many young entrepreneurs can surely do wonders. But if you consider for a moment about what goes with becoming together as a part of this ecosystem, you do have to question yourself – if you do wish to ‘pull-out’ at some point, would it be possible for you to do? The simple answer could be yes, but as with many things in life, an investment into something, even if it is a cloud, is not so easy (or practical) to undo.

    I predict that as with many trends within digital world, cloud computing will bring about a division within the digital world with big corporations driving market share towards cloud, yet still keeping their heads occupied towards new management issues resulting of out ‘wasted’ cloud usage. Similar to electricity savings during summers, there will be CoolBiz days where people are encouraged to optimize their ‘spend’ on utility computing. New jobs requiring cloud administration, monitoring, usage accounting on cloud will spring up. We’ll decide how advanced is a country by looking at its consumption charts on daily computing used compared to rest of the world. Most probably, utility computing might even become a government-owned service offered to anyone who would contract, and pay for its utilization.

    It’s not too often I compare the scales of performance that everyone sees of Amazon, Facebook, Google compared with their own, and be somewhat mentally assured about the fact that if you’re on the cloud, you can have all of that anytime. What many of us do fail to acknowledge is that when you’re the size of Google, Amazon or Facebook, you’ll have enough incentive to use a cloud, or even with the right team, have a mix of your own together with public clouds together. Whether we do have the incentive today or even now is definitely not an easy question. But a ‘lock-in’ into any kind of technology, be in PCs, cloud is always going to have implications on future for rest of us.

    As the digital world continues to become an increasingly complex world of its own, giants like Google, Amazon who are best are what they do will continue to fuel it. Whether one sees this as an opportunity, a trap, an evolution in networked digital computing is best left to people. But from an altogether different perspective, I believe one must see beyond the promise painted today into what it can become tomorrow.

    My advice – definitely exploit the cloud computing but in moderation. You’ll only want to live in a shared/rented apartment, no matter how good, for so long until you can finally own one of yours.

    I think most of us eventually do own one.

  • Good artists copy; great artists steal

    Good artists copy; great artists steal

    Many of us associate this rather unethical quote with Steve Jobs of Apple. At least that’s where I heard it first. The second time around I came across this quote was in Cringley’s excellent book Accidental Empires.  The opinions are no doubt sound, and does make one ponder about the real experiences these famous entrepreneurs went through before getting at where they are.

    I must admit, I liked the final passage about computing as a transitional technology. The actual paragraph as quoted from Cringley’s book goes something like this-

    We overestimate change in the short-term by supposing that dominant software architectures are going to change practically overnight, without an accompanying change in the installed hardware base. But we also underestimate change by not anticipating new uses for computers that will probably drive us overnight into a new type of hardware. It’s the texture of the change that we can’t anticipate. So when we finally get a PC in every home, it’s more likely to be as a cellular phone with sophisticated computing ability thrown in almost as an after thought, or it will be an ancillary function to a 64-bit Nintendo machine, because people need to communicate and be entertained, but they don’t really need to compute.

    Computing is a transitional technology. We don’t compute to compute, we compute to design airplane wings, simulate oil fields, and calculate our taxes. We compute to plan businesses and then to understand why they failed. All these things, while parading as computing tasks, are really experiences. We can have enough power, but we can never have enough experience, which is why computing is beginning a transition from being a method of data processing to being a method of communication.

    People care about people. We watch version after version of the same seven stories on television simply for that reason. More than 80 percent of our brains are devoted to processing visual in formation, because that’s how we most directly perceive the world around us. In time, all this will be mirrored in new computing technologies. We’re heading on a journey that will result, by the middle of the next decade, in there being no more phones or televisions or computers. Instead, there will be billions of devices that perform all three functions, and by doing so,will tie us all together and into the whole body of human knowledge.

    I must admit the opinions are very plausible. It is more “correct” to consider technology as a transition than destination. Indeed … ! Success does look planned in retrospect.

    Yet another context set off echoing my own thoughts in the same book, which goes like this-

    It was in the clay room, a closet filled with plastic bags of gray muck at the back of Mr. Ziska’s art room, where I made my move. For the first time ever, I found myself standing alone with Nancy Wilkins, the love of my life, the girl of my dreams. She was a vision in her green and black plaid skirt and white blouse, with little flecks of clay dusted across her glasses. Her blonde hair was in a ponytail, her teeth were in braces.

    ‘Run away with me, Nancy,’ I said, wrapping my arms around her from behind. Forget for a moment, as I obviously did, that we were both 13 years old, trapped in the eighth grade, and had nowhere to run away to. ‘Why would I want to run away?’ Nancy responded, gently twisting free. ‘Let’s stay here and have fun with everyone else.’ It wasn’t a rejection, really. There had been no screams, no slaps, no frenzied pounding on the door by Earl Ziska, eager to throw his 120 pounds of fighting fury against me for making a pass at one of his art students. And she’d used the word let’s, so maybe I had a chance. Still,Nancy’s was a call to mediocrity, to being just like all the other kids.

    Running away still sounded better to me.

    What I really had in mind was not running away but running toward something, toward a future where I was older (16 would do it, I reckoned) and taller and had lots of money and could live out my fantasies with impunity, Nancy Wilkins at my side. But I couldn’t say that. It wouldn’t have been cool to say, ‘Come with me to a place where I am taller.’

    We never ran anywhere together, Nancy and I. It was clear from that moment in the clay room that she was content to live her life in formation with everyone else’s and to limit her goals to within one standard deviation on the upside of average. Like nearly everyone else in school and in the world, she wanted more than anything else to be just like her best friends. Only prettier, of course.

    Fitting in is the root of culture. Staying here and having fun with everyone else is what allows societies to function, but it’s not a source of progress. Progress comes from discord—from doing new things in new ways, from running away to something new, even when it means giving up that chance to have fun with the old gang.

    To engineers—really good ones, interested in making progress—the best of all possible worlds would be one in which technologies competed continuously and only the best technologies survived. Whether the good stuff came from an established company, a start-up, or even from Earl Ziska wouldn’t matter. But it usually does matter because the real world, the one we live in, is a world of dollars, not sense. It’s a world where commercial interests are entrenched and consumers typically pay closer attention to what everyone else is buying than to whether what they are buying is any good. In this real world, then, the most successful products become standards against which all other products are measured, not for their performance or cleverness but for the extent to which they are like that standard.

    It is like looking straight in the mirror talking to myself. How many times do I feel the same way? Mediocrity is considered normal, and anything that challenges that, even sarcastic humor, is seen as an insult or even a challenge to intellect blinded by a zeal to fit “in” no matter what it means for oneself.

    A good memo of the thoughts that concern me as an entrepreneur set out to change the very same world I’ve lived in.

  • Which works best – centralization, or decentralization

    Only the Paranoid Survive by ex-Intel CEO Andy Grove was a wonderful introduction to me about the importance of keeping your organization’s opportunities in check with ever-changing market needs. It did give an importance to diversifying centralization towards specialized decentralization – vertical industries against horizontal industries.

    Somehow at that time, which was almost 6 yrs ago, it seemed correct and proven with horizontal names such as Microsoft, Dell, Intel, other OEMs. In fact, I learnt most of my PC maintenance knowledge getting to put these together, and it still works great. The brilliance of plug-n-play type of PC industry really meant a lot of collective good coming together as one for benefit of the customers. And it still rules.

    On the other hand, Apple. For a long time, I kept resisting Apple. I was happy with my world as being able to choose from different options (was I really?) over being bundled together into one by Apple. Somewhere, I switched to iPhone, and my views expanded. I unconsciously started to measure ‘good’ in it’s entirety.  Not just the idea of ‘monopoly’, but the actual real-world example of that, the influence it showed to an industry I knew was the best, and perfect was dramatically changed.

    Now, in my own words, Apple is different to what Microsoft is. By that I literally mean their idea of ‘selling’ themselves. Microsoft enabled PCs, enabled OEMs, enabled plug-n-play but left out one very vital thing – their administrative burden was given to the people. Suddenly we had device drivers, certified programs, expertise sprung around specialization. I had to ask myself – were we really decentralized? You basically have to know your PC before getting to use it. I was a technician, and a user both at the same time. Essentially, I had to make things work by taking what is offered by horizontal industries, and hope to not touch it again (windows upgrade?).

    With Apple, I was no longer a technician. Hell, I tried to find Task Manager the first time I handled my iPhone. Slowly with each day I start to ‘use’ my iPhone without bothering that I’d have to take it apart. I was a pure consumer. And that was not just hardware, it was software too. In the back of my mind, I am happy that things funnel through Apple. I am tempted to go beyond, and take things in my hand, but I resist. I remind myself of where I should focus, and what is important.

    So in a sense, I prefer the horizontals, but funneled through verticals. In many ways I find that Apple shows responsibility for whatever it offers. It will use horizontals – vendors, makers, app developers – behind its strong fort, but what comes out is from Apple as a single contact with me. It makes me wonder if horizontals did really catch the drift correctly? In many ways, many still want to reach out directly to the customer in trying to push customers into the driver’s seat. Customer’s however seem to be comfortable either way … (alas)

    I favor responsibility going beyond just my product. I believe Apple (through Steve Jobs) realized that goal, leaving it to continue as a better way of doing good to the world at large.

    In some sense I trust the paranoia hinted by Andy Grove, but I believe too in enduring excellence. I endeavor to achieve that as a responsible entrepreneur someday.

  • Undermining what makes things work

    Undermining what makes things work

    Computers used to improve our lives, automate seemingly mundane work, enable much done with less is omnipresent. As with anything commercially successful, software too has received careful scrutiny, tons of knowledge, plethora of suggestions on how to keep making software better. Probably many of us are aware, software industry is one of the most exciting, most confusing commercial domains of our age.

    My own experience attempting to do my startup has provoked me to the depths about thinking what could be right balance of software as technology forerunner for my company, against company as a managed organization to continue improving the technology. I ponder on questions like, should management be well-versed in technology, or should management be just good, plain old management? But then, how does management perceive managing technology different to any other case for management, say automobile industry? Do I favor a hands-on, roll up your sleeves approach (and attitude) from my management team? Or do I allow managers to carefully handle the veil between upper management aspects, to low-level technical, trench oriented projects?

    To me, the answer is very elusive, and not one that may have a definite answer best and safest weight loss pills. I’ll find out, but there is one small detail that I have some impressions about.

    Technology projects about improving the existing technology are not new. Almost every organization having an IT division has all of their technology projects about improving the existing ones. As it goes with everything else, most of these are assessed with one primary reason – the cost. Large technology changes, cost of maintenance, technology work owned, but essentially maintained by vendors, value proposition to any emerging business … in short, how much do we get over how much we give. That is an interesting aspect, borrowed over from commercial world of business. While there are reasons why such kind of monetary evaluation precedes technology value, the issue gets clouded when technology becomes almost secondary to any company’s growth preference, money comes first (and foremost).

    Amidst all this progress, I keep wondering about the value of existing technology.  To me the clear question is how do organizations perceive the existing systems value? How much of current technology can be written for future? By how much – 5 yrs, 10 yrs, 1 yr? Would we, as users, creators of the technology have the same unchanged need when we are in the future?

    Overall, how do you really evaluate technology improvements when one is unaware to the fact that it is current, existing technology which has led to this situation where you can think about improvements?

    I feel that most of us undermine working technology, over ideal one. Ideal one, if exists, will only come by when you stop looking any further. Working technology, however, is real, error-prone, touches you now. Improvements, not just in technology but anywhere, happen when we start asking the right questions to right problems. The other option is to keep yourself shrouded in veils, pretending there is a problem your teams are solving making few more along the way to improvements.

  • Innovation to pioneer, innovation to disrupt

    Innovation to pioneer, innovation to disrupt

    Just to get a hang of how few of my acquaintances feel about innovation, and debate around potential to be disruptive, I decided to present a few takeaway points I gathered from the excellent book The Innovator’s Dilemma. The thoughts, ideas, historical facts laid out in that book are indeed brilliant, and I must say the ideas in the book are the primary reasons I could articulate some of my own internal thoughts.

    Most the points got through my friends easily. At some points I felt I had to explain using few examples. But in essence, many of my friends did show an appreciation of tendencies, signals that cause disruptive innovations to take seed. One of them also pointed me to a recent paperback Inc. article which did a take on debunking the myth on innovating.

    Ok, first off I believe the presentation went OK. While I still improve on that, I must say something triggered in the back of my mind during the last 50 minutes which I feel I need to answer for myself. I find that there is basic disconnect in what we term innovation is, and who are innovators.

    Let me say that first of all I acknowledge the fact that many ideas from The Innovator’s Dilemma are essentially the author’s opinion of what factors underpin an innovation to take seed and grow. The author’s ideas are indeed convincing, have a sound basis of data interpretation, and are in fact simple to fathom if you think about history of innovation seriously.

    What I takeaway in hindsight is that these ideas are not supposed to be taken as answers literally. It will be a fallacy to blindly follow all principles from the book verbatim with little or no serious effort into really absorbing the ideas. That is probably what the Inc article on debunking myths around innovation seems to do.

    Second, the whole buzz around innovation is not about getting rich quick, getting rich smart. In fact, I go as far as saying that getting materialistic gains is never the primary point of innovation! It’s more of a side-effect that follows, but is never inherent to notion of innovating. Innovation to an innovator is more personally engaged in that it results generally becoming acceptable to others than just the innovator alone.

    Most of the innovations are never about getting innovation to become successful. Instead I believe innovation is about personal sense of achievement, confirming (reinforcing) the innovator’s belief that whatever their dream they set out to achieve ultimately became a reality. In many ways, I tend to consider innovating as more along the lines of pioneering spirit. As Kim Woo-jung correctly quotes in his brilliant book Every street is paved with gold, the innovator does not work hard for a few coins, because he/she can make money anytime. The whole idea of innovation is never about justifying success as a means to an end. Instead innovation is all about innovator achieving his/her fullest potential in this short span of worldly existence here amongst us. To that comment, I do greatly respect entrepreneurs who give young aspiring entrepreneurs the invaluable gift of believing in your dreams.

    Third, innovation treated from a perspective of ‘known’ facts is like generally trying to fit round pegs in round holes. Again quoting Kim Woo-jung (and the same comment is aptly coined as an innovator’s dilemma) – when you try to do something better than other’s, then you will be only as successful as other’s could have been if they chose to follow you. What makes an innovator different is repeatedly attempting something that an innovator believes only an innovator can do. If an innovator cannot begin to see beyond what the environment offers, then the innovator is merely a smart businessman looking to get lucky. An innovator if determined can make it possible to fit a square peg in a round hole.

    Pioneers, businessmen are both essential for innovation. Some want to be rich, famous, while some seek meaning, a sense of higher purpose in their life. I believe innovators seek such purpose and a meaning. The rewards with each innovation attempt are of a value greater than innovation itself. I once quoted an excellent phrase I heard which says it takes courage to see the dreams which only you can see.

    It is my humble advice to fellow innovator’s, and aspiring entrepreneurs – Seek to evolve yourself beyond what you thought is possible for you now. Seek to answer, rather than looking for answers. Innovate and disruption will follow.

  • Entrepreneurs bandwagon spirit

    Entrepreneurs bandwagon spirit

    My latest entrepreneurial endeavors about creating new products has been rewarding. There is so much to learn, understand and explore to find an idea, worth all the effort and so much important to me. I personally experienced a constant surge of determination when trying to make products such as Docs9 and 5w1h. Under a healthy blanket of tension, there is something wonderful of having accomplished these. I have realized strongly that something, anything if it means important to you is always worth pursuing for.

    I learnt alot. Most important, I am learning about how to keep the main thing the main thing. I find it so easy to get lost in details when you are on top of creating a product. The good news is that all of this is do-able. Even at a small pace, even in tiny amounts the focus on main thing is important. The focus, as I call it, is the sole reason for all of your efforts. It could be a purpose, a reason, a burning desire, or simply put – an unconscious drive you feel, but cannot quite articulate. Whatever your definition, keeping your focus in sight immensely helps supporting your motivation and determination in your pursuit to achieve what you are set for.

    For example, I love technology. What more can be done with technology, is more interesting for me. My focus, as I believe now, is to make something out of technology, whatever that is. I set out to create my first product Docs9 – https://www.docs9.com/, and then the next one 5w1h – https://www.5w1h.co/ both with the same burning desire to make something useful out of technology. When I say ‘something’, I want to explain that it should be useful in some sense to others. The benefit that it would give to someone using it, or what someone can achieve by using it. In the world of technology, the benefits could be time-saving, entertainment, or financial.

    When I set out with Docs9, my whole focus was providing a simple, easy to use presentation platform. I wanted to have a platform that gives sharing a presentation the sole precedence. Nothing else. I resisted hard to provide (and inadvertently) repeat the temptation to provide editing, provide attachments and what other features I could simply cram into making another product that already exists in market. This hasn’t been easy, especially when introducing my product to someone. It usually enters into an implicit comparison with a similar product they already heard about. It becomes a sort of mental barrier for them to see through that frame of mind into my product and understand my motive behind the idea of collaboration through dialogue. Perhaps I could be exaggerating my bit, but I often get the impression that most of us think what we want isn’t really what we actually want. Most of what we want is a like watching through a stained glass and believing that what you see is true.

    On the positive side, there have been growing number of signups on Docs9, which is a great motivational boost for a young entrepreneur like myself, to believe that out there are users who see the side of collaboration. It feels great to be able to offer something of benefit to those, and keep persevering not just for sake of gratification but also for a sense of worth you believe you can do. This is my definition, not certainly what I want to borrow from what is generalized opinion of accomplishment. Put in other words, this is accomplishment as I see fit, and it makes my determination stronger. The (whole) point is that if you set to believe what you can achieve, then the best way is to find out is yourself. Right or wrong, success or failure comes after, not before you’ve tried what you really wanted to do.

    5w1h has been a different game altogether. I set out to do it not for any particular benefit at all. I just wanted to do it for myself. I just felt that I had to do it. I started with a simple one to one chat, then did this, then did that, then again did this, then again did that. At some point I was confused. At some point I felt to just leave it. But something was nagging, some dissatisfaction kept me pushing to do it, finish it, complete it. That is exactly what I did. One thing I have learnt while on Docs9 is to be able to trust your own self. Inspite of anything that would try to get in the way, I kept my focus on one simple thing – I want to do it. Whether it makes sense now (or ever), I believe that towards the end 5w1h has come up nicely together.

    I was happy to be able to get 5w1h out, satisfied of my work. Like an artist admires his art, I admire my work and feel happy about it. Same is the way I admire Docs9. I feel great about making Docs9, and judging by the steady signups, I believe that others feel the same way too.

    I jumped the entrepreneurship bandwagon with pure entrepreneurial spirit. I do not know where the journey will end, but I know where to start.

    No matter what, I will continue. No matter how, I will persevere. I think therefore I am.

  • Not busy

    These days I think alot about my startup. Whenever I meet out new people for lunch, or I talk to friends my thoughts seem to be gravitating towards – “What could I use this person for?”

    Somehow I have elected to follow my instinct exclusively. To some, this might sound the hard way. For some reason, it feels right. At times, I wonder if I could simply read an entrepreneurship book, and get some frame of mind to link my thoughts. What is important? What is priority? What is experience? I have kept pondering on these for quite a while.

    I must admit it is liberating. There is some thrill into thinking like an entrepreneur. Perhaps, a recent email from GoDaddy CEO Blake Irving aptly describes what I feel now –

    “One of the clearest lessons we’ve learned is that the one word to describe you best is ‘courageous.’ You go after what you really love, you chart your own course, and you create something (often from nothing) that usually makes the world a better place. Whether it’s a neighborhood pizza shop, an organization to help those in need, or a company poised to launch a new industry, you believe where others don’t. You have the guts to strike out on your own to make your dreams — however bold or humble — a reality. That’s courage, and it’s worth every ounce of support we can give.”

  • Underestimating software

    My wife shared an interesting thought this morning over breakfast. – Theory is when you know everything but nothing works. Practice is when everything works but no one knows why. If theory and practice are combined, nothing works and nobody knows why.

    Over countless experiences, shared by many people, big or small, IT is still an art. What’s more, it is still an art far from perfection. IT, in particular software done in large organizations, has this syndrome. Many good things get done, yet large IT projects “always” fail. I’ve yet to come across a successful project. There are many good projects, Apache Software, Google and like, but in as much I think about it, these haven’t grown successful overnight. Part of the impression of success is adoption, and proportion of people who are affected, in other words, who depend on using it.

    I may not be touching on something yet unknown here, but just how many methodologies, principles, guidelines, theories, languages are out there? And of those, how many have got you really convinced to solve your IT problem guaranteed? Is it MSF, or TOGAF, or ITIL? Is it AGILE or LEAN or TQM? Is it proprietary or open source? Is it platforms, or home-grown? Is it C# or X-Code? Is it OOP or Procedural Programming? Is it Russians, or Indians? Is it lack of documentation, or is it lack of requirements articulation?

    Let’s consider for a moment the ideal state – person A has a problem. Person B offers and gives person A a tool to solve the problem. Person A is happy. Problem solved. Person B too is happy. Imagine this for a moment with a simple need; let’s say lunch in a restaurant. You’re hungry, you go to a restaurant, order, eat, feel satisfied, and offer compliments. Your need is solved; both you and the restaurant are happy.

    Is preparing food a new thing? Is your way of ordering different? Did you have to think much over this, except perhaps decide on what you want to eat? Or buying clothes? Okay, maybe one can go far with this, and say there is always customization – order made dishes, or order made suits, or order made software.

    Why is building useful software fast so difficult in our organization today? Will we ever get something done quicker? I may be completely wrong, but problem is not in the way we are doing things, it’s the approach with which we are planning to do our next steps. And this is not as easy as saying follow MSF, or TOGAF ADM, or ITIL “IT as a service” ideas. More than often, these are confusing to begin with, get understood differently, pushed unnecessarily, and carried over as a burden to the next guy heedlessly.

    Today more and more of us are working for software, instead of the other way round. Not to say, the practice is when everything works but nobody knows why seems to come more frequently than I had anticipated. Ever changing need to change something, time-pressures, individual ambitions all seem to have a coherent effect on just making things further complex, not simpler. And when things go to that stage, it’s a point of no return, people continue that as if it was a household chore cleaning dishes – you don’t get any fun, or see anything of value in it. Soon it becomes a “that’s the way we do things around here” common-sense and everyone gets by this, leaving a yet subtle roadblock to overcome before we begin thinking about other problems. Not to mention the problem further aggravates by pure Know Nothing Know it All theorists.

    Okay, where am I going with this? I admit it’s all over the place without making a concrete point.

    Still pondering if an old Chinese proverb “He who solves a problem with a problem will always have a problem in waiting” is what’s going on today?

    Without sounding too pessimistic or competent (out of my mind), maybe I’ll give this thought a try again soon …

    I sometimes get puzzled about requirements. If we could look into the future, and predict what would we need at a level of crystal clear clarity. then perhaps it would be a no-brainer to make a system out of it.

    Take another approach, how do I extrapolate (aka. read between the lines) when something is told as a requirement. This is different from offerring a menu of choices, and asking to pick one. Instead the other way round.

    Systems made by the same person who articulates his own needs are alot easier, simply because you are adaptive to both changes to your own perception of what you might need as it goes on changing when you see some degree of finished system.

    If a person is ‘cornered’ into a witness box with technical guys challenging with different questions, each of the question feels random. These are not on the same wavelength, or if they are someone is making some wild assumptions about what is understood. How does one get two people thinking on the same plane of thought? How can this new level of information be captured right at that moment, yet not set to stone to make un-needed commitments? Why have all methodologies, tools, approaches not succeeded so far? Why is there no ‘right’ answer?

    By ‘right’ answer, I allude to becoming ‘one’ with the purpose, the intent of the author. There are no more questions at this state, no doubts about the goal, no disagreements on outcome.

    Has software taken too much influence of traditional assembly line, one step follows the other, typical & traditional silo process? How do we foster ‘creativity’ without a process? Part of getting better over our past ways of doing things is to also improve upon the way we did things. But the fundamental approach hasn’t changed at all. We still ‘see’ IT development process in it’s strictest sense of – planning, designing, developing, testing. Some of that makes sense, but altogether sometimes it makes no sense, especially when software in itself has made signifcant strides to make or break something too fast, too easy. We have create too much ‘fat’ over the actual process of ‘making’ something under the pretext of entire governing organizations, support, organizational layers, vendors and so many other non-essential things.

    So what do I mean by all this? Do I mean we don’t need project management? Do I mean one can just start building things, and let the plan evolve as the things get built? Do I say governance is counter productive to it’s purpose?

    Before I can answer that, to me it appears that something simple as a software program has been now so deep biased with tradtional laws of doing things ‘right’, that no longer does one try to break out of the ordinary. Throw in whatever new idea (software, technology, automobiles, …) in the world, the moment it is commercialized, businesses spawned, living made, it’s already become a big wall of people to get through ‘before’ an actual user, and the software can actually talk to each other.

    People tend to always favor ‘gray’ zones. Something that is not yet known, needs improvement. In somewhat same way, what I am trying to discover through this thread is same thing. I am discontent with how software is treated, how much non-essential information, structure is built around it, and just how much waste of time it’s become ‘customary’ under name of meetings, updates, releases, bugs, analysis without hardly anyone being able to break a drop of sweat.

    The best way is to ‘play’ the game for time being … but I sense something fundamentally needs to change in this game eventually.

    A plausible summary that agrees with one argument I have. Borrowed from http://codebetter.com/gregyoung/2013/03/06/startups-and-tdd/

    I wanted to write a few comments about TDD in startups. Good code is the least of the risks in a startup. Sorry but worrying about technical debt making us go slower when we have a two month runway and likely will pivot four times to quote Bob.
    Captain Sulu when the Klingon power moon of Praxis exploded and a young Lieutenant asked whether they should notify Star-Fleet: “Are you kidding?” ARE YOU KIDDING?
    One of the biggest mistakes in my career was building something appropriate…

    It was just after Hurricane Katrina. I was living in a hotel. An acquaintance asked me if we could hack together this business idea they had for a trading system. He had the knowledge but not the know how. I said sure, hell I was living in a hotel!

    In less than two weeks we had an algorithmic trading system. It was a monstrosity of a source base. It was literally a winforms app connected directly to the stock market. UI interactions happened off events directly from the feed! Everything was in code behinds (including the algos!) Due to the nature of the protocol if anything failed during the day and crashed the app (say bad parsing of a string?) the day for the trader was over as they could not restart.

    But after two weeks we put it in front of a trader who started using it. We made about 70-80k$ the first month. We had blundered into the pit of success. A few months later I moved up with the company. We decided that we were going to “do things right”. While keeping the original version running and limping along as stable as we could keep it while adding just a few features.

    We ended up with a redundant multi-user architecture nine months or so later, it was really quite a beautiful system. If a client/server crashed, no big deal just sign it back on, multiple clients? no problem. We moved from a third party provider to a direct exchange link (faster and more information!). We had > 95% code coverage on our core stuff, integration suites including a fake stock exchange that actually sent packets over UDP so we could force various problems with retry reconnects etc/errors. We were very stable and had a proper clean architecture.

    In fact you could say that we were dealing with what Bob describes in:
    As time passes your estimates will grow. You’ll find it harder and harder to add new features. You will find more and more bugs accumulating. You’ll start to parse the bugs into critical and acceptable (as if any bug is acceptable!) You’ll create modules that are so fragile you won’t trust yourself, or anyone else, to modify them; so you’ll work around them. You’ll build a festering pile of code that, with every passing week, requires more and more effort just to keep running. Forward progress will slow and falter. It may even reverse as each release becomes buggier and buggier, and less and less stable. Catastrophes will become more and more common as errors, that should never have happened, create corruptions and damage that take huge traunches of time to repair.
    We had built a production prototype and were suffering all the pain described by Bob. We were paying down our debt in an “intelligent” way much the way many companies that start with production prototypes do.

    However this is still a naive viewpoint. What really mattered was that after our nine months of beautiful architecture and coding work we were making approximately 10k/month more than what our stupid production prototype made for all of its shortcomings.

    We would have been better off making 30 new production prototypes of different strategies and “throwing shit at the wall” to see what worked than spending any time beyond a bit of stabilization of the first. How many new business opportunities would we have found?

    There are some lessons here.
    1) If we had started with a nine month project it never would have been done
    2) A Production Prototype is common as a Minimum Viable Product. Yes testing, engineering, or properly architecting will likely slow you down on a production prototype.
    3) Even if you succeed you are often better to stabilize your Production Prototype than to “build it right”. Be very careful about taking the “build it right” point of view.
    4) Context is important!

    Never underestimate the value of working software.