New and Improved Software Titles

Software Psychologist – help software organizations over come its fears and phobias.

Software Psychiatrist – same as a software psychologist but they prescribe drugs.

Software Archeologist –dig around looking for project artifacts.

Software Paleontologist – dig around for looking for evidence the project actually existed.  They also theorize what killed projects.  It turns out most projects commit suicide.

Software Actor – they don’t actually do any project work.  They just act like they are working.  Software Actors attend a lot of meetings and repeat what others say.  Software Theologist – pray for project success.

Software Plumber – unclog software projects.  This is not a glamorous job and it requires cleaning the project toilet.

Software Janitor –pick up after everyone else.

Software CSI – study the forensic evidence to determine if a project was murdered or committed suicide.  By the way most projects commit suicide.

Software Entomologist – collect all types of bugs found during the project.

Software Zoologist – studies all kinds of animals that work on software projects

Software Tap Dancer – dances around difficult project issues

Software Linguist – helps translates the native tongue of a software developer into English.

Read more at www.RebootRethink.Com

Advertisements

What is the purpose of Software?

My friend Grant Rule posted an interesting question on LinkedIn. He asked, “What is the purpose of software?” To me the answer is obvious and the purpose of software is to solve problems. Too many software applications are being built without a clear problem to solve. Too many in the field of software development focus on what the technology can do.

Let me make an analogy for you. I travel a lot internationally and I went to my bank (Bank of America) and asked for a line of credit. The banker said,” of course we can give you a line of credit” and then she asked, “what problem you are trying to solve?” I explained that I travel a lot international and run up large expenses. The problem, in my mind, was the time between when I was paid by a client and I had to pay my credit card bills. The solution, in my mind, was a line of credit. Notice I had the problem and solution well in my mind. Then said asked me if she could offer a potential solution. She suggested, “Why don’t you ask your clients for a percentage upfront to cover your expenses?” It turns out I did not need a line of credit at all. I have taken her advice and it has worked well.

To many “customers” of software applications do not know what problem they are trying to solve and therefore cannot offer a solution. Tom Kelly (The Art of Innovation) points out too customers do not have the ability to articulate what is wrong and especially what is missing. So if the purpose of software is to solve customer problems, and customers cannot articulate what is wrong and what is missing, then exactly who is suppose to articulate the problem and potential solution?

Shifting Gears

Anyone who has ever chugged along trying to their teenage child how to drive a stick (manual transmission) can appreciate the complexity of the task. No doubt It is more complicated to teach a teenager (or anyone) how to drive a manual transmission than an automatic transmission. The reason being is in an automatic transmission much of the complexity of driving has been hidden away and is not seen by the driver.

The complexity was not just hidden it was transferred. It was transferred from the driver to the transmission because an automatic transmission is more complex than a manual transmission. An automatic transmission is more complex (and expensive) to design, build, and maintain too. As software development matures we see much of the complexity being hidden from users. As an example, look at the complexity of booking a hotel reservation or airline reservation. Most of the complexity of has been nicely tucked away.  It cost a ton of money to hide all that complexity and functionality.   Once upon a time it took a trained travel agent to book an airline flight. Nowadays just about anyone can accomplish this task.

My teenage daughter drove to school today chugging and grinding the gears.  In due time she will learn to drive a stick shift.  The same is true with software development.  We are chugging along and grinding the gears trying to transition from internal applications (exposed complexity) to customer self service (hidden complexity)

Agile Coach — WTF mate?

Like a lot of people I put my resume on job sites.  Yesterday I was sent an automated human resources message.  It read, “A job opening matching your profile for a position of Sr Principal Agile Coach has just been posted in our Career Section.” There is nothing in my resume that shows an interest in becoming an Agile.   I thought well, perhaps, the human resource bot searched the internet and got a lot hits on David Longstreet and Agile (there are over 500).   Perhaps it was my article, “Agile Methods and Other Fairy Tales” that got the bots attention.

Perhaps it was the fact that those professionals in Agile wrote that I was a troll or “a so called international consultant.”  As an FYI, when anyone starts a sentence with “a so called…” what follows is not going to be a complement.

I decided to apply for the position to see what happens and I will keep you all informed.

For those who want to read my ideas on Agile (and for those HR bots) you can see them at http://www.softwaremetrics.com/Agile/

US Economic News for IT – not so good!

Last week the Bureau of Labor Statistics reported that unemployment remained flat at 9.7 percent.   It seems that government, manufacturing and even construction industries added jobs, but IT jobs lost ground.

Within the very broad information segment of the economy, which includes movies, music, publishing, broadcasting, telecoms, and data processing, the telecommunications industry lost 5,000 jobs, to 943,300, while data processing, hosting, and related services companies cut 600 jobs, to 247,500.

The professional and business services segment, which has a total of 16.35 million people working within it, has some IT-related parts. Companies providing computer systems design and related services cut 9,600 jobs in the quarter, a small portion of the 1.43 million people in this field but significantly nonetheless.

http://www.bls.gov/news.release/empsit.nr0.htm

IT Economic News – Mixed Results.

Harry Truman (former President of the USA) once quipped something like, “I want a one handed economist because economist always say things like on the one hand things looked good, but on the other hand things don’t look so good.”

This is especially true with the latest economic figures from the Bureau of Labor Statistics for the IT sector.

The information sector includes publishing, movies, broadcasting, telecommunications, and data processing and hosting, the Telco’s shed 2,600 jobs, down to 951,100, while data processing and hosting companies added 2,900 jobs, to 248,900. In the professional and business services sector, the IT-related segment is for companies that are involved in computer systems design and related services, and in this area there are nearly 1.44 million people employed, and in February the number of people employed in this area rose by 8,700.

Finally, management consulting and technical services – which often has an IT component, given the importance of computing to the running of any business – as a group shed 2,100 jobs last month. So… it is not all good new or all bad news.

http://www.bls.gov/news.release/pdf/empsit.pdf

Economic Value of A Process

I received and interesting email from Tony Bonn.  Where he suggested that processes have economic value.  Adam Smith argued a wealth of a nation is not based upon its amount of stored money or the total value of assets.  Instead a countries wealth is based upon its ability to produce goods and services.  Does this same concept hold true for an organization?

In the information age an organizations economic value is its ability to produce goods and services not just a summation of assets and cash.   Of course physical assets and cash are necessary, but not as necessary as the processes the organizations utilizes.  The argument goes like this, the better the process the more an organization can produce.  Those organizations with the best processes in place are able to produce the highest value of goods and services. The process, the how, is more important in developing software than the physical assets used to create software.

It seems logical a certain amount of value needs to place on the processes of an organization.  If a processes increases the book value of an organization it increases the stock value too.

Marginal Cost

Marginal cost is different from Average Cost.  Average cost is total costs divided by total functionality created.  Marginal cost is the cost of adding one more unit of functionality to a software product.

Why is this concept important for software development?

The marginal cost curve looks something like the Nike Swoosh.   Marginal costs rise as software projects get large.  The reason for this is many software organizations do not have the discipline and necessary infrastructure to support large scale software development.   The fewer infrastructures the faster marginal costs will raise. 

In other words if you try to build something that is large and you do not have the skill set to build it the unit costs are going to go up rapidly.  People are going to be standing around looking for stuff to-do.  

Organizations need to find its sweet spot where productivity or unit cost is the lowest.

Published in: on December 30, 2009 at 01:01  Leave a Comment  
Tags: ,

Average Total Cost of Software Development

As an economist l like terms like Average Total Cost or unit cost. Average total cost is just total costs divided by output (quantity of the software produced). These terms are somewhat alien in the field of software development.

The problem is what a unit in software is and what represents total cost. Total Costs Total cost should include all costs to create and maintain the software product. It would include all requirements gathering, design, and analysis, coding, testing, maintaining and enhancing the software product. Many software organizations only include coding (or development) costs which greatly understate the actual cost of software development.

Labor costs are the most significant ingredient in software costs. Other costs can be training, software, equipment, travel, and entertainment.

Units
The amount of functionality delivered (see www.SoftwareMetrics.Com)

Average Total Costs
The equation is Total Cost divided by Units Produced. In terms of software it is total cost divided by function points (or functionality delivered). The lower the average cost the higher the rate of productivity.

Average Total Cost equals Average Variable Cost plus Average Fixed Costs

Industry Averages Software Productivity

I got an interesting email from a person asking about the variations in software productivity industry averages. I believe the person already knew the answer and was just looking for clarification.

There is no such thing as an industry average cost for software development and there is no such thing as an average industry wide cost for construction either. Since the cost per unit of developing software is so varied, knowing the average cost to develop software is about as useful as knowing the average cost to make something.

1. Productivity varies based upon the size of the project. The larger the project the lower the productivity (higher the unit cost). A project that is 5,000 function points is going to cost more per function point than a 500 function point project. This is true in construction projects too. A sky scrapper is going to cost per square foot (or square meter) to build than a single family dwelling (holding everything else constant). Software development has diseconomies of scale or increasing marginal costs.

2. Software productivity rates vary by type of industry. The software productivity rate for software developed for the health care industry is different than software developed for the banking industry. A medical office is not going to cost the same per square foot (or square meter) as a bank.

3. The way data is gathered will impact software productivity rates. Since I work a lot on mergers and acquisitions, I include everything and everybody not just the IT staff or programming effort. I prefer to use payroll reports and expense payment reports and not just data from time reporting systems. The typical gap between payroll and time reporting systems can be up to 50%. In other words, most software organizations under report its true cost by about 50 percent.

Read more at Reboot! Rethinking and Restarting Software Development

www.RebootRethink.Com

Published in: on December 28, 2009 at 11:29  Leave a Comment  
Tags: , ,