Jun 14th, 2007 | Economics
“Somebody has to pay for all this.” – Kent Beck
Why do software projects exist?
A rational self-interest is a foundation of economics – maximizing expected benefits and minimizing expected cost. Software is one of the important instruments in hands of businesses, organizations and individuals that helps to achieve both goals. We could make money developing software and we could become more efficient and reduce cost. Benefits are not only limited to profit and money as with government, science or open source volunteers.
Economic forces start, drive and end software projects. These forces are complex, unpredictable and demanding. And they are the main reason for existence of the software.
What are economic forces?
Economic forces operate on 3 levels – internal, market and macro. You can find below description and examples of these forces.
- Vision, strategy and capabilities define what software should be built. Microsoft main business is Windows and Office, but Ray Ozzie replaced Bill Gates as chief software architect and are quietly changing the vision. He probably realizes that Microsoft strategy should change to stay competitive. Otherwise it will be dead.
- People expertise, skills and experience define what is possible to build. Google raise, power and innovations come from talented people. It recognizes it and became #1 company to work for in 2007. Google has best recruiting machine, great perks and developer centric culture. We all know results – now it is one of the most innovative and growing software companies in the world.
- Resources, time and finances define what could be afforded in reality. Smaller companies can only dream about Google (157B market value) and Microsoft (292B) resources and large-scale projects. However, software development is not capital intensive and it is possible to grow start-up with few people to become a big corporation. Google did it in 10 years, Facebook is doing it now.
- Company market positioning, growth dynamic and perspectives define what it could sell. Operation systems is an interesting example – Windows XP has 82%. Who will win new race Microsoft Vista, Apple Leopard or Linux for better market positioning? Don’t forget about possible Google OS.
- Customers, market trends and composition define what is possible to sell. Traditional packaged software started to loose share to hosted services / SaaS (software-as-a-service) like Google and Salesforce. It is expected that 25% of software revenues by 2011 will be generated from SaaS from 8% in 2005. However, we are still too far from pure network computer (if we don’t consider mainframe terminals). The main share of today SaaS (50%) belongs to CRM and ERP hosted systems.
- Competitors, prices and alternative markets define what will be sold in reality. Software can attack other markets – consider VoIP vs traditional telephony. 20% of US business already use VoIP. On other front, open-source software could reach at least 22% market share in the next five years and disrupt traditional business models.
- Politics and regulations – taxes, laws and licensing. Microsoft claims Google bolsters piracy. Google is claiming that Microsoft desktop search violates anti-trust settlement. Microsoft claims open source software like Linux violates 235 of its patents. And so on.
- Economic – growth, interest rates, inflation, labor. Economy is the king and affects any market participant. Only 50% of Internet companies survived dot-com bubble burst.
- Society – norms, interests and preferences. More than 50% of teenagers are using Facebook and Myspace and it seriously impacts their lifestyle.
- International – globalization, cultures, business climate. Offshore IT services change landscape for software development – the forecast is $29B in worldwide customer spending.
- Technology – innovation, application, trends. Internet, mobile devices and other new technologies radically change software application, business models and lifecycle. Internet can be considered #1 technology innovation for changing software and world in general. Only creation of computers is more important event for software.
What are economic paradigms to create and deliver software?
- Retail - packaged software done by centralized effort of the single company (Microsoft, Adobe)
- In-House – own programmers (many brave companies who develop software themselves)
- Contract – contracted outside company (IBM, Accenture)
- Open Source – multiple participants (companies, individuals, organizations) develop product together (Linux, Firefox)
- Online Service - online hosted software available as a service over Internet (Google, Yahoo)
Are relation between business and software development happy?
Unfortunately, these relations are not happy in the many cases. These two worlds have contrary expectations from each other.
|Traditional Business||Unpredictable, often changes directions, unclear what are needs & requirements, complex and ambiguous problems||Quick reaction for direction changes, frequent updates; predictability, reliability; meeting timeline and budget; high quality|
|Traditional Software Development||Absence of firm and proven principles, limited people ability to operate complex mental concepts, difficulty with building software solutions for ambiguous and changing problems.||Stable and well defined requirements, time to come up with design and proper implementation, minimum distractions and changes|
Software development is one of the most troublesome instruments in hands of business. Even excellent business decisions are worth nothing without good implementation. When project is started, two other groups of forces start to play – Human and System. And they add much more complexity and challenges to the rational nature of economic forces.
Question: Do you agree that economic forces are primary in the software life?