Pragmatic 15: Extend or Recode

9 March, 2014


When asked to, or need to use someone else’s software code in your project it’s not always a clear cut choice how to approach it. Do you extend or recode? John and Ben explore the pros-cons and put forward some practices to reduce the potential damage.

Transcript available
This pragmatic weekly discussion show contemplating the practical application of technology exploring real-world trade-offs look at how Grenadiers are transformed into products and services that can generalise nothing is as simple as seems this observer pragmatic response by Tait form T4 makes it easy to build and share a beautifully designed online forms combining human creativity with the power of migrant cluster-based web technology to create new ways of asking questions online uniquely tailored to act like actual human conversation one question a time without Distracting you and the result is arson limited time Tait was offering a three month free trial of the new tax on pro service toddler mother that thereunder shall then Alexander McCall to John Geagea a joint young I'm doing very well paid on their ideas and doing well that's okay was only so long as there was that just before that's okay fine anyway okay so once again I did a cryptic clue on the on Twitter this one for the topic for this episode is I will confess a little bit difficult to our yeah I know I struggle to come up with one but even made any degree of sense are in any case are a guest soul born to latter-day getting I'm getting ahead of myself I'm terribly sorry I should say firstly quickly thanks as always to all who want to learn at 11 say nothing about show also for iTunes are reviews another couple this week thanks to Bassett's from Canada and Isaac Hayes from USA are some lovely things there thank you very much are and also on the survey only the surveyor for another week again the link will be on in the show notes for this week as I leave it up for another week so people have more of an opportunity to arm to put down their thoughts in and I had lots of good responses so far thank you so why keep coming if you haven't had a chance to fill in please do is your chance to vote on though the different topics recovered and to suggest new topics are tender and people also feel free to toilet me anytime mentioning in and saw email through the form and antacid make suggestions because you always open to suggestions so today are an unforgiving flogging a cryptic clue but to and that's okay ice you want all that software are specifically existing software and is well I guess the question will ask is to to extend or to rebuild and thus the question so given a situation that you're in someone hands you a piece of software doesn't matter what language you know what kind and you are faced with a decision do you run with what you've got or do you simply start again and designed to tackle this because there was crosses many many times are since I've been programming are professionally and honestly I think this a very it's very difficult situation I also is a topic that you are very familiar with yourself and so now this is our the big question is so first of all as I start out by saying the way I used to be so back when I was a wee lad are and I was I was learning to program and I was doing what I was doing I must admit I was very much convinced that I knew everything there was no about me I could write a better code than this person what are they right this way I do it this way because this ways my ways better any older that I've older I become the less I am seeing the world that way I begin to see the time investment that people put in when they write code and I I begin to see that piece of code that is you know several pages long could represent weeks of development and testing testing edge cases test to test to make test to break all the other good stuff and yet there I was as a younger programmer thinking I can do a better and the reason you think that simple is that you don't use it we see as a few pages of code like that you could write that I really don't like the way they've used their floats or whatever and I maybe maybe to have any size of use images for some reason you say while ago fights because Welford is better and then of course you find out it is a matter get some precision issues are no but the thing is you don't see all the hard work all the effort we see is a bunch of lines of code anything well how can a better writer and ISS the trap to the big car the big case that I had in recent memory was a very large files like pipeline are some of the details while I think I'm safe not talk about the this particular pipeline was a water pipeline and is there were 43 PLCs and is two main scholar servers or running a common common executable with the multiple clients and this pipeline is about hundred and 20, as long so decent decent size pipeline and carries quite a lot of water leaking water so in order to put this together there had been our two stages the first stage are there any 16 PLCs the second stage extended that to a total of 43 during the extension however there were code modifications required for the existing 16 PLCs represented some issues we were taking over from another company and so the company had done a choice I had had a different approach to how the software should be written the way that they had written it was enough I was a benefit programmers that I was a true I suppose to some extent is what they'd done and I realise that you monitor about feel secretly with as there is no difference really in the concepts behind this is a matter from talking about Objective-C C# or Java or JavaScript or whatever it's all about modularity and is all about documentation so they'd written essentially the idea was there was a lot of repetition are on the pipeline so are an offtake where you would extract water from the pipeline are there were multiple optics and each of these offtake a very similar code similar devices and so on but are all subtly different in the way that this other company handle that is that they created essentially a master copy of the code complete 411 controller one feel safe they replicated it five times that say reach the other offtake and then what they've done is they had simply coded out through options simply coding and false putting them on code sheets were never executed the code was still there had been deleted it was just sitting there dormant never getting run and said he ago his modified version and it was I suppose quicker and easier for them but they had a few problems first problem was they'd document it to trace the code through yourself and figure out what nothing done which meant that essentially there are a lot of red herrings and there you would go on trace a lot of code and think of this as this is causing this to happen but it wasn't the code was not being fully executed and it wasn't clear when the code was being executed are sometimes the code was it was on sections of the page that were being executed with a civil one corner it wasn't so essentially they have a bunch of objects and there they were using they were deactivated never called and was difficult to trace that they were never called the issue was that they had been very generic in their naming conventions so everything in this code was non-specific it was not down to an individual device so you couldn't trace specifically self there is a particular device are generic name all of the five copies had the same generic name despite the fact that in the real world they had different names so we were told take this this code is fully tested and working which was a lie and extend it and replicated in here is a budget and area not enough people and he is a unrealistic timeline all the usual things you get told by project management so the dilemma was do we do exactly that we simply replicated an extended where we have to order we just draw 100 and start again dug through this code for months for pre-two months trying to look for common patterns and one of the things I sought time and again was that all of these people that are in writing this code had a different approach and the structure of the code of the difference are the different locations was not same sort was happening was you were getting our big divergences in the quality not as the quality of the code but also the quality of the replication of their code as if someone had given someone a direction and they'd misunderstood and they gone off and that done it and there was never a check them as an example imagine you build yourself a class or object is a bunch of code inside it now the idea would be that you would then have version control on the object and you would say okay well I'm go test this to death and I am going to put away over here I know that it works in its solid don't worry about any more what's they had done is they'd taken the insides parts of the insides of that code and replicated it is in copied and pasted it into a section of another object in order to get the functionality rather than simply linking the object to the other one and then using the functionality which would have a course kept encapsulated and version control and fully tested but neither did do that they extracted parts of it to get that functionality in a different object to the code control was horrendous it was the resist horrendous I was comparing line by line code figure out whether or not this actually came from the same master in some cases it did what happened is that they found bugs and they fix the bugs in the common object that infects it in their copy and pasted version and that therefore I can consign version if you it was as the mass an absolute mess and as we were testing at in our in our tests we found issues with the code and we went back to the client we said are you aware that in this situation this file close something is is locked out doesn't function and they came back to us rather cheekily and said you aware of the problem the last our two months and the other people are fixed it well when we go tell us that because I given us a gold master of their cover code for the didn't tell us was that I was still using the subcontractor to work on existing code to fix the closeout bugs and they were not keeping us in the loop were told take this code it works perfectly which didn't you know copy the blocks which we couldn't because are all slight subtly different and then they continuing code were of development on the code base and never told us you know when we are the web sharp we started doing doing apps are melodrama can't drag them are allowed time on and as a drop contract I wouldn't same rate be very aggressive forest productive and the stuff and I think it was that was that if you did that if you are working with someone on the arm some aspect of the project and we were aware of it and it was it was relevant that Saturday was there is a cals A we could just take it and what did my older and are because we render similar things were newly developed the system to develop alimentary programming and him minimum your marketing approach of some income and you don't know what's going on you know it's there are crazy crazy nuts and can ruin your reputation and it deftly had an impact on ours as we were unfortunately the budget was set by people in the organisation that had no idea they simply said his existing code were sure that it works let's just copy and paste an extended that'll take less time and effort in developing it from scratch and that assumption is that we that that that train of thought is logically correct however that presupposes that the first fact was true which is that it was functioning rate was was good so what I learn from this is it help me to focus because you have to realise I was involved in this project for 3 1/2 years knowledge is your life it was the pipeline itself the overall project cost was $330 million the cost for the control system software component I'm not at liberty to say how much it was it was in the millions the projects manager who hands are sorry the project manager no the arm software lead on the project and that the team leader for the electrical expectation controls change multiple times and is me being the sort of person that I am I just seem to end up in a situation where I'm always the last man standing I don't know why that is I just had a had just seems to be my the way I my lot in life I do know I don't really begrudge it because I get I guess what I have this thing rely to see things through to completion I hate seeing things unfinished irritates the hell out of me so maybe that's why at that that little little facet of my personality makes me drawn to those situations so when were other people are likely to pull up plot stakes and move on I'm more likely to survive dig deeper into psych nonpolicy this through and is I remember it was a arm another one of my jobs previously are I used to get to her very vocal with the managing director when he would take me off projects and Michael hang on a minute and see I'd like to see it through and his like will know I need your expertise on this I get my wife initially said while I'm sorry but no need your honeydew here so you will resist irritate me so I guess in this particular project I was lucky because I will stay through to the end painful though it was so in the end is after all the other leads went there were three other leads but that went in and up landing in my lap so I stay in this project I was in the lead are I was lead software architect however I was not actually leader the entire department and our three leaves later I end up actually being on hold the whole bag which was fine not a problem it's just that it's our year he was for a long winding road anyway it had a happy ending for whatever it's worth while it works were exhilarating and had the code is subleased at a heck of a lot better what I started with our but that mimic the our musical chairs. Leads like that's that's a bit of money could is analogous but are crisis smell the print yeah what what it was I think you you're on the right track the bottom line is that something smell bad brain and each one of them are the last one was was the most hilarious because directly a contractor and is in order to be a lead by the rules you could not be a contract you had to be a full-time staff member and I know from my personal conversations with this particular gentleman that he had been he was being courted by another consultant and they said pay arm you his psychologist on just waiting for waiting to hear back from such and such even waiting for six months now on another's public knowledge or not but in the end are he saw no choice but he had to take the role as the lead so he came on full-time but once he switched from his contract contract to his full-time contract he was then technically on a probationary period and a probationary period to be terminated at arm within a week's notice and that's exactly what he did one week into the full-time role he had in his resignation because the other consultant had finally got around to making him the offer that he accepted that this sounds a lot like the doomed start-up this is zero different no different name same story all the thing is with this with this project is that I did a little bit of the miser did have a reasonable chunk of the plc programming for the at the block level and I did some of the integration but mostly replication and commissioning for the plc site was done by the people are the Scala side of it however we had discouraging the workforce for a few months and he didn't work out all I was sort of arm it was generally considered a positive for the project when that relationship ended and we were then the sayest Scala's for nearly a year and I got my way behind schedule until the point at which I basically said well you know what if no one else can pick this up on the back this up so I was going running all the other stuff as well as the specs as well as the reviews and all the hazards and I was doing the dam Scala so I end up actually doing from about 80% of the Scala for the entire system which is on top of everything else which was a little stressful but anyway look didn't want to get too bogged down in the into that those details of the project but in any case it got me thinking about what is the difference between software and is particularly I guess software libraries as a product and software as a whole is a product because they are two very very different things is what we been sold on on the beginning this project was the individual blocks of sugar copy the objects they've been tested to ensure their life they are rocksolid you can just copy and replicate them in his user manual except there was no user manual and they have invested properly and so on several are saying is here is your area software libraries as a product now he is he is essentially an API that you can call and it's all solid rock I got is replicated that is literally what they were saying and that would be software libraries delivered or software delivered as a software libraries delivers a product that you can then integrate into your own project and have confidence that it was solid and that it was going to function correctly the other form of the software would be willing to give you the software as one big executable and where and you can now use that executable to do whatever it's meant to do and the way I suppose the analogy I thought of at the time was it's it's like Microsoft saying here all the bits you need to build XL he is all of the difference arm all the different Apis and everything that you need to build a functioning version of Microsoft Excel go for it or he is Microsoft Excel a complete product will now support that to extremely different things so honestly if you're in a situation like that my first word of caution would be look for the documentation it sounds simple and it is I guess but generally well documented software has been written with the thought of someone else can I have to understand what he got done someone passing a bunch of values to this object but a transaction of this object I need and I will get back and I need an Oscar work reliably because believe me I get this analogous if there is a documentation that's a good sign of course it could still be BS in you could get documentation that that tells you something that is incorrect or generally speaking what I found is that if there is documentation it's a good indicator are I would be also running when you given the software I would run a couple of test cases before you get to fully blinded integration I would say right on you do a couple of test messages back and forth and arrive a few days get a few responses acknowledging my own little spotchecks even if their random something like build test environment and an intestate before you start doing the whole full integration with whatever you're trying to do rate looking for signs liver cracks in your on the prowl exactly are you mean poke and prod it right you poker with a stick and see if it's seven falls over gallantly will not run looking at a new library or framework recorder recognises of run a stand-up make something really quick and dirty and with no intention of ever doing anything with our adjust just flat looking for the issues are just an idea get a feel for it exactly and I think that's an essential step because it is your way of validating right blunders is like a gut feel to go along Mellencamp Personnel exactly by allowed homes that if they ignore those those gut feelings of blaming absolutely so the other thing that you have to keep an entire things I am not sure this is a common belief or if it's a miss if it maybe I'm misunderstanding the way other people may think of programs they think but honestly I always go into any API framework objects that I been given to work with or are chosen to work with with the with the opinion that something will not work there was something wrong with it because is no such thing as perfect nothing is perfect so and and and and you nothing is as simple as it seems I use you think you've got all the documentation you think that everything that it's there is been that is written there is fully documented well I'm willing to bet it isn't I wonder whether some combination of messaging and inputs and outputs in and linking that that is not detailed in there that you need to to actually make it work properly this assumed knowledge you know and what if you coming from a different background different area different scope of expertise and someone says that the documentation is all there was all there if you had experience with the idea of a similar framework perhaps so I guess the assumption never make the assumption that anything is ever 100% solid assume that this can be a problem with it somewhere and if you find one you know doesn't mean the whole thing is bad my duty find two or three or four that's really not a good sign like a sense comes down a bit of gut feel really are just taken on face value and that's why you know that's Waco is like Apple got radar system right so you you find a problem with the code you use in radar and you hope they fix and it's it's it's absolutely critical so don't assume this kind has worked always believe that the code is available as can fall over and one other ones I've the thing is I will I work in an environment where these the stability of the software you're using and that the appeal seizure using the scanner software that you're using is extremely important and you would think that on systems that are controlling well very very expensive hardware and a monitoring and for all sorts of reasons for environmental purposes legal reasons that there would be a lot of state that worked on the stability and the accuracy of the Apis and everything one bit of software that I you have used unfortunately our fall a lot of my well fed chunk of my career at least doing scarlet programming is a some software called sites act and its it was the it was a company in Australia that develops our site a multipurpose garden with all these drivers were different PLCs and what I did is it was sort of written they had a yard there orange kernel that would do the sit on top of the stem windows are runtime and it was pretty solid and of itself but it was written in the 90s and it continues to be used today was bought by Schneider Electric and I think now is slowly dying which is I think on the whole probably a positive for the world but in any case the API and there was essentially 20 years old baby and extending it of course and you are adding new features so on this particular project which was also using young sites act in there they had a bunch of functions in psycho Denise functions they caught psycho is a custom scripting language sites act site code for very doing that anyway and you're gonna groan but still anyway so I call this API and I get a response am supposed to get some psycho that's odd but I try different calls I try and do our trying to get off at different times I try and make sure that it's happening in the right sequence I I put other things before I go clearer variable out before it and I pass it to a clear again and controls of the different things the thing I finally got to work is I called the same function with exactly the same values twice in a row it would fail the first time but it past the second that is you want to calendar something next year you had to walk you to warm the you will be API before you get an answer out of them think so that's solid man that's that you can take that to the bank come online and reapply gut symbols could show you Joan I'm sure you check this is the things you would think after 20 years that that code would be solid no it wasn't terrible just terrible anyway so feed that back to the arm to the company question and their response was yeah we have really seen that before arm are you sure you're doing it right away I sent them the code I never heard back from them after that though maybe they they saw the writing on the wall for their product in the said box will support affixing going account anyway I got a letter about that that sort of thing is that your your worst mistake you're probably the biggest problem that that is also the most likely one for you to crystallise and and meet central art because it it's often something that be too painful make the switch to X to see Allegheny email staff and and just in other people I work with them life all the truth is from my point of view from from a purely arm while pragmatic perspective I had something that worked and I was simply telling them as a courtesy you guys by the way this is crap and doesn't work please fix it and say someone else the grief that I went through after I moved from it took me through four hours might to figure out how to make that API respond basically kick it twice and CEO there not they they just didn't seem to care so I found it to be very disappointing and very frustrating but in the end you know what I I am I I got a result I needed I got the answer back from the API I was able to proceed with my code and Ya got a positive result so go hey it's okay in the end is an lease for me and I'll remember that the next time but then I'm really sincerely hoping there is no next time at least that products it needs to be sunset quickly it is far better products out there it was built back in the days before it was not it's not our right it just isn't know that the templated terrible everything is based on DB for so you would when you deal when you are at a graphic assemble all genial whatever you add to the package you have to do update libraries you have to pack pages and impact libraries and then compile a project yesterday I I called the force that magic process that if anything goes like crazy and you doing work on the screen you compile it and you don't get you get some kind of gibberish is like okay well I gotta go and do the arm you are packed libraries update pages pack project compile project got to the force that magic process and then suddenly magically will be fixed and the reason is that every was cross-linked in the before it they were relentless they were active the databases did not automatically refresh all their indexes so what will happen is you would do if you deleted something and then it will be flagged for deletion into packed that it wouldn't actually get rid of the data and our anyway I'm sorry I'm getting to hearing your voice their mate years and years and years of beating Maddie as the damnedest with the software you and unsure many many people in the audience feel that we do about something like that you will this is the problem is I'm I'm sceptical about going on renting too much about the details about site acted specifically because Ya was unaware that there are some listeners that a control system programmers for most people it's going to be like one what the hell is a site act and who cares and that's fine but you insert your Tula frustration radio Xcode has its foibles as well and are still people are PC about the fact that you Apple when integrated all that into one IDE into one window and no one so back when was it Xcode three thing was had the interface builder and it had the yellow separate are several windows rattled on is now one unified window and no honestly I've used both I do the development on my bedside clock back in the in Xcode three but I've used Xcode for sense and today are minded are not really all that fussy either way the notes it's not use it for anything other than than that rate and it works fine music notes at the gate mums in bed with you where it delegates everyone needs to do about the A8 is still it'll be cheating sometimes I would like to dispel the pure profit-habits that are running again ever met a bottom line is that so whatever you are sure sure absolutely and I've been using our expired a lot lately I'm falling off attacks made especially really nice outcome believer lovely without the so long actual here arm is well is one of those arm aha lightbulb moments when I went to start economic I'll try sublime Texan Monaco try our area try this in text mode wall hey sexy pretty good like this anyway okay before we go any further I was wondering if you could tell us a little bit more about type form take forms a fresh solution to the big problem of gathering data on your website forms are a key component doing business online but up until now the man a lot of work to design configure and administer and the results of usually done pretty unflattering there are other formulas out there that he cares some of the problems make it easier to get something basic up accreting something great is still hard take forms the only form builder that allows you to get unlimited responses for free as many questions as you want as many answers as you get that phone doesn't limit your interaction platforms are beautifully designed and have cross-platform compatibility began to look and work differently undoes ups on smart phones and iron tablets design is about how it works and take forms are built to really work regardless of the device the platform itself is a joy to use both as a customer accreting type form and a user interacting with one UI a sexy clean and fast and designing even complex series of questions is made simple through the dashboard you access focused on asking and answering one question at a time so doesn't feel overwhelming and nobody gets lost tape from champions good user experience in design this helps you create a space in which users will be more willing to answer and will likely give honest answers and customer feedback and surveys can't trust someone engages event organisation in the classroom platforms let your imagination fly people using tape forms and huge variety of ways to make interactive stories holiday cards team presentations avatar creation the list goes on and on a limited time tape forms offering a three month free trial of the new take for improved service you can sign up by visiting take Fonda calm/Fiat Lux and you can upgrade to the pro plan from the dashboard mixer and use the coupon code feel likes to get your free three months thank you today form for sponsoring the shell ever make it easier for people to get to know each other better it's arson thanks let Ben that was so awesome and I strongly recommend giving out type form ago I did and honestly are on the survey so far it's been a pleasure to use so were deftly check it out so you I just as quickly but Xcode and insight act is that idea I lived inciting for years and years and years so you and that's fine and I don't know I live in Xcode each day every day others don't brand I'm probably not going to because while I've got another job programming other software and so even actually intense programming are motorcycle been doing lately has been more architectural high-level stuff which tends to happen when you get that sort of to the point I am in my career as you tended do you know less of the hands-on more of a high level and you knew you tender your yell at the younger younger engineers and programmers and say hey Asian property this way are you like that you like that that surprise a meal and a lot of a lot of developers like engineers dump the clearheaded but you mean how not yellowing of the block are likely to say what you asking me that out that your movements look I find the whole thing to be very frustrating because no matter which way you go you someone loses something because on the one hand you will have the technically excellent people and the the technically excellent people if they are happy being really good at what they're doing and they want to keep doing what they're doing then you want to keep them in a technical role and that works fine until they see the $'s and they say you know I actually would rather dancing work in yellow 18 hour days seven days a week ago in Indian control systems I'm sick of working out the mine site go underground bunker in a switch room wherever the hell am working I'm sick of that I want to go back to a nice cushy desk job in an office somewhere won't help other people what to do and get paid more write an NCO when that happens no matter how talented or goodbye are they see that they see the $and they go chasing after the bag of money so you know I've met people that are in their 60s that are still doing control system programming both my aunt but my in-laws are great, all foreign banks note that you know any real legacy goal but the busier it is doing hundred years and this is one guy around I came across and after he has hair like Einstein yellow seriously it was Sykes sticking out everywhere and he took little bit crazy but are cheesy was good he was so good and one time he was walking me through one of the progressions he was doing for stacking our algorithm says were stacking panels on stacking and sorting anyway a long story short anyways going through the hexadecimal you say I guess an hour do a rotation hearing shift there and pull this out there EC by sequencing at this way that makes it so straightforward non-like man is a really good idea but of course why he been doing it for 30 years he started programming with Modicon 08 fours and here I am my buddy be doing at that point only been doing it for about five years but you he was he was getting close to his 60s and he was still programming out of the eight at the time you know being younger advertisers go back over to 11 years ago there was happened and I'm thinking well why didn't you go into management for this will happen when he sort of got older and I was starting to come across people that there were technically minded that stayed in their technical stuff you know he loved that he was happy he was make enough to be happy in monocyte work with him fantastic so that's the problem is that they see people the technical ability that are good at people think they could have the technical stuff they can bigger the management stuff right and is completely wrong is a completely different skill set so you end up with people in management then the technically very good but manner from a management point of view interpersonal point of view are terrible metadata generalisation do not all terrible I like to think that I'm not terrible but you know I'm not really the best judge person to be answering the question asked people work for me but DO and believe me I had a mixed bag, on so they gather are all examined too closely so on the other hand though let's look at the other other option the other option is you do a little bit of programming not much non-technical wizard and you realise that the path to management is that says your project management so you start out doing project management and you are watching people's deliverables and then doing performance reviews before you not you working your way up the chain of management that way and you start managing projects as you have no technical knowledge of how they're actually put together and is very dangerous yacht your maxi managing people as people not actually managing the people do because you don't know other people do because you're not technically detailed enough you don't understand it so how can you manage that which you do not understand rape and mirrored as a weird lying there radio you can elaborate. An example of anything but elegantly the class in valuing public rather than private mothers like you know Everything goes on beneath you need to know enough needs another it messages the sand and if you don't reorient or worse if you if you think you do any really dull and then at pushing back I knew that it absolutely so I find that the progression up into management has many flaws but in the end someone has to do the management someone has to look at what's going on and make a judgement call over what matters and what doesn't matter it can't come back to each of the individuals because each individual give a different answer your five people working on a project you can get five different opinions about which part of the code needs the most work yes you can't work that way she worked that way then yours can get a random mess and I just have some of the devious one person notified of an opinion was the other problem people change their minds so you if you will avoid rework and have some coordinated approach a coordinated approach is better than no court no court no coordination gave you got five people and they're all going in different directions you're gonna get a net was EAS the whole logo around their waist yet put put a rope around their waist and then time not in the centre you put five people you say now walk whatever direction you want to walk the dog walking a complete different direction and you get this the middle the not in the middle is the sky wander all over the place probably end up back where it started when you're done and I were as you get those five people pointed in generally roughly the same kind of direction doesn't have to be exactly the same direction then that that point will small move forward so if management is not capable of doing that I shouldn't be in management but unfortunately gave too many people I've seen get away with you not knowing what the doing and still being in management positions because as a different set of performance criteria and I am start on the that's that's a whole other gather another actually is another topic of blue A8 is a Cialis share births are here for the moment let's leave up on their so just six circle back quickly to where we started and some honestly I needed this up so as not to be below once they go that's fine that's when you are doing and when you're told you need to extend or develop software or reuse software from someone else has written check for the documentation poke and prod a few times to make sure it behaves the way that the eye of the documentation says it's supposed to and if you having major issues with it fly get as early as you can and go back to whoever is asking you to use it and point out hey I'm having issues with this because frankly if someone have done that exercise that I did spend a couple months early on during the tendering the quoting stage of the project it would have been a very different financial outcome at least the control system component unfortunately assumptions make an asset of you and me so the person doing the quoting made a horribly bad assumption that was due to the lack of their technical air well I would say was more technical and that either they didn't have the time although our technically lazy I believe I had enough technical ability to figure that out but for whatever reason they didn't and I've never had a straight answer I notice individual I never straight answer out of them, harder walk up to them and say so why just through the budgeting up on this Malaika will let me tell you why screwed up all women know I never screwed up hands on hips you screwed up blah blah blah blah blah well that in the big way though I'm in if you can if you can designs Airways what you screwed that up our side of the person's attorney is more experience while Ralph U-boat and is a mammoth modernising an Arcana and an get it like that these standards are being presented for the worlders before defensive Buddha or it's a lot nicer when everyone can just admit that the human embryonic mistakes and you command from each other yeah that's hard as I did the culture when those mistakes are $1 million mistake that's the frustrating rate album I'm not actually saying it cost us $1 million out while he was going to was about it didn't but it was a sizeable chunk of chunk of change so i.e. you it's it's very hard to know I can be very self-critical someone says you know you screw this up one on my initial reaction is to agree with them prior probably did however the truth is that what I did particular on this project was i.e. burnt more time up front to save a hell of a lot of time later and convincing people in in project management that that was the case it took two years for those see it but in the end for whatever vindication that I could take you away from it the programmers that were sceptical the took my direction the beginning came back and thanked me it took two years they were sceptical they will go into the product to the project manager at by my bag and even said you know what John is proposing with the code rewrite of the sections is gonna take more time they didn't trust me but I made it happen anyway I pushed hard but did it we got a good result really only good one result we could have gone we had a working system and in the end they came back later insanely and sometimes you do that and you and it's hard you have confidence that what what you're proposing is the right solution and if you're if you're told extend this and it's a stinking pile of crap that doesn't work well you know what pushback and don't do it and honestly that's pretty much all that say about if you want more about this you can find John on Twitter at John Chitty seem on our site that you check I can't say tax distortion do come if you like to send an email you consented to giant a distortion outcome and Alexander reach me on Twitter at Deluxe at the file at pragmatic show on Twitter or at pragmatic on alt.Nancy show announcements and other related materials was FL thank you hundred 8.43 thanks for listening everyone thanks thank you Ben are�
Duration 48 minutes and 44 seconds Direct Download
Episode Sponsor:
Typeform: Typeform makes it easy to build and share beautifully designed online forms, combining human creativity with the power of modern, cross-device web technology to create new ways of asking questions online. Visit and use the Coupon Code fiatlux to upgrade to the PRO plan and get three months free.

Premium supporters have access to ad-free, early released episodes with a full back-catalogues of previous episodes


Ben Alexander

Ben Alexander

Ben created and runs and Fiat Lux

John Chidgey

John Chidgey

John is an Electrical, Instrumentation and Control Systems Engineer, software developer, podcaster, vocal actor and runs TechDistortion and the Engineered Network. John is a Chartered Professional Engineer in both Electrical Engineering and Information, Telecommunications and Electronics Engineering (ITEE) and a semi-regular conference speaker.

John has produced and appeared on many podcasts including Pragmatic and Causality and is available for hire for Vocal Acting or advertising. He has experience and interest in HMI Design, Alarm Management, Cyber-security and Root Cause Analysis.

You can find him on the Fediverse and on Twitter.