My House is like Software
Yep.
I have been in the software biz for a decade now. But the software biz is a lot older than that. yet I am still amazed at the same mistakes made over and over again by software companies. But that isnt what this is about.
This is about my house.
The house is, as I have mentioned, of an undetermined age of somewhere on the order of 70 to 90 years old. By East coast standards, that is practically a new condo. But by western standards, thats pretty old.
I also work on software that is originally about 8 years old. by software standards, that is practically Revolutionary War era.
My house at its core is a solid building. A solid frame and basic living areas. But that was all built before indoor plumbing was common on farm homes and closets were beyond the reckoning of architects, much less modern conveniences like separate utility rooms for clothes washing or central heating. Hell I doubt this place had anything so high falutin as an architect. Just a feller with a crew that knew how to put up a solid house.
Software often starts like that too. No architect. Just a job that needs doing. A small team puts it together and it does the job reasonably well. Solid, stable and comfortable.
My house, by virtue of its age has had a lot of owners over the decades. Each one has added to and modified the house to suit his needs and tastes.
The software too has seen additional needs and requirements that need filling. and each one was gleefully added on.
My house has had the additional improvements made by enthusiastic amateurs. A wall here, a door there, some concrete, some wiring. But as I dig deep I discover these additions were more "make-do" than real craftsmanship.
The software, as is all to typical, has had to respond to many "make-do" requests. A customer or potential customer demands a feature. The feature gets spliced into the original application. As usual that takes longer than anticipated. The delay causes the customer to pressure the marketers who in turn pressure the developers and it all builds like a snowball rolling down the Himalayas until it lands square on the testers head who ends up releasing poorly made slap-dash updates to the original system just to make the pain stop.
My hose has the same ill. There are so many things that need to be re-done properly that I barely know where to start. Everything interconnects. it is like untwining blackberry runners from your prized roses.
That leaves two choices:
Tear it all down and start over. This is incredibly expensive and time consuming. Where do you live while it happens? What form should the new house take? Can I even begin to pay for it?
Pick a corner and start digging in, fixing each item as you go. This can also be very expensive. But you can take chunks at a time and not pay for it all at once. And you generally can keep living at home while it goes on, albeit being inconvenienced quite a bit.
The same goes for a software product - with one exception - my house doesnt need to continually expand in order to stay upright.
I have been in the software biz for a decade now. But the software biz is a lot older than that. yet I am still amazed at the same mistakes made over and over again by software companies. But that isnt what this is about.
This is about my house.
The house is, as I have mentioned, of an undetermined age of somewhere on the order of 70 to 90 years old. By East coast standards, that is practically a new condo. But by western standards, thats pretty old.
I also work on software that is originally about 8 years old. by software standards, that is practically Revolutionary War era.
My house at its core is a solid building. A solid frame and basic living areas. But that was all built before indoor plumbing was common on farm homes and closets were beyond the reckoning of architects, much less modern conveniences like separate utility rooms for clothes washing or central heating. Hell I doubt this place had anything so high falutin as an architect. Just a feller with a crew that knew how to put up a solid house.
Software often starts like that too. No architect. Just a job that needs doing. A small team puts it together and it does the job reasonably well. Solid, stable and comfortable.
My house, by virtue of its age has had a lot of owners over the decades. Each one has added to and modified the house to suit his needs and tastes.
The software too has seen additional needs and requirements that need filling. and each one was gleefully added on.
My house has had the additional improvements made by enthusiastic amateurs. A wall here, a door there, some concrete, some wiring. But as I dig deep I discover these additions were more "make-do" than real craftsmanship.
The software, as is all to typical, has had to respond to many "make-do" requests. A customer or potential customer demands a feature. The feature gets spliced into the original application. As usual that takes longer than anticipated. The delay causes the customer to pressure the marketers who in turn pressure the developers and it all builds like a snowball rolling down the Himalayas until it lands square on the testers head who ends up releasing poorly made slap-dash updates to the original system just to make the pain stop.
My hose has the same ill. There are so many things that need to be re-done properly that I barely know where to start. Everything interconnects. it is like untwining blackberry runners from your prized roses.
That leaves two choices:
Tear it all down and start over. This is incredibly expensive and time consuming. Where do you live while it happens? What form should the new house take? Can I even begin to pay for it?
Pick a corner and start digging in, fixing each item as you go. This can also be very expensive. But you can take chunks at a time and not pay for it all at once. And you generally can keep living at home while it goes on, albeit being inconvenienced quite a bit.
The same goes for a software product - with one exception - my house doesnt need to continually expand in order to stay upright.

