Sunday, February 26, 2012

Find Your Denominator

What is finance? I'm glad you asked. Having passed an online course, I'm now an expert. Finance is about comparing investments so that you can make decisions about what to invest in. A dollar today is worth more than a dollar tomorrow, because it could be invested today (this is called the 'time value of money.') The problem finance tries to answer is: exactly how much is a dollar tomorrow worth today? The answer: lots of series and ratios.
discounted cash flow formula
The answer?
Really, this answer isn't so clear. It may appear to the layman that finance is just applied math, in which you can plug in a formula and get the right answer. But if this were the case, no one could make money, because everyone would have perfect information. (In this way, finance is predicated on rejecting the fundamental assumption of classical economics.) The math quickly falls away, either because few variables are certain or because there are many ways to calculate present value, depending on what assumptions you make.

What are you left with? Judgment, just like any other field worthy of intellectual pursuit. If finance could have been automated by computers, it would have been by now (never mind High Frequency Trading). Becoming good at finance is a matter of knowing which formula to apply when, or how to prioritize which evaluations. This involves experience and general principles, not rules. If you didn't like word problems as a student, don't go into finance.

good to great by jim collins
Not bad
Jim Collins makes this point in his book Good to Great. He argues that since gross profit comparisons in themselves are not very useful, companies need to discover their particular ratio that slices through the numbers. For an architecture firm, this might be profit / design. For an eCommerce site, it could be profit / transaction. For a real estate agent, it may be profit / time on the market. You have to find your economic denominator. These are not formulas they teach in business school, and they are not always obvious.

For IT professionals, all this suggests that the people in suits might not know what they want to see. This has nothing to do with the typical IT complaint that business users don't know what they want, because they don't understand the technology. Rather, there is an element of uncertainty at the heart of financial planning that has nothing to do with technology. Key Performance Indicators are not given and they will change as a business and its economic climate changes.

This uncertainty is a boon for IT people because, sometimes, knowing enough to be dangerous about something allows you to think more creatively than those indoctrinated by a professional education. Get data on everything. Enable users to compare crazy things. Make a tool that charts profit per every single metric you have available. Some might not make any sense, but some might just be the KPI your business has been looking for. Even if you're not a licensed data scientist, you can play the part.

Sunday, February 19, 2012

A Parliament of Things

Technology is a scene of social struggle, a parliament of things on which civilizational alternatives contend.
--Andrew Feenberg
In the wake of CES, I've had a lot of conversations that go something like, "Have you seen the new X? It can do A, B, and C!"  Proponents list off the functionality that X can do, and haters point out what it cannot do (D, E, and F, which Y does). The conversation centers around a particular gadget and its abilities. Rarely does it enter into the sphere of what X should do.

When you start talking about possibility (should) rather than actuality (is), you quickly slide into the realm of philosophy. Many technophiles avoid philosophy due to a faith that technology will solve all problems--we just need more of it. Ignoring philosophy might seem to be the more realistic and safer thing to do. Socrates was, after all, condemned to death.

An early blog post
But this so-called 'realistic' viewpoint actually ignores how technology happens, and in two ways, according to Andrew Feenberg, a professor of philosophy at Simon Fraser University. First, technologies developed for one purpose are often used to do other things. That is, their meaning is socially determined. It's not hard to find examples of this. The architects of the Internet could never have guessed in the 60's what it would look like today. It's to their credit that their design could be repurposed in many ways, from lolcats to the Arab Spring. Similarly, Johannes Gutenberg, who simply wanted to spread the word of the bible with his invention of movable type, could not have dreamed of the social upheavals--including the Reformation and the French and American revolutions--made possible by the new printing press.

Second, people determine what technologies should be developed. Feenberg calls this the cultural horizon of technology. There is nothing inevitable about the course technology takes. If many technologies are developed to kill and exploit people--whether the atomic bomb or the ludicrously expensive F-35--that's because a small group of people and interests tend to decide what is researchable. If many technologies are developed to automate repetitive tasks, that is because of the price that we, as a society, put on efficiency. Hence the continuing importance of IT departments and the automation of manufacturing.

There are thus two ways that societies shape technology: in what gets researched and developed (their cultural horizon), and in how technologies are put to use (their social meaning). Both sides constitute the 'parliament of things', as Feenberg calls it (note: this is not the same as Latour's use of the same term). If we don't like our current technologies, we need to democratize the funding of research and have conversations about what kinds of technology we want. Funding for technology research typically occurs in two ways: through markets and through the government. Both are controlled by our votes, both literal and metaphorical. We also need to talk about the uses to which technologies are put, such as by enforcing norms or changing social practices.

$1 trillion for a plane

If this all sounds a bit idealistic, consider a couple of examples of the democratizing of technology. Feenberg notes that many regulations which were bitterly fought eventually came to be seen as obvious, including child labor laws in turn of the century America. It was argued that the inefficiencies labor laws would introduce in the labor system would be prohibitively costly, yet it's hard to imagine what the 20th century would have looked like without them.

And, of course, the government is not the only tool we can use to change the course of technology. In the last ten years, journalism has raised awareness about 'cyberbullying', so that parents can talk to their children and teachers to their students about appropriate uses of social media. Social media can be regulated by governments, as in the case of recent changes to privacy law, but they can also be monitored by societies themselves.

So, what do you want technology to do for you?

Links
-Andrew Feenberg's Ten Paradoxes of Technology

Sunday, February 12, 2012

The Art of War

While heeding the profit of my counsel, avail yourself also of any helpful circumstances over and beyond the ordinary rules.
-- Sun Tzu
How do you win a war? There is no easy answer. If ever there was an art that could not be reduced to a set of axioms, it's war--and perhaps database programming. Admittedly, I have neither fought in nor commanded in any skirmishes, battles, police actions, or wars, but I'm pretty sure that if there was a surefire way to win, it would have been discovered by now. (Well, there is one rule: never start a land war in Asia.)

The same is true with database programming (never
select *). All forms of programming, and of problem-solving more generally, involve trade-offs. But the trade-offs are the greatest with database programming. As the database is the greatest barrier to performance in any application, its design is the most fraught with philosophical and practical dilemmas. I find it very difficult to interview people for database-related jobs, because there are rarely any right answers. It's also difficult to glean advice from books and blogs, because situations vary so wildly.

For instance, there is a trade-off between reads and writes in a database. If you have a lot of reads, you can create indexes to your heart's content, assuming you have unlimited space, which is never the case. Similarly, there is a trade-off between batch processing and real-time transactions. If your database handles both, and you cannot simply schedule batch jobs for off-hours, you will have to prioritize one or the other. Another trade-off is between reporting and online transactions. Even if you report off of a mirrored snapshot, you must accept the timing delay thus incurred.  This list could be extended indefinitely.

An early database under siege

It can be a frustrating realization that there are no general principals by which lowly database programmers abide. But this can be liberating as well. What would be the point of programming if you too could be replaced by a machine following a set of principals? Programmers are the last stop against the ever-increasing automation of the world. Embrace the art!

More practically, there are some things you can do. Once you've achieved a certain level of proficiency, the best you can do--really--is to catalog trade-offs.  I recently ran into one between database complexity and service traffic. It is usually a good idea to reduce the amount of chatter over a web service, but it's also a good idea to write clear, maintainable SQL code. Another trade-off: you can make all your code dynamic in order to deal with the deployment processes and future change, but then you have to deal with a more complex database design.

Stéphane Faroult outlines five factors that contribute most to performance:
  • The number of rows in the tables involved
  • The existing indexes on these tables
  • Storage peculiarities (like partitioning)
  • The quality of the criteria provided
  • Query diagram à la Tow
  • The size of the result set

Compare to Dan Tow's query diagrams, which show:
  • The join order of tables
  • The selectivity of the filters on those tables
  • The selectivity of the joins between tables

Of course, performance is only one of many database goals and involves trade-offs at a micro and macro level. For example, decisions have to be made about indexes on particular tables, and about whether performance or maintainability is more important. There aren't any universal truths, just experience and deliberate thought.

What trade-offs have you found?

Sunday, February 5, 2012

From My Cold, Dead Hands!

Do guns kill people or do people kill people? A famous NRA spokesperson might say that a gun is just one of many tools a killer could use--the problem is not guns, but people. Educate people, and you'll solve the problem. Gun control supporters, on the other hand, argue that putting a gun into someone's hands changes them. It makes them do things they wouldn't do otherwise. If you remove access to guns, you'll remove the main cause of violent death.

Whether or not you are politically inclined, you've probably had a similar discussion that centered around a technology like firearms. For example, are hackers social deviants who just happen to create malware and viruses? Or does the internet and the availability of free software tools create malevolent coders? Similarly, do smartphones make people terrible bores at social events, or do they provide anti-social people an excuse to opt out?  Finally, and in a more positive vein, are people smarter today, or do we just have better technologies, like Wikipedia?

These questions come down to the same thing: What is the cause of an action? Is it the technology that is a means to the action (this might be called the materialist explanation)? Or is it a person's intentions or ability to do something (this might be called the sociological explanation)? Should we blame things or people?

Maybe these questions are not framed quite right. Sociologist Bruno Latour helps us break out of these nature/nurture debates with what is called Actor-Network Theory. According to Latour, both a gun and a person are actors or causes. (Since it seems strange to call an object an actor, he uses the word 'actant.') A gun + a person is a new actor. A person doesn't simply use a gun, nor does the gun simply alter a person. The technology creates new possibilities for a person, but a person creates new possibilities for a gun.

Of course, all advanced technologies involve a chain or network of actants. In the case of guns, this might include political states ordering guns and determining who has access to them, factory workers manufacturing guns, and users of guns, such as armies. Without a network like this, guns could not make sense. Latour says, "747's don't fly--airlines do." That is, a 747 would be worthless without a network of thousands of people, concepts, and things.

Furthermore, any component of a technological device (including the device itself as a whole) can be treated either as a black box or as an almost infinite chain or network of actants. For instance, computers involve software, wetware, and hardware. Hardware involves hardware components like hard drives. Hard drives involve other components, like magnetic tape. Magnetic tape implicates the historical development of manufacturing processes, the logical abstractions of information theory, and the decisions of many decentralized people, including programmers, users, and business people. When talking about the technology of a speed bump, Latour says that it's "ultimately not made of matter; it is full of engineers and chancellors and lawmakers, commingling their wills and their story lines with those of gravel, concrete, paint, and standard calculations."

The meaning 'obey the speed limit' is translated into 'protect your car's suspension' by the technology of the speed bump

So, what is to blame? People or guns? Latour's answer is: the entire network of actants (guns, gun owners, engineers, and manufacturers), which are themselves products of years of experimentation and learning. Unfortunately, this answer is probably not very satisfying to political junkies. It cautions us to be careful about what we develop, but what about what has already been developed? It is much harder to change an existing network than the two proposed solutions: education or the banning of guns.
Related Posts Plugin for WordPress, Blogger...