That's not the same project
-
I had read/heard somewhere (Grady Booch?) - "You have a twenty storey building with a basement floor; the building is occupied, has offices, residences, people living and working in it. Now, they want you to add a couple more basements under the existing basement." This is similar to what they want you to do, isn't it?
Yeah but that's easy - all you have to do is take stuff away... :laugh:
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
-
Ever been so frustrated that you wanted to make a post, but then couldn't really explain what was happening? I made a web based file checker for one of our clients as per request of the boss. It worked great, so much that we expanded it to work for more companies. No big deal, I had anticipated that so I set it up with nice design patterns to allow flexibility. Had a factory and command pattern. Not to bad. Now they want the program to actually do something different. I can't seem to explain to them that it's something that needs a good conversation and some dev time. They want it to be persistent and have complex rules, which is something I hadn't anticipated. There's now way, in the way the project is laid out, to do that. It was never meant to perform those sorts of tasks. They don't want a new program though, "just add this one thing onto it". So , like, if they just say it different and treat it like no big deal it will become easy enough for me to say ok. They just keep pressuring. We had been discussing other similar items, and then I guess they found an item that was "easy enough to do". As soon as it was brought up, everyone else is like "but you said you couldn't do that with my thing. If you do that, then we can do my thing too". Of coarse I don't have a choice. They already "sold" it to the client. At least I have until the end of the month. I just need to insert a specific one off into a generic system without breaking anything that works for the other companies.
Elephant elephant elephant, sunshine sunshine sunshine
"Don't show off every day, or you'll stop surprising people. There must always be some novelty left over. The person who displays a little more of it each day keeps up expectations, and no one ever discovers the limits of his talent." Baltasar Gracián
Recommended reading: Full-text of all available at Project Gutenberg, except for Gracian's book. "The Prince" Nicolo Machiavelli "The Art of Worldly Wisdom" Baltasar Gracián [^] "The Art of War" Sun Tzu "The Art of War" Carl von Clausewitz "Meditations" Marcus Aurelius
« There is only one difference between a madman and me. The madman thinks he is sane. I know I am mad. » Salvador Dali
-
Slacker007 wrote:
I wanted to take up cage fighting.
The United States invariably does the right thing, after having exhausted every other alternative. -Winston Churchill America is the only country that went from barbarism to decadence without civilization in between. -Oscar Wilde Wow, even the French showed a little more spine than that before they got their sh*t pushed in.[^] -Colin Mullikin
Mind bleach!!! I need mind bleach!!! :wtf: :wtf: Even Chuck Norris had to start somewhere, I guess... :sigh:
Will Rogers never met me.
-
Ever been so frustrated that you wanted to make a post, but then couldn't really explain what was happening? I made a web based file checker for one of our clients as per request of the boss. It worked great, so much that we expanded it to work for more companies. No big deal, I had anticipated that so I set it up with nice design patterns to allow flexibility. Had a factory and command pattern. Not to bad. Now they want the program to actually do something different. I can't seem to explain to them that it's something that needs a good conversation and some dev time. They want it to be persistent and have complex rules, which is something I hadn't anticipated. There's now way, in the way the project is laid out, to do that. It was never meant to perform those sorts of tasks. They don't want a new program though, "just add this one thing onto it". So , like, if they just say it different and treat it like no big deal it will become easy enough for me to say ok. They just keep pressuring. We had been discussing other similar items, and then I guess they found an item that was "easy enough to do". As soon as it was brought up, everyone else is like "but you said you couldn't do that with my thing. If you do that, then we can do my thing too". Of coarse I don't have a choice. They already "sold" it to the client. At least I have until the end of the month. I just need to insert a specific one off into a generic system without breaking anything that works for the other companies.
Elephant elephant elephant, sunshine sunshine sunshine
It's funny. (Funny "uh oh", not to be confused with "funny ha ha", see The Animaniacs for more.) I understand that "Business doesn't understand technology", having been doing this professionally for closer to 30 than 20 years. But it is continually aMAZING to me how PERFECTLY they have the sign bit switched between "easy" and "impossible".
-
Andy Brummer wrote:
So, figure out how to change the architecture and keep the system sane, and do that, and it takes as long as it takes
That's where I'm at with it. I've been watching plural sight videos for an upcoming project most of the morning so that I could think about this one. I wasn't going to start coding until I had a solution that was not a hack. I've come up with something that is going to fit nicely into the program, and shouldn't take too long for me to put in place.
Andy Brummer wrote:
I rarely explain any of the refactoring or maintenance that I have to do to keep a code base sane. No matter how you do it, it's just going to sound over complicated and excessive to them.
I'm in an interesting position with that here. The boss and one of the processors were programmers. They are from an old script hack breed though. They don't get why an object is different than a code module, they don't know what design patterns are or how they are useful, and they don't see the need to plan before you start coding. So I end up having to explain myself, but they don't understand in the end anyway.
Elephant elephant elephant, sunshine sunshine sunshine
-
Andy Brummer wrote:
So, figure out how to change the architecture and keep the system sane, and do that, and it takes as long as it takes
That's where I'm at with it. I've been watching plural sight videos for an upcoming project most of the morning so that I could think about this one. I wasn't going to start coding until I had a solution that was not a hack. I've come up with something that is going to fit nicely into the program, and shouldn't take too long for me to put in place.
Andy Brummer wrote:
I rarely explain any of the refactoring or maintenance that I have to do to keep a code base sane. No matter how you do it, it's just going to sound over complicated and excessive to them.
I'm in an interesting position with that here. The boss and one of the processors were programmers. They are from an old script hack breed though. They don't get why an object is different than a code module, they don't know what design patterns are or how they are useful, and they don't see the need to plan before you start coding. So I end up having to explain myself, but they don't understand in the end anyway.
Elephant elephant elephant, sunshine sunshine sunshine
loctrice wrote:
I'm in an interesting position with that here. The boss and one of the processors were programmers. They are from an old script hack breed though. They don't get why an object is different than a code module, they don't know what design patterns are or how they are useful, and they don't see the need to plan before you start coding. So I end up having to explain myself, but they don't understand in the end anyway.
That's a shame, it's really helpful to have someone to bounce design decisions off of. Though, at least you can do the opposite of what they suggest. :laugh:
Curvature of the Mind now with 3D
-
Ever been so frustrated that you wanted to make a post, but then couldn't really explain what was happening? I made a web based file checker for one of our clients as per request of the boss. It worked great, so much that we expanded it to work for more companies. No big deal, I had anticipated that so I set it up with nice design patterns to allow flexibility. Had a factory and command pattern. Not to bad. Now they want the program to actually do something different. I can't seem to explain to them that it's something that needs a good conversation and some dev time. They want it to be persistent and have complex rules, which is something I hadn't anticipated. There's now way, in the way the project is laid out, to do that. It was never meant to perform those sorts of tasks. They don't want a new program though, "just add this one thing onto it". So , like, if they just say it different and treat it like no big deal it will become easy enough for me to say ok. They just keep pressuring. We had been discussing other similar items, and then I guess they found an item that was "easy enough to do". As soon as it was brought up, everyone else is like "but you said you couldn't do that with my thing. If you do that, then we can do my thing too". Of coarse I don't have a choice. They already "sold" it to the client. At least I have until the end of the month. I just need to insert a specific one off into a generic system without breaking anything that works for the other companies.
Elephant elephant elephant, sunshine sunshine sunshine
Sounds like it might be worth building a plugin framework into your original project? Then you could leave that code clean and do the dirty stuff in each custom plugin :)
How do you know so much about swallows? Well, you have to know these things when you're a king, you know.
-
I'm not really sure what you mean by that. I googled the term, but I got a bunch of drop down box related links. Nothing useful.
Elephant elephant elephant, sunshine sunshine sunshine
Look up Nassi-Shneiderman. (If conditions are met, branch to <>.)
-
Ever been so frustrated that you wanted to make a post, but then couldn't really explain what was happening? I made a web based file checker for one of our clients as per request of the boss. It worked great, so much that we expanded it to work for more companies. No big deal, I had anticipated that so I set it up with nice design patterns to allow flexibility. Had a factory and command pattern. Not to bad. Now they want the program to actually do something different. I can't seem to explain to them that it's something that needs a good conversation and some dev time. They want it to be persistent and have complex rules, which is something I hadn't anticipated. There's now way, in the way the project is laid out, to do that. It was never meant to perform those sorts of tasks. They don't want a new program though, "just add this one thing onto it". So , like, if they just say it different and treat it like no big deal it will become easy enough for me to say ok. They just keep pressuring. We had been discussing other similar items, and then I guess they found an item that was "easy enough to do". As soon as it was brought up, everyone else is like "but you said you couldn't do that with my thing. If you do that, then we can do my thing too". Of coarse I don't have a choice. They already "sold" it to the client. At least I have until the end of the month. I just need to insert a specific one off into a generic system without breaking anything that works for the other companies.
Elephant elephant elephant, sunshine sunshine sunshine
That happened with a large project of mine; I designed and built a web based dynamic database front end that allowed rapid access to any SQL database on our system and did a ton of other important in house functions; then we got a new marketing guy who decided he couldn't sell it as it was and wanted a new version that completely changed the premise of the original so I had to do six months of rewrites. He couldn't or wouldn't understand why it took so long to make such "small" changes, and the pressure was to make them very fast as he was selling this promised software to clients; the result was a Frankenstein's monster which was a nightmare to debug and make changes to. The kicker was that nobody actually wanted this new hybrid product and it was canned 6 months later. Everyone in the office still uses the original version every day.
-
At this point, if I were you, I would introduce your management to the project triangle. This is a triangle that balances Scope, Cost and Time to deliver. In other words, if one of those items changes, then the other two parts have to be adjusted to compensate - so, the scope of your application has changed, then the time to deliver changes as does the cost. This is project management 101, and if they don't understand this, they need to be pushed.
Speak to them in language they understand. COST, COST, COST, COST, COST.....
I may not last forever but the mess I leave behind certainly will.
-
Ever been so frustrated that you wanted to make a post, but then couldn't really explain what was happening? I made a web based file checker for one of our clients as per request of the boss. It worked great, so much that we expanded it to work for more companies. No big deal, I had anticipated that so I set it up with nice design patterns to allow flexibility. Had a factory and command pattern. Not to bad. Now they want the program to actually do something different. I can't seem to explain to them that it's something that needs a good conversation and some dev time. They want it to be persistent and have complex rules, which is something I hadn't anticipated. There's now way, in the way the project is laid out, to do that. It was never meant to perform those sorts of tasks. They don't want a new program though, "just add this one thing onto it". So , like, if they just say it different and treat it like no big deal it will become easy enough for me to say ok. They just keep pressuring. We had been discussing other similar items, and then I guess they found an item that was "easy enough to do". As soon as it was brought up, everyone else is like "but you said you couldn't do that with my thing. If you do that, then we can do my thing too". Of coarse I don't have a choice. They already "sold" it to the client. At least I have until the end of the month. I just need to insert a specific one off into a generic system without breaking anything that works for the other companies.
Elephant elephant elephant, sunshine sunshine sunshine
No, I walked.
-
loctrice wrote:
Ever been so frustrated that you wanted to make a post, but then couldn't really explain what was happening?
Yes, several times.
loctrice wrote:
Now they want the program to actually do something different.
Can I get fries with that also? :)
New version: WinHeist Version 2.1.0 Beta There's a fine line between crazy and free spirited and it's usually a prescription.
"Can I get fries with that also?" - clearly you need a man of philosophy.
-
Ever been so frustrated that you wanted to make a post, but then couldn't really explain what was happening? I made a web based file checker for one of our clients as per request of the boss. It worked great, so much that we expanded it to work for more companies. No big deal, I had anticipated that so I set it up with nice design patterns to allow flexibility. Had a factory and command pattern. Not to bad. Now they want the program to actually do something different. I can't seem to explain to them that it's something that needs a good conversation and some dev time. They want it to be persistent and have complex rules, which is something I hadn't anticipated. There's now way, in the way the project is laid out, to do that. It was never meant to perform those sorts of tasks. They don't want a new program though, "just add this one thing onto it". So , like, if they just say it different and treat it like no big deal it will become easy enough for me to say ok. They just keep pressuring. We had been discussing other similar items, and then I guess they found an item that was "easy enough to do". As soon as it was brought up, everyone else is like "but you said you couldn't do that with my thing. If you do that, then we can do my thing too". Of coarse I don't have a choice. They already "sold" it to the client. At least I have until the end of the month. I just need to insert a specific one off into a generic system without breaking anything that works for the other companies.
Elephant elephant elephant, sunshine sunshine sunshine
What you're starting with: Starting structure[^] What they think you can build: Desired result[^] The only good thing is that the starting structure already has plenty of what will be in the final result.
Software Zen:
delete this;
-
Ever been so frustrated that you wanted to make a post, but then couldn't really explain what was happening? I made a web based file checker for one of our clients as per request of the boss. It worked great, so much that we expanded it to work for more companies. No big deal, I had anticipated that so I set it up with nice design patterns to allow flexibility. Had a factory and command pattern. Not to bad. Now they want the program to actually do something different. I can't seem to explain to them that it's something that needs a good conversation and some dev time. They want it to be persistent and have complex rules, which is something I hadn't anticipated. There's now way, in the way the project is laid out, to do that. It was never meant to perform those sorts of tasks. They don't want a new program though, "just add this one thing onto it". So , like, if they just say it different and treat it like no big deal it will become easy enough for me to say ok. They just keep pressuring. We had been discussing other similar items, and then I guess they found an item that was "easy enough to do". As soon as it was brought up, everyone else is like "but you said you couldn't do that with my thing. If you do that, then we can do my thing too". Of coarse I don't have a choice. They already "sold" it to the client. At least I have until the end of the month. I just need to insert a specific one off into a generic system without breaking anything that works for the other companies.
Elephant elephant elephant, sunshine sunshine sunshine
When I was doing computer controlled conveyor systems, the phrase that struck terror in my heart was, "It's just like (fill in the blank)." Yeah, only if you ingest a lot of acid and turn the blueprint sideways and upside down. They once flew me halfway across the continent to view a system to prepare for a sales presentation on the other half. They picked me up at the airport for the 20 minute drive to the client's site and gave me the blueprints to look over. Aside from the paper they were printed on, there was no similarity. Didn't help the new design was unworkable to boot.
Psychosis at 10 Film at 11 Those who do not remember the past, are doomed to repeat it. Those who do not remember the past, cannot build upon it.
-
Ever been so frustrated that you wanted to make a post, but then couldn't really explain what was happening? I made a web based file checker for one of our clients as per request of the boss. It worked great, so much that we expanded it to work for more companies. No big deal, I had anticipated that so I set it up with nice design patterns to allow flexibility. Had a factory and command pattern. Not to bad. Now they want the program to actually do something different. I can't seem to explain to them that it's something that needs a good conversation and some dev time. They want it to be persistent and have complex rules, which is something I hadn't anticipated. There's now way, in the way the project is laid out, to do that. It was never meant to perform those sorts of tasks. They don't want a new program though, "just add this one thing onto it". So , like, if they just say it different and treat it like no big deal it will become easy enough for me to say ok. They just keep pressuring. We had been discussing other similar items, and then I guess they found an item that was "easy enough to do". As soon as it was brought up, everyone else is like "but you said you couldn't do that with my thing. If you do that, then we can do my thing too". Of coarse I don't have a choice. They already "sold" it to the client. At least I have until the end of the month. I just need to insert a specific one off into a generic system without breaking anything that works for the other companies.
Elephant elephant elephant, sunshine sunshine sunshine
Is this new and different thing in addition to the original file checking? If so, without knowing anything about the architecture, I'd be inclined to say if this new operation is really that different from the original, then just make a totally different set of code to handle that new job, but package it up in the same project. Make an initial entry point that just takes in a file and an operation to perform, and it just sends the file to the existing code or the new code, depending on the operation. You can add any number of different operations that are arbitrarily different from each other using separate sets of code. Being web-based, you can just have different web pages for different operations.
Greg Hall greghall@bantling.me
-
Is this new and different thing in addition to the original file checking? If so, without knowing anything about the architecture, I'd be inclined to say if this new operation is really that different from the original, then just make a totally different set of code to handle that new job, but package it up in the same project. Make an initial entry point that just takes in a file and an operation to perform, and it just sends the file to the existing code or the new code, depending on the operation. You can add any number of different operations that are arbitrarily different from each other using separate sets of code. Being web-based, you can just have different web pages for different operations.
Greg Hall greghall@bantling.me
The program was written for basic file integrity. Like, do all the column headers match and do all the required fields have data all the way through. That was all it was intended for, so the processor got an email when a file was accepted and then did his/her job. The problem is now they are wanting to add persistence. Like is all the data in the same order as the previous load(s), and have we already processed this file into our (completely separate) data system. Which is part of two other planned projects, but don't fit in here. I was using a factory to get an object, per client, that implemented the command pattern for the rulesets. The list of command objects was injected via another factory. Made things pretty simple. Those objects all just took in a list of the data. My frustration also has to do with the fact that later with another planned project, I'll have to reimplement this properly (which is how you were talking about another set of code). The idea is that we will automatically process these files as well,but they are getting impatient and just wanting things hacked onto this project because it will take time to develop the other two pieces. If it interests you, I just changed the top level command object that comes back from the factory to be a container object, and take a second argument containing the user data needed for previous lookups. It breaks my idea of clean code because a) it no longer implements the uniform command pattern, and b) the top level objects now take an argument that aren't used by the other implementations. I decided I would leave it the way it was, because a) We're going to do the next step soon and it will make this code irrelivant and b) without more instances I don't see a clear/clean way to refactor it.
Elephant elephant elephant, sunshine sunshine sunshine