Different Types Of Software Creation: Part II - Software For Me

by Roger Willcocks 1/3/2011 5:47:00 PM

Welcome to the new year.

No resoutions for me, just getting ready for a new baby at the end of Feb.

 

Now, on to the second of the four parts.  Software that no one uses but me.

Now that might not sound like much.  But in fact, I think this is the largest category of software in the world.  Want to know why?

Because included in this category is every little spreadsheet, database, and wordprocessing document or template with embedded scripting that anyone ever wrote to make their job easier.

And if I told you that number, it would probably make you disbelieve me.  And in fact there are features still built into Excel simply because Wall Street firms have been using them for years, and threaten to move to something else if they have to go and rewrite it (though maybe that might have helped prevent some of the meltdown we had).

But I can give you are real example.  I did an analysis project for a company, it turns over something in excess of $2,000,000,000 (yes, that is 9 zeros there) each year (not bad for a privately owned firm), and 90% of their business is driven by spreadsheets.

We found 40,000 spreadsheets on their network.  Which means each spreadsheet had an average value of $50,000 per YEAR.  Of course, half of those were things like the default Excel templates, and the new document option for the right click menu in explorer, so that really means that they had 20,000 spreadsheets with a value of $100,000 per year.

In truth of course, 90% of those spreadsheets are old, and probably worth something between nothing, and maybe $10,000, but a few were worth over $10,000,000.  The project was to identify them, and plan a way to put some controls and structure around them.

 But anyway, this is what "exemplifies" software that someone builds for themselves.

  • Not flexible
  • Only one way to perform any action
  • Does only one or two things, but does them exactly
  • Frequently requires "tweaks" to the code
  • Doesn't crash if you make one of your common mistakes, but heaven help you if you do something really weird
  • Only one person really understands it

Often these pieces of software evolve over time to become the central core of a business process.  And trouble sets in when the original creator leaves, because no one else understands it, and everyone is afraid to change it.

 Next up, software written for a single business or group (bespoke software)

 

Currently rated 1.5 by 2 people

  • Currently 1.5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

General | Software Development

Different Types Of Software Creation: Part I - Software For Learning

by Roger Willcocks 12/13/2010 3:36:00 AM

Wow.  Nearly 2 years since I last posted.  I have been really slack.  Ah well, time to get back into it I guess.

 So, I was busy learning to tap dance.  Long story, something my wife wanted to learn.  Oh, and as an aside, learning new stuff is good for your brain.  In this case, figuring out just how horrible I was at learning a new skill got me to thinking about the four different types of software we commonly write.  Well, more like styles really.

So this is going to be the first of the four.  Software for learning purposes.

That is, the software we write when we are trying to figure stuff out.  Like at university, we had this assignment to write a program that could solve the "Towers of Hanoi" as an example of recursion.

And an hour before the assignment was due, I had this 500 line program full of messy special cases and weirdness and it mostly worked, and suddenly it clicked.  Thirty minutes after that, I had a 33 line program that was perfect.

Or when I was figuring out how to read and write lists from SharePoint using the web services.

You write this messy code, and it has all these hard coded pieces in it, the URL, the name of the list, the values you want to add or delete.

And this is the software we write when we are learning stuff.  It does these very narrow specific things, it doesn't cope with anything that deviates from the expected.  Every time you want to change what it does, you have to change the code.

This is all good for figuring stuff out, but it is completely useless for giving to someone else.

Next up, software for ourselves.  The software we write to use for ourself and no one else.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

General | Software Development

What businesses REALLY run on

by Roger Willcocks 9/23/2008 12:00:00 AM

A lot of people think that businesses run on a bunch of complex and expensive applications.  SAP, JD Edwards, MS CRM and the like.

The truth is that the vast majority of businesses are SMALL businesses.  And a small business usually runs on a combination of an accounting package, pen and paper, MS Word, MS Excel and maybe MS Access.

However, a time comes when a growing business finds that the systems they have been using are now causing them more trouble than they solve.  A smart or lucky business finds that out before the whole thing breaks down.

Then they need to progress to a better system. 

  • Pen and paper moves to Excel or Access. 
  • Excel moves to Access. 
  • Access moves to SQL Server, and a web or desktop front end,
  • or maybe an off the shelf application.

Applications move from being single user to being able to function with 5 or 10 people using them at once.

A very large proportion of what I do as a bespoke developer involves taking an existing Excel or Access based system, and moving it to the next step.

I'm considering taking an Access application I wrote over 10 years ago, and turning it into a .NET Windows application.

As part of the exercise, I can record the process on video and create a training course out of it.

If anyone would be interested in learning how to convert Access applications to .NET "nicely", drop a comment in and I'll start the process.

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Requirements Gathering | Software Development

Software Development Is ...

by Roger Willcocks 5/4/2008 2:22:00 AM

OK.  So here is my opinion.

I'll go into why at the end of this post 

Science   Pronunciation [sahy-uhns]   -noun

  1. a branch of knowledge or study dealing with a body of facts or truths systematically arranged and showing the operation of general laws: the mathematical sciences.
  2. systematic knowledge of the physical or material world gained through observation and experimentation.
  3. any of the branches of natural or physical science.
  4. systematized knowledge in general.
  5. knowledge, as of facts or principles; knowledge gained by systematic study.
  6. a particular branch of knowledge.
  7. skill, esp. reflecting a precise application of facts or principles; proficiency.

Art  Pronunciation [ahrt]   -noun

  1. the quality, production, expression, or realm, according to aesthetic
    principles, of what is beautiful, appealing, or of more than ordinary
    significance.
  2. the class of objects subject to aesthetic criteria; works of art
    collectively, as paintings, sculptures, or drawings: a museum of art; an
    art collection.
  3. a field, genre, or category of art: Dance is an art.
  4. the fine arts collectively, often excluding architecture: art and
    architecture.
  5. any field using the skills or techniques of art: advertising art;
    industrial art.
  6. (in printed matter) illustrative or decorative material: Is there any
    art with the copy for this story?
  7. the principles or methods governing any craft or branch of learning:
    the art of baking; the art of selling
    .
  8. the craft or trade using these principles or methods.
  9. skill in conducting any human activity: a master at the art of
    conversation.
  10. a branch of learning or university study, esp. one of the fine arts
    or the humanities, as music, philosophy, or literature.
  11. skilled workmanship, execution, or agency, as distinguished from
    nature.
  12. trickery; cunning: glib and devious art.
  13. studied action; artificiality in behavior.
  14. an artifice or artful device: the innumerable arts and wiles of
    politics.
  15. Archaic. science, learning, or scholarship.

Craft   Pronunciation [kraft, krahft]   -noun

  1. an art, trade, or occupation requiring special skill, esp. manual
    skill: the craft of a mason.
  2. skill; dexterity: The silversmith worked with great craft.
  3. skill or ability used for bad purposes; cunning; deceit; guile.
  4. the members of a trade or profession collectively; a guild.
  5. a ship or other vessel.
  6. a number of ships or other vessels taken as a whole: The craft were
    warned of possible heavy squalls.
  7. aircraft collectively.
  8. a single aircraft.
  9. -verb (used with object)
    to make or manufacture (an object, objects, product, etc.) with skill
    and careful attention to detail.

OK.  I cheated a bit :)

Software development is treated by many as an ART.  Often a black art.  Everything is built by hand.  Slow, inefficient, and prone to error, but beautiful to its creator.

It is really a CRAFT.  Something done with consideration, consistency and attention to detail.  Note the word consistency.

Profitable software development needs to be approached as much as possible as a SCIENCE.  Controlled, automatic processes that produce consistent, quality code quickly.

Upwards of 90% of software development is "boiler-plate", code written to do the basic things that need to be done to get to the fun stuff.  Read, Write and Delete data.  Populate a screen.  Accept user input.  All of this can be reduced to a science.  Work out how to do it once, and create a system that can do it for you.

The remaining 10% is that art that keeps this a craft rather than a pure science.  It has to do with understanding what people need, and how they want to interact with it.

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Software Development

What is software development?

by Roger Willcocks 5/1/2008 2:00:00 AM

 

What is software development?  Here are some possible definitions I've borrowed from Dictionary.com, have a think and see if you can decide what it is. 

Post a comment with your opinion. I'll let you know mine in a couple of days.  

Science   Pronunciation [sahy-uhns]   -noun

  1. a branch of knowledge or study dealing with a body of facts or truths systematically arranged and showing the operation of general laws: the mathematical sciences.
  2. systematic knowledge of the physical or material world gained through observation and experimentation.
  3. any of the branches of natural or physical science.
  4. systematized knowledge in general.
  5. knowledge, as of facts or principles; knowledge gained by systematic study.
  6. a particular branch of knowledge.
  7. skill, esp. reflecting a precise application of facts or principles; proficiency.

Art  Pronunciation [ahrt]   -noun

  1. the quality, production, expression, or realm, according to aesthetic
    principles, of what is beautiful, appealing, or of more than ordinary
    significance.
  2. the class of objects subject to aesthetic criteria; works of art
    collectively, as paintings, sculptures, or drawings: a museum of art; an
    art collection.
  3. a field, genre, or category of art: Dance is an art.
  4. the fine arts collectively, often excluding architecture: art and
    architecture.
  5. any field using the skills or techniques of art: advertising art;
    industrial art.
  6. (in printed matter) illustrative or decorative material: Is there any
    art with the copy for this story?
  7. the principles or methods governing any craft or branch of learning:
    the art of baking; the art of selling.
  8. the craft or trade using these principles or methods.
  9. skill in conducting any human activity: a master at the art of
    conversation.
  10. a branch of learning or university study, esp. one of the fine arts
    or the humanities, as music, philosophy, or literature.
  11. skilled workmanship, execution, or agency, as distinguished from
    nature.
  12. trickery; cunning: glib and devious art.
  13. studied action; artificiality in behavior.
  14. an artifice or artful device: the innumerable arts and wiles of
    politics.
  15. Archaic. science, learning, or scholarship.

Craft   Pronunciation [kraft, krahft]   -noun

  1. an art, trade, or occupation requiring special skill, esp. manual
    skill: the craft of a mason.
  2. skill; dexterity: The silversmith worked with great craft.
  3. skill or ability used for bad purposes; cunning; deceit; guile.
  4. the members of a trade or profession collectively; a guild.
  5. a ship or other vessel.
  6. a number of ships or other vessels taken as a whole: The craft were
    warned of possible heavy squalls.
  7. aircraft collectively.
  8. a single aircraft.
  9. -verb (used with object)
    to make or manufacture (an object, objects, product, etc.) with skill
    and careful attention to detail.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Software Development

Pages

    Calendar

    <<  February 2012  >>
    MoTuWeThFrSaSu
    303112345
    6789101112
    13141516171819
    20212223242526
    2728291234
    567891011