It Happens

  • Miles you only have to go and ruin it by being spot on. Again!!!

    Gaz

    -- Stop your grinnin' and drop your linen...they're everywhere!!!

  • Steve Jones - SSC Editor (9/25/2013)


    simon.crick (9/25/2013)


    I sense a degree of disbelief, and I can't blame you given the culture of not caring about the odd bug here and there that seems to invaded the computing industry, but it is 100% true. The first system I worked on was a client database and commission tracking system for a financial advisor. I finished it in the early 1990's, and it is still in use today, and it hasn't been touched for over 20 years.

    Simon

    I'll admit I have natural skepticism. I've never heard anyone make a claim like that. all systems, all software I've ever seen has bugs.

    However I have no basis to doubt you. I don't know you, nor your work, and it's unfair of me to state that I don't believe you. I have no basis for doing that, hence my comment that I hope you're well paid. If you can back up the claim, you should be very well compensated.

    Someone has to be the best developer in the world. It could easily be you. I only know it's not me.

    I have also seen lots of software that is full of bugs, but I have also seen quite a few systems that have needed no maintenance or enhancements for years. This is because they were designed with just enough generality to be future proof, but not so much that they became over-complicated.

    I really don't think it's that difficult to create bug-free software that has a long life-span.

    You certainly don't need to be the world's best developer to do it, you just need to break the system down into simple components that are easy to code up correctly.

    Simon

  • I'm skeptical of anyone with a long, significant career in software that claims "no bugs or errors." Especially if they tout C++.

    So either we have encountered the "World's Best Programmer, Ever" or we are being trolled. Now days we don't believe anyone's claims in this field unless they demonstrate it. (Considering an estimated 80-90 percent of job candidates misrepresent themselves. ) There's one sure way to find out:

    Please post some of this amazing code on GitHub or publically accessible site of that ilk.

    Extraordinary claims require extraordinary evidence.

  • chrisn-585491 (9/25/2013)


    I'm skeptical of anyone with a long, significant career in software that claims "no bugs or errors." Especially if they tout C++.

    So either we have encountered the "World's Best Programmer, Ever" or we are being trolled. Now days we don't believe anyone's claims in this field unless they demonstrate it. (Considering an estimated 80-90 percent of job candidates misrepresent themselves. ) There's one sure way to find out:

    Please post some of this amazing code on GitHub or publically accessible site of that ilk.

    Extraordinary claims require extraordinary evidence.

    Actually, I'd just take some metrics for a ballpark idea of how complicated his programming is. I think that there certainly exists examples of working programming that can be produced correctly. Obviously not having to change a program in decades is certainly a factor in his favor, many of my programming errors result from modifications and I rely heavily on testing to ferret those out.

    Some metrics of complexity I'd be interested in could include line count of code in total, programming language(s) used, number of modules, average size of each module, number of bytes of the code in total, number of bytes of a compressed archive containing the code, etc...

  • chrisn-585491 (9/25/2013)


    I'm skeptical of anyone with a long, significant career in software that claims "no bugs or errors." Especially if they tout C++.

    So either we have encountered the "World's Best Programmer, Ever" or we are being trolled. Now days we don't believe anyone's claims in this field unless they demonstrate it. (Considering an estimated 80-90 percent of job candidates misrepresent themselves. ) There's one sure way to find out:

    Please post some of this amazing code on GitHub or publically accessible site of that ilk.

    Extraordinary claims require extraordinary evidence.

    Hi Chris,

    Thanks for your skepticism and questioning this.

    But there are systems that once the bugs are worked out, they can have a very long life given that the business practices do not change. There are operational errors caused by incomplete or erroneous data, but since the processes do not change the system can run for decades. And it is not that there were no errors, but that those errors were worked out years ago. And then without need for change the system keeps living.

    Like Steve and Simon I have developed systems that ran for decades without revision and without error other then data or other operational errors. That does not mean that I am an ace programmer, only that every once in a while we got it right, and it stayed right.

    Not all gray hairs are Dinosaurs!

  • chrisn-585491 (9/25/2013)


    I'm skeptical of anyone with a long, significant career in software that claims "no bugs or errors." Especially if they tout C++.

    So either we have encountered the "World's Best Programmer, Ever" or we are being trolled. Now days we don't believe anyone's claims in this field unless they demonstrate it. (Considering an estimated 80-90 percent of job candidates misrepresent themselves. ) There's one sure way to find out:

    Please post some of this amazing code on GitHub or publically accessible site of that ilk.

    Extraordinary claims require extraordinary evidence.

    I cannot publish any of the code I have written because it is owned by the company I work for, not me.

    You clearly do not believe it is possible for a system to run for 20 years without change, but it is 100% true. I am just a normally guy, certainly not a liar or in any way exagerating. The system was written using "Superbase4", which was one of the earliest available PC-based RDBMS's, and I can assure you it has been running for 20+ years without any changes at all. The financial industry has changed a lot in the last 20 years, but the system was designed to be general enough to cope with changes, and the design works. There were lots of off-the-shelf packages available at the time, but they were all way too complicated and clearly would not stand the test of time, which is why we decided to build our own system.

    This is 100% truthfull, and I do not like the suggestions that I am lying.

    I also do not think this is a particularly extraordinary claim. Maybe that is a sign that the bug culture is more widespread than I first thought?

    Simon

  • Like Steve and Simon I have developed systems that ran for decades without revision and without error other then data or other operational errors. That does not mean that I am an ace programmer, only that every once in a while we got it right, and it stayed right.

    I too have developed code that works for years without modification. But I'm not going to project those small successes to all my code or all the possible code.

    There are systems and processes that can be defined and maintained simply. But there's a lot of what physic guys call the "n-body problem". We've dealt with situations where n=2 and our code can run forever for a given situation. But with the combined complexity of hardware, operating systems, RDBMS, programming languages, requirements, users, networks, malware, etc, n is more likely greater than 3.

  • chrisn-585491 (9/25/2013)


    Like Steve and Simon I have developed systems that ran for decades without revision and without error other then data or other operational errors. That does not mean that I am an ace programmer, only that every once in a while we got it right, and it stayed right.

    I too have developed code that works for years without modification. But I'm not going to project those small successes to all my code or all the possible code.

    Well said Chris.

    The only thing I would add is that some of those that last for years are not small. But still I would never say that longevity of one or more systems is proof of exceptional skill. Each piece of work stands on its own merit and stands only as long as it continues to support the business it was intended or otherwise used for. To be honest, I have been pleased that some of the things I have dreamed up and made functional have worked at all let alone been proven in the test of time.

    Not all gray hairs are Dinosaurs!

  • simon.crick (9/25/2013)


    ...This is 100% truthfull, and I do not like the suggestions that I am lying.

    I for one am not suggesting that you are lying but how can any system, regardless of complexity, not require enhancing to comply with new regulation that was not on the statute books (if in UK - may be another term if in a different country) at the time of development?

    I find that an amazing feat!!!

    Eager to learn so please share.

    Gaz

    -- Stop your grinnin' and drop your linen...they're everywhere!!!

  • I also do not think this is a particularly extraordinary claim. Maybe that is a sign that the bug culture is more widespread than I first thought?

    Oh please. I wrote code in DCL that ran for years on VMS without changes. There's firmware in many of my older devices that still works fine after years. It doesn't mean that I'm infallible nor does it mean that all programs can economically be made error free. We don't live in the 1980's anymore.

    Try writing code that handles data from thousands of different sources, each a unique shit snowflake in structure and quality. And make it work daily for thousands of people that have their own different requirements and reporting needs. And be given an insanely small budget and time frame. And work on three different RDMS on the desktop, the web and portable devices with different user interfaces. On three different OSes using several different programming languages. While being interrupted.

    It's not a "bug culture". NASA and Donald Knuth still find bugs. The complexity and the demands of the software and the business environment don't allow for gold-plating and polishing software past a certain point.

  • Gary Varga (9/25/2013)


    simon.crick (9/25/2013)


    ...This is 100% truthfull, and I do not like the suggestions that I am lying.

    I for one am not suggesting that you are lying but how can any system, regardless of complexity, not require enhancing to comply with new regulation that was not on the statute books (if in UK - may be another term if in a different country) at the time of development?

    I find that an amazing feat!!!

    Eager to learn so please share.

    It is a client database and commission tracking system. It is used to keep track of the pensions, investments and other financial products held by approx 1000 clients, as well as automatically track commission payments from the financial institutions (e.g. pension providers) to the advisor and from the advisor to the agents that introduced the clients. Many new types of financial products have emerged over the last 20 years, but the database schema has been generic enough to cope.

    To satisfy the regulations that you mention, I believe the advisor has to keep scanned copies of policy documents and authorisation instructions, etc, but these are not stored in the client database.

    As I mentioned earlier, there were several off-the-shelf packages available at the time, but they were all way to complicated and did not have the flexibility to cope with future changes.

    The system we created was much simpler and much more flexible. It satisfied the requirements without imposing any unnecessary constraints, and it has stood the test of time.

    Simon

  • simon.crick (9/25/2013)


    Gary Varga (9/25/2013)


    simon.crick (9/25/2013)


    ...This is 100% truthfull, and I do not like the suggestions that I am lying.

    I for one am not suggesting that you are lying but how can any system, regardless of complexity, not require enhancing to comply with new regulation that was not on the statute books (if in UK - may be another term if in a different country) at the time of development?

    I find that an amazing feat!!!

    Eager to learn so please share.

    It is a client database and commission tracking system. It is used to keep track of the pensions, investments and other financial products held by approx 1000 clients, as well as automatically track commission payments from the financial institutions (e.g. pension providers) to the advisor and from the advisor to the agents that introduced the clients. Many new types of financial products have emerged over the last 20 years, but the database schema has been generic enough to cope.

    To satisfy the regulations that you mention, I believe the advisor has to keep scanned copies of policy documents and authorisation instructions, etc, but these are not stored in the client database.

    As I mentioned earlier, there were several off-the-shelf packages available at the time, but they were all way to complicated and did not have the flexibility to cope with future changes.

    The system we created was much simpler and much more flexible. It satisfied the requirements without imposing any unnecessary constraints, and it has stood the test of time.

    Simon

    Sounds reasonable. I wouldn't describe it as complex myself but that is a subjective term.

    Gaz

    -- Stop your grinnin' and drop your linen...they're everywhere!!!

  • I wouldn't describe it as complex myself but that is a subjective term.

    It's an n=2 problem. Simon has a right to be proud, but not judgmental. Many of us are dealing with n greater than 2 problems.

    I doubt his software deals with census demographics, address certification, geocoding, web interfaces, new operating systems, embedded scripting languages and a insanely large number of disparate data formats.

    I envy him.

  • chrisn-585491 (9/25/2013)


    I wouldn't describe it as complex myself but that is a subjective term.

    It's an n=2 problem. Simon has a right to be proud, but not judgmental. Many of us are dealing with n greater than 2 problems.

    I doubt his software deals with census demographics, address certification, geocoding, web interfaces, new operating systems, embedded scripting languages and a insanely large number of disparate data formats.

    I envy him.

    I'm not being judgemental, I just think that the software industry is way behind almost every other industry in terms of quality control, and I think we should be aiming much higher than just "mostly bug-free code".

    Would you accept a "mostly fault free" product from any other sector, e.g. a mostly fault free car?

    Part of the problem is that many software companies start selling new products before the code is even written. They promise to deliver in unreallistic timescales, and we (the engineers) then have to rush our work, resulting in low quality products.

    I'm not sure what the solution is, but to "embrace the idea that code can be wrong" (Nathan Marz) seems like the wrong approach to me. I think we should be aiming to release 100% bug-free code. Requirements may change over time, but we shouldn't be knowingly selling code that contains bugs.

    To get past this, I believe we need a culture shift. Way too many people in the software industry think it is normal and acceptable to release products that contain bugs. This is basically fraud, and would not be tolerated in any other industry.

  • chrisn-585491 (9/25/2013)


    I wouldn't describe it as complex myself but that is a subjective term.

    It's an n=2 problem. Simon has a right to be proud, but not judgmental. Many of us are dealing with n greater than 2 problems.

    I doubt his software deals with census demographics, address certification, geocoding, web interfaces, new operating systems, embedded scripting languages and a insanely large number of disparate data formats.

    I envy him.

    Actually, I now work in the GPS tracking and fleet management industry, and our software does deal with address resolution, geocoding, web interfaces, new operating systems (hundreds of servers, thousands of client workstations, tablets, smartphones, custom navigation devices, etc.), embedded black-box software on a variety of platforms, quite a large number of data formats from various suppliers, e.g. Navteq, Post Office, etc., and many other complex things (e.g. truck engine management systems). Our software is extremely complex (certainly not an n=2 problem :-)) and constantly evolving as new customer requirements come along, but I would never use that as an excuse to release code that contains bugs.

    Simon

Viewing 15 posts - 31 through 45 (of 60 total)

You must be logged in to reply to this topic. Login to reply