Tag Archives: software

How Applied Software Economics Can Solve Technology Providers Problems

In an earlier post, I talked about the role of Economics in the Software Industry, or lack thereof, and how I embarked on a journey to seek a Master’s Degree in Business Economics to seek out the truth of whether or not economics can be applied to software technology to solve some of the problems ailing the industry.

I pursued my economics degree in earnest to investigate whether or not there are potential benefits/explanations in applying an interdisciplinary approach and if the application of certain economic concepts could have the potential to positively impact the software industry. The software industry which is riddled with many infamous stories of epic failures (healthcare.gov!!), monopolistic behavior, collusion (see this amazing post on a secret non-poaching pact in Silicon Valley titans of technology),

All of the companies I worked for did not employ anyone with an Economics Degree (even if they did, that was not their primary job), just simply Finance! Almost the entire middle management layer are financial planners with a massive preoccupation of the 30/60/90 day budget/revenue planning/forecast, revenue attainment, etc, cycle which occurs, four times a year and they were busy making calls to folks in the field asking whether they will close the deal or not! You know the type and you almost always feel that while you are doing actual valuable work, they are just counting the beans you are bringing in!!

Anyway, to offset this massive resource drain of corporate resources of “Finance” layers, groups started sprouting up within the boundaries of the corporation and sometimes through a recommendation from an outside firm (a Management Consulting firm) with the groups’ primary focus is on Corporate Strategy, or mid to long-term planning, or sometimes the highly misnomer R&D!!. The cost of not doing so proved fatal to many companies who failed to “plan” to compete, or simply ignored to have a compete strategy as they were blindsided by smaller more nimble technology startups which overtook them. I bet you can name ten of those tech companies right now that no longer exist. You know, the software darlings of the times with the meteoric rise and speed-of-light fall.

There has been many books, research papers, etc, which study the failure of businesses. I had to read through quite a few in my recent University days (in Economics it’s called “Creative destruction” and many other terms related to Darwin’s theory of evolution). As an example, Apple and Microsoft are a great case study. At some point Apple’s “closed” business model almost cost it its own existence. However, when the PC world became the Wide Wild West of cheap components, buggy software, and so on, Apple’s business model forged ahead with a simple advantage “more stability and security”.

The economic principles behind both camps, Apple and Microsoft, were at the opposite end of the spectrum. I am talking hardware-wise. Apple was “locked, proprietary” and a “closed” ecosystem where MSFT was “Open”.

Enough theory and back to reality. If you are a business owner, executive, IT Manager, I hate to break the bad news to you: There is a cost to doing nothing! Please allow me to explain: You built a product or a service, now you are ready to sell it, how do you price it? Do you bundle it with another product? Do you follow the herd of free then premium? Build it, let will come, and then figure out a successful revenue model?! How about lock-in? Can you assure you customers they are not going to be locked in for the rest of the life of your software? The list is very long and I have yet to scratch the surface and what’s more scary is going at it alone without the aid of any theory which could be applied to address such issues.

For example of applied economics to solved project failure is an approach to treat software functionality completion as stock options where the maturity date is the completion date for that particular functionality (I borrowed this one from Barry Boehm). This is where a completion of say a report accounts for X number of options pre-agreed upon prior to the project start date. Missed the date: Your options are underwater and it’s time to focus on not missing the next cycle.

Ideas such as this one, grounded in economic theory can greatly improve performance, motivate people, and are extremely creative to solve chronic problems (how many times have you heard about projects missing deadlines with cost overruns, etc.)…. Just food for thought!


Software and the human mind: Is there an Evolutionary Gap?

I have done this experiment a while ago where I asked people what is software? It was a lot of fun and I recommend that you try it. I found out that if you are a programmer, you think its code, an architect, you are thinking abstraction layers, connectors, models. Customers however think cost, will it do what they want without disrupting their business? And then I asked my mother, her answer was: “software is what makes the computer whirr and allows me to check out her friends on Facebook, Skype and watch my favorite soaps” (which I found amazing insofar as it was the closest to reality answer!)

Software is like someone telling you, the shop you are looking for is about half-a-mile walking distance. I find these (directions) to be the funniest since you have to have walked to that shop many times and measured the distance before you can be even close to accurate as to where the shop is (or used Google Maps!) But even with maps, for the majority of us, our human minds cannot really visualize a mile or a mile-and-a=half or two. We are simply not equipped to conceptualize distance, which is the same with Software.

It’s difficult for me to believe that the human mind has totally evolved to fully understand Software Engineering, as it does understand say Civil Engineering. I believe this where most of the problems affecting our industry comes from.

In general, there is no one definition in reality that matches the one stating that a program is a “set of instruction performed on data to transform it into a desirable output”. And this is where and why we get into trouble. Say you are estimating a project, each person on the project/product team will have a different context associated with the definition of software. OK, they might be close, but there will always be subtle yet sometimes detrimental differences.

So what’s the best approach to solve this problem? I can think of a few: use a framework/methodology to as a contract to maintain perception cohesion. Also, you can keep a core team to use frequently as repetition can potentially cause convergence of perception and help in overcoming our evolutionary deficiencies. This approach will result in consistency, but not necessarily creativity. For that, you have to mix up the team and go through the pains I started this post with!!

Do you agree? It’d be great to hear about your workaround our yet-to-evolve human brain.