Dear Mr. Kurzweil,
I am Lorand Kedves, 41, "all-round programmer" from system analysis to typing code in various areas, languages and environments. I worked on AI field before 2000 (our company, Mindmaker/Cygron won PC Week's Best of Comdex award in Las Vegas with DataScope); worked on national data management systems in Hungary, have experience in telco environment, etc. As a hobby project, I work on the programming environment which "could be the only way to build Skynet" if that is possible at all. This is not a joke, today I use a small subset of those ideas in real life development.
After this introduction, you may not flush the following notice immediately.
Singularity is also in my focus, but in a very different way. After reading the "Singularity Q&A" on your website, I think you are simply, ultimately wrong.
You totally forget about the fundamental difference between human brain and computer (remember: I have trained my brain to merge with computers for 20 years, full time). You seem to want to get rid of your own humanity - but hey! This is our hardware! Your approach is perfectly reflected in out planet: dreaming about the techno-future, but leave chemical, radiation, energy (climate change), social and political (the next cold war is coming) pollution everywhere. You are a brilliant person, but seem to forget that we must survive the next few years first, with the current population, before going towards your dreams (or something else that we are unable to dream about).
For me, singularity is here. We, as human beings are able to break the limits of space and time literally: we build partnership, our life is changed by people lived thousands of years ago, on the other end of the planet, whose language we don't know. Our civilization as a whole, and we as individuals, meet the singularity of knowledge, or to say, memetic and control singularity. But we are not prepared for that, and that is really dangerous.
Here is a short lecture about these concepts: Taste of Luck
I am interested in your view about "my singularity", or my critic on yours.
Thank you
Lorand Kedves
[edited: links and references added]
Ha elég messzire jutottál, a megoldás a hátad mögött van... :-)
Respektu Tempon. Tiszteld az Időt / Az Időt tiszteld.
International readers, please use the english tag to get a first impression, thank you.
2014. március 18., kedd
2014. március 10., hétfő
Sic transit gloria mundi
LinkedIn
Software Architects and Enterprise Architects Group
How would you describe a well-architected system?
@Ethar - We were asked to create a system for public touch screen terminals. The content should be managed on Java servers, the players to run Windows 8 C#. My pilot project was how can I create a remote configurable application in an environment I have never played with.
You should keep in mind that I have worked in C# for 2 months. So the code is ugly for anyone, and of course, just a POC experiment. The project came from a company that abandoned the whole idea, so I was allowed to put it to my playground. It was a long time ago, so please don't ask me about details, I am buried in Java now.
After all this, have fun: https://github.com/MondoAurora/DustFramework/tree/master/c%23
@Ethar - Sorry, the problem here is that I work for a company on internal development. I think it is not loyal, and almost sure illegal also to disclose details of it on a public forum. I am very cautious here to talk about things that I have already published, or very generic, and not coming from the actual development.
So, the latest public stuff is that C# project. The "core concept" was that the application structure should not appear as source code, but a configuration that an administrator can edit (and in fact, an automatism can build from various segments) on a Java server. The "player" should load this configuration and "play" it. To achieve this, I had to wrap the required components (scheduler, message dispatcher, layout manager, video, HTML, etc. player), and open the structure for custom component integration (sample is the clock); make the configuration serializable, and do a business logic-component late binding. This is what you see there.
Another idea. In private, I think I can send you a sample configuration file of my project, there is nothing special in it. Then we can continue officially: I always beg for an architect overview, but I am too small for that. But if you are interested... ;-)
@Ethar - Sounds reasonable, but I have a problem with it. I admit that I am talkative, but I don't like repetition, and all that I would write you can read here: http://dust-framework.org/ (this is my "dream project", the texts should do as the "narrative"). If you want to see codes, you can check it there also (the link points to GitHub).
Of course what I do now is far over what you can see there in code, and I should spend even more time on it because I have a very tight schedule. I don't see the ROI in the proposed "pair programming" - I do it in my work hours on my real assignment. Sorry about this, I wish we started this talk earlier.
@Edward - I think this is the best moment for me to say thank you for the conversation.
I totally agree with your statements, and I see that the difference between us is the definition of "return" which is naturally translated to sells well in business, and serves well in my world, to which "academic" is a good term. Even if I mean something else on it than universities today. RIP Randy Pausch.
Productivity and AI before dotcom crash? Perhaps you knew Cygron/Mindmaker, where I was the lead programmer on decision tree / transaction analysis / model executor tasks!
Good old times... data mining on a 300MHz CPU with 64MB RAM; first tricks of true parallel execution; interactive 3D charts before hardware accelerators and OpenGL, with a local engine... YES! :-)
You are right, I have occupied too much of screen space here, and although I still consider my stuff focused and practical, this does not meet your opinion. That's life.
Of course I could add some notes to the "dreamer" section, like that the mentioned data mining tool won in 1999 and was finalist in 2000 at Comdex in Las Vegas - perhaps you can guess there was a bit of sweat and real work behind... Or that in fact I *was* lead architect and programmer when we created the national agriculture data management system, and for example when someone asked "why didn't you use Spring for IoC container?" I had to answer: "when I designed and wrote it, there was no Spring, sorry. But if necessary, we can migrate, because it is isolated."
@Ethar, the invitation stands. If you are interested in the real stuff, I can send you a configuration file with explanation, and if you like, we can search for an official way. I really don't want to bring more disturbance here. Thank you for the comments, it was interesting and useful to me. Sorry if I was too offensive or single-minded.
Software Architects and Enterprise Architects Group
How would you describe a well-architected system?
@Ethar - We were asked to create a system for public touch screen terminals. The content should be managed on Java servers, the players to run Windows 8 C#. My pilot project was how can I create a remote configurable application in an environment I have never played with.
You should keep in mind that I have worked in C# for 2 months. So the code is ugly for anyone, and of course, just a POC experiment. The project came from a company that abandoned the whole idea, so I was allowed to put it to my playground. It was a long time ago, so please don't ask me about details, I am buried in Java now.
After all this, have fun: https://github.com/MondoAurora/DustFramework/tree/master/c%23
@Ethar - Sorry, the problem here is that I work for a company on internal development. I think it is not loyal, and almost sure illegal also to disclose details of it on a public forum. I am very cautious here to talk about things that I have already published, or very generic, and not coming from the actual development.
So, the latest public stuff is that C# project. The "core concept" was that the application structure should not appear as source code, but a configuration that an administrator can edit (and in fact, an automatism can build from various segments) on a Java server. The "player" should load this configuration and "play" it. To achieve this, I had to wrap the required components (scheduler, message dispatcher, layout manager, video, HTML, etc. player), and open the structure for custom component integration (sample is the clock); make the configuration serializable, and do a business logic-component late binding. This is what you see there.
Another idea. In private, I think I can send you a sample configuration file of my project, there is nothing special in it. Then we can continue officially: I always beg for an architect overview, but I am too small for that. But if you are interested... ;-)
@Ethar - Sounds reasonable, but I have a problem with it. I admit that I am talkative, but I don't like repetition, and all that I would write you can read here: http://dust-framework.org/ (this is my "dream project", the texts should do as the "narrative"). If you want to see codes, you can check it there also (the link points to GitHub).
Of course what I do now is far over what you can see there in code, and I should spend even more time on it because I have a very tight schedule. I don't see the ROI in the proposed "pair programming" - I do it in my work hours on my real assignment. Sorry about this, I wish we started this talk earlier.
@Edward - I think this is the best moment for me to say thank you for the conversation.
I totally agree with your statements, and I see that the difference between us is the definition of "return" which is naturally translated to sells well in business, and serves well in my world, to which "academic" is a good term. Even if I mean something else on it than universities today. RIP Randy Pausch.
Productivity and AI before dotcom crash? Perhaps you knew Cygron/Mindmaker, where I was the lead programmer on decision tree / transaction analysis / model executor tasks!
Good old times... data mining on a 300MHz CPU with 64MB RAM; first tricks of true parallel execution; interactive 3D charts before hardware accelerators and OpenGL, with a local engine... YES! :-)
You are right, I have occupied too much of screen space here, and although I still consider my stuff focused and practical, this does not meet your opinion. That's life.
Of course I could add some notes to the "dreamer" section, like that the mentioned data mining tool won in 1999 and was finalist in 2000 at Comdex in Las Vegas - perhaps you can guess there was a bit of sweat and real work behind... Or that in fact I *was* lead architect and programmer when we created the national agriculture data management system, and for example when someone asked "why didn't you use Spring for IoC container?" I had to answer: "when I designed and wrote it, there was no Spring, sorry. But if necessary, we can migrate, because it is isolated."
@Ethar, the invitation stands. If you are interested in the real stuff, I can send you a configuration file with explanation, and if you like, we can search for an official way. I really don't want to bring more disturbance here. Thank you for the comments, it was interesting and useful to me. Sorry if I was too offensive or single-minded.
2014. március 8., szombat
Mission statement
We have our economy model based on material goods: companies turn raw materials and resources to products that users individually buy and use. These goods get worn and eventually break, so the user comes back to the company for a new one.
IT artifacts are NOT of this kind. Apart from changeable technical boundaries, an idea, a digitized book, a software can be accessed and used at the same time by unlimited people at the same time. They don't wear off, don't break by the usage; if there is an error, it can be fixed and the change can again be globally deployed.
Shared. Fixable. Ever-lasting. These fundamental features make IT a science, or art, but totally useless for business. I can tell you the story, how important it was to practically RAPE IT with business concepts, to get money into it and so reach its current state. Repeat: it is very important that IT became a business. However: what I call a well-architected framework follows the fundamental rules of the IT: transparent (shared knowledge for any user), modular (fixable by anyone, not only the creator), and environment-independent: the tools, OS, language, running platform will surely change, the system should survive that with minimum or no side effects (ever-lasting).
These are VERY hard requirements, out of scope of any budget for any actual task, so you have no chance to think in long term on this scale: the ROI guaranteed to be negative! And if despite of this, you create an (IT-term) well-architected component, you SOLVED a task, and that is WRONG for your business! But the IT definition of "well-architected", you can go to sleep: anyone can use it, and if there is anything wrong with your solution, others can also fix it, no one is tied to you.
The only way for getting a financial ROI is to be better than your competitor, who in general, knows and wants exactly the same. How can you do that?
The key to business success is that you have real invention in your system, that changes or breaks a rule that your competitor follows. But you can't waste your resources on inventing it, because that is a long, trial-and-error story, and your competitors will come up with their products while your engineers keep scratching their heads. The only way is that you buy (worse) or steal (better) an innovation, build a marketable product on it, and you are the famous winner of the game. If you do it in large, you can be the next Gates, Jobs - if not, you can still have your holiday on Hawaii. You don't have to care for the innovators, who simply suck while you "polish their dusty rock". Or pay them some cash because you are a noble person, but that is bad for your ROI.
No personal offense in this. This is only the picture of the world where sharks became the dominant race, in NatGeo-style.
Do you want examples to these hard statements?
Let's take a look at the automotive industry. Giant factories were placed to China to build cars for the western market with cheaper workforce and less rigorous environment protection, so greater profit. Of course, China started to make its own companies, but those cars were... not good enough for us. However, today they could buy whole car companies, and their products suddenly became much better. What happened?
With the companies, they have bought not only well trained, but experienced engineers, and the research logs. _They_have_bought_the_errors!_ The guide that can shade the grey opinions, estimate not only the price tag and the financial ROI, but the (for me) real attributes, like possible results of crash tests after changing some variants.
Please look around in Detroit for yourself, and watch the marketing films about the Chinese advancement (but forget about the air pollution they pay for this).
Want another example? I was laughing loud when I read this, it is so telling...
I have read somewhere that Motorola was working on a modular phone architecture. WOW I said: an innovation against business plans! For dreamers: a phone manufacturer is interested in selling their product to the SAME user they sold the previous one - is it good for any of them that the users can replace parts?
Then I read that Motorola was owned by Google. The article also mentioned that therefore the only company that is not absolutely controlled by the number of sold items (surprise: is it not only me to whom this is obvious?)
Now I read that Google has SOLD Motorola to Lenovo, but... yes, you are right: they kept the patents, and yes, today Google has a modular phone project! And the article mentions that Google lost a lot of money on the Motorola story - I see they have a killer weapon against all companies who create mobile phones. And their project is not from Kickstarter, but made by the guys who have been in the heart of the business from the beginning, and contains experience from all the failures!
I wonder how many people remember that Android was not Google, AdSense was not Google... but today those guys work at Google - or in Hawaii. The exceptional big companies that played a noble role in the story are out of the IT playground today, like Xerox, or Sun Microsystems (try to understand the importance of making Java with all reference and tutorials free - as a university student I was a criminal, having a "stolen" compiler and documentations that I could not afford).
OK, this was really long and philosophical, although it answers practical questions and explains "magical stories" to me. My fundamental statement for the end: I accept your ROI-based approach, and its importance in today's world. I also accept that I must adapt to it. But I say that the fundamental architectural requirements of a truly, technically well-architected system is AGAINST ROI goals; and ROI appears only if the system contains something against ROI rules, that is not payed (stolen or bought for marbles).
Prelude to mission statement
I could also explain in a few paragraphs why and how your ultimate concept, the monetary evaluation gives fundamentally wrong motivations, and as side effect, makes us destroy our own habitat if we don't change it, I would say THIS year. That would be philosophy, but also useless, because it is too far out of your comfort zone to follow. So forget that.
(No offense, this is my experience in long years, the simple explanation is in the lecture - but if you also realized that the Hitchhikers' Guide is a fundamental book on philosophy, accept my apologies.)
I seem to be the one here who talks about actual technologies and lessons in IT stories, not merely repeating the "money makes the world go round" mantra (because that applies to your world, while in mine it is the laws of physics, by the way). I have spent most of the past 20 years, I go to work every day now to design and build a well-architected framework myself, not to sell or evaluate it. I don't want to be offensive with this, but I would like to draw the clear line between our roles, because that defines our experience, and therefore the concepts that we accept without arguments.
When I talk about ROI, I don't mean a system that SELLS well, but the one that SERVES well. When I talk about modularity, I mean how much we must refactor the original requirements, how much we must forget the features and focus on the architecture to make a system that survives, or better: prevents some of the change requests after release, or even in the test period ("I did not mean that!"). _I_don't_care_ that with signed specs in the contract we can make the customer pay for that garbage, and pay again for the new version because that gives our PROFIT, and that is we work for... that is what you suggest I should work for!
When I talk about platform independence, I don't mean multi-platform toolkits by giant companies or a global bunch of script kiddies, but portable concepts that I alone could implement in months, and which payed back the effort in that project alone (but could be used anywhere). When I talk about separating the concepts from sources, I don't mean UML dinosaurs and multi-language code generation but a runtime that allows me setting up the type system and the application itself in configuration files (partly typed in C#, Objective C and Java so far, the planned final version to be done in plain C). Sorry, nobody spent enough time on thinking, so I had to write it :-) Can I sell this to any consultant, get a sponsor? No way. There is no business in doing a job really well in IT (ask Microsoft about Windows XP).
Personally, I understand your change, and I understand the "product must be sold" requirement - but still I chose the harder way, because I realized that no ROI-focused projects can answer the questions I ask. This is called basic research which I do behind all actual tasks that I do. Today I can answer questions that others can't even see. Unfortunately, that makes them unable to understand it either - but now I gradually can show working elements, and that changes the situation. Sorry, I can't do the same here even if anyone would spend the time, because this is closed source. I was not good enough for universities, when I asked... and it is better in this way: the ROI and time pressure to play my games behind an actual and tough task is my dearest enemy :-D
@Edward - First of all: you always compare the "unquestionable" monetary ROI with "opinions", with slight sarcasm on the second. You seem to forget that the mere definition of real innovation is to break some rules and habits, so they are fundamentally against "common experience", and there you have nothing else but opinions. To me, your ROI concept is a fundamentally wrong opinion, but because it is globally accepted, it affects the whole world and myself. I must adapt to it to survive, but I don't let it go above this layer.
Opinions to you seem to be equally gray in the shadow of "responsible thinking" and monetary ROI, following them merely a trial-and-error story. In most cases, you are right - but true innovators are those who can find new paths, evaluate opinions, make sensible mistakes, "waste money" to get experience in the good directions. And finally, perhaps after reusing long list of previous "failures", bring up something that is marketable, and has financial ROI. This used to be called "science" - but today you don't find a university that is not fighting for money, and lost the best brains who (in their personal quest for money and holiday on Hawaii) first do their startups, and after some failures go work for "innovative companies" like Google.
In your career with giant, stable companies, it is not likely that you have ever met with true innovators, and among startups, you should check a thousand to see one. You are statistically absolutely right, this makes the world go ROUND. But please accept that I talk about the exceptions that move the world AHEAD!
2014. március 5., szerda
Innovation and ROI
LinkedIn
@Edward - yes, this is how it goes: we all follow our opinions, and share them for reviews from others who have different ideas. And this is cool :-)
My personal opinion is that selling a product for profit and solving a problem (translate: financial(!) ROI and true innovation) requires opposite mindset, Google's above mentioned mind farming strategy clearly proves that to me. I also think (based on what I have seen around me in the past 20 years) that 99% of the source codes today are simple N-th repetition of simple tasks (GUI event management, serialization, logging, event dispatching, etc); housekeeping; monkey-typing (or in "better case", generated codes), M-th scripting language and the yet the newest, smartest GUI frameworks. Almost zero new idea, innovation, because that requires tons of FAILED experiments, broken deadlines and abandoned development paths beforehand. There is no other way, only in today's sci-fi trash.
Not to mention true knowledge and solution sharing, which is a totally stupid idea from profitability and patent wars point of view.
This is my opinion. It does not make me really happy - but gives me very strong motivation to cut this Gordian knot, and right now I have a quite cool battle axe for that ;-)
Innovation? A new kind of TV??? Well, I think we have different view on this term. For intro, you may check this...
Apple's great innovation was to ... er... reuse the hardware ideas from Xerox PARC (GUI, mouse, tablet, etc.), and put the truly great Objective-C language into the heart of its environment (which is by the way, based on Smalltalk... another "reused idea" from PARC).
Apple followed a very strong vision to make a feature-rich but user affordable hardware (at the beginning it looked impossible), targeted at education first, set a very high standard regarding the GUI to minimize the user learning curve: work as expected. Again: Apple's HIG is a piece of solid gold for any app designer. And this worth the money, builds a faithful user base, so gives the ROI. For a while.
At the same time PARC went down the drain because they had no idea how to make money on their innovation, have not built patent stack, let others "use" their ideas, etc. They just did a great job on a single task: invent the technology required for a paper-less world. Unfortunately WE are unable to imagine that world...
I can tell you my story, how I was able to type in a GUI framework with configurative data binding, and a statistics viewset on an OLAP cube in Objective-C, etc. and so build half of a complete (and currently live) project within 5 months from the first line I wrote in Objective-C (including the complete month that I spent on reading through their docs). Because iOS is truly a great environment, and indeed a well-architected framework, thanks to the great coherence among the language features, data management, GUI features, etc.
But instead of Apple, that is because of the true innovation done at Xerox PARC in 1970!
@Gary - YouTube is a good friend: you can find lots of interviews and documentaries about that era and with Steve Jobs, I have spent quite a few hours watching them.
He was a very conscious businessman, with a strong faith and charisma. You can watch him setting two targets for his group: a price tag and a deadline; the team is to find out what they can squeeze into this box. Is this innovation? Come on...
I think there are several people with these abilities. But that part of your story is true: he went to PARC, and what he saw there just flushed away everything that he wanted to do before, and became obsessed by those ideas. He was sensitive to the potentials, could motivate people with his faith, and present the result in a unique way. True talents of a great salesman.
What I dislike in your story is the "rock on the ground": you seem to be blind to the real work. That rock came from a mine after several years hard work of an elite group. I repeat: they invented an object oriented, message based programming environment (while "an OS should be written in C"), built the first GUI system on it (when others played with a console); created a computer network, laser printer, even the concept of tablets. In 1970, do you remember? The capacity of those machines were well under the CPU of your dishwasher! The results of PARC inventions costed fortunes, and were surely useless, _dead_slow_. When Xerox watched the possible ROI, that was simply zero, they felt that all the money they spent on PARC just went down the sink.
It required someone who started to believe in it, and this was Jobs. He could NOT spend the money and years Xerox did to get these "rocks" himself; and if we add that cost, he could not start his venture. But he had the chance to "take" what he saw, and start building a company to make money on others' results, like a multistage rocket in IT business. He also took a giant risk, but at least he had the chance to win in this way, and so it happened. And we all should be grateful for this, because we actually live in his dream.
But I am a programmer and not a salesman, so I don't care about the famous CEOs (they are the guys who set goals and give resources), but the guys who _do_the_job_: who invented the fundamental elements of a new world, though they looked ugly and useless. And in this case, these are the guys at PARC, so my real respect goes to them - without neglecting the importance of Jobs-like figures. And the same way, about framework architecture, I ask the opinion of an inventor and not a salesman.
@Edward - the question is very good. I will try to summarize my answer to it in a way that you can probably accept (even if you don't agree); a kind of mission statement for my whole career. I need some time for that, though :-)
Software Architects and Enterprise Architects Group
How would you describe a well-architected system?
How would you describe a well-architected system?
@Edward - yes, this is how it goes: we all follow our opinions, and share them for reviews from others who have different ideas. And this is cool :-)
My personal opinion is that selling a product for profit and solving a problem (translate: financial(!) ROI and true innovation) requires opposite mindset, Google's above mentioned mind farming strategy clearly proves that to me. I also think (based on what I have seen around me in the past 20 years) that 99% of the source codes today are simple N-th repetition of simple tasks (GUI event management, serialization, logging, event dispatching, etc); housekeeping; monkey-typing (or in "better case", generated codes), M-th scripting language and the yet the newest, smartest GUI frameworks. Almost zero new idea, innovation, because that requires tons of FAILED experiments, broken deadlines and abandoned development paths beforehand. There is no other way, only in today's sci-fi trash.
Not to mention true knowledge and solution sharing, which is a totally stupid idea from profitability and patent wars point of view.
This is my opinion. It does not make me really happy - but gives me very strong motivation to cut this Gordian knot, and right now I have a quite cool battle axe for that ;-)
Innovation? A new kind of TV??? Well, I think we have different view on this term. For intro, you may check this...
Apple's great innovation was to ... er... reuse the hardware ideas from Xerox PARC (GUI, mouse, tablet, etc.), and put the truly great Objective-C language into the heart of its environment (which is by the way, based on Smalltalk... another "reused idea" from PARC).
Apple followed a very strong vision to make a feature-rich but user affordable hardware (at the beginning it looked impossible), targeted at education first, set a very high standard regarding the GUI to minimize the user learning curve: work as expected. Again: Apple's HIG is a piece of solid gold for any app designer. And this worth the money, builds a faithful user base, so gives the ROI. For a while.
At the same time PARC went down the drain because they had no idea how to make money on their innovation, have not built patent stack, let others "use" their ideas, etc. They just did a great job on a single task: invent the technology required for a paper-less world. Unfortunately WE are unable to imagine that world...
I can tell you my story, how I was able to type in a GUI framework with configurative data binding, and a statistics viewset on an OLAP cube in Objective-C, etc. and so build half of a complete (and currently live) project within 5 months from the first line I wrote in Objective-C (including the complete month that I spent on reading through their docs). Because iOS is truly a great environment, and indeed a well-architected framework, thanks to the great coherence among the language features, data management, GUI features, etc.
But instead of Apple, that is because of the true innovation done at Xerox PARC in 1970!
@Gary - YouTube is a good friend: you can find lots of interviews and documentaries about that era and with Steve Jobs, I have spent quite a few hours watching them.
He was a very conscious businessman, with a strong faith and charisma. You can watch him setting two targets for his group: a price tag and a deadline; the team is to find out what they can squeeze into this box. Is this innovation? Come on...
I think there are several people with these abilities. But that part of your story is true: he went to PARC, and what he saw there just flushed away everything that he wanted to do before, and became obsessed by those ideas. He was sensitive to the potentials, could motivate people with his faith, and present the result in a unique way. True talents of a great salesman.
What I dislike in your story is the "rock on the ground": you seem to be blind to the real work. That rock came from a mine after several years hard work of an elite group. I repeat: they invented an object oriented, message based programming environment (while "an OS should be written in C"), built the first GUI system on it (when others played with a console); created a computer network, laser printer, even the concept of tablets. In 1970, do you remember? The capacity of those machines were well under the CPU of your dishwasher! The results of PARC inventions costed fortunes, and were surely useless, _dead_slow_. When Xerox watched the possible ROI, that was simply zero, they felt that all the money they spent on PARC just went down the sink.
It required someone who started to believe in it, and this was Jobs. He could NOT spend the money and years Xerox did to get these "rocks" himself; and if we add that cost, he could not start his venture. But he had the chance to "take" what he saw, and start building a company to make money on others' results, like a multistage rocket in IT business. He also took a giant risk, but at least he had the chance to win in this way, and so it happened. And we all should be grateful for this, because we actually live in his dream.
But I am a programmer and not a salesman, so I don't care about the famous CEOs (they are the guys who set goals and give resources), but the guys who _do_the_job_: who invented the fundamental elements of a new world, though they looked ugly and useless. And in this case, these are the guys at PARC, so my real respect goes to them - without neglecting the importance of Jobs-like figures. And the same way, about framework architecture, I ask the opinion of an inventor and not a salesman.
@Edward - the question is very good. I will try to summarize my answer to it in a way that you can probably accept (even if you don't agree); a kind of mission statement for my whole career. I need some time for that, though :-)
2014. március 2., vasárnap
Mind farming
LinkedIn
Investment to me means time and resources, from all parties: architects, developers, administrators, end users, and those whom the end users provide the service to.
Return means not only the successful service, but the core innovation in the system, and the more complex understanding of the tasks personally.
Translate them to money to me means throwing away the real (and yes, quite complex) lesson for cash - even though I know that I need salary today, and that comes from selling my work. This is why I say: I don't want to make decision(!), and accept financial reasons(!) - but I don't let them poison my analysis either.
As analogy, I am a true geek, so I prefer reading Asimov instead of watching any new sci-fi "blockbuster" trash. By the way, my vision is quite precisely written in the Foundation stories.
You talk about the financial sustainability of a company with successful _products_. I talk about _technology_and_innovation_, and I see that our world badly misses that, because all our smart people dig for profit instead of looking forward.
Today we praise "startups", and seek for innovation from them. Why? Big companies do have smart people, give them lot of money, but... yepp, they work for monetary profit, financial ROI. Startups have vision, not ROI plan (listen to Guy Kawasaki), they are allowed to fail 20 times per one success. Sorry, at the edge of technology, this is how it goes, and new things only come from here. This is my place, this is how I classify a system well-architected.
The success of "innovative companies" like Google comes from that they host both approach under the same hood. They have strict business plan and work for monetary ROI in their _products_, but let their employees run their own "startups" in fixed percentage of their times forgetting even the smell of ROI, to work on technology and innovation. The company harvests the 1 percent innovation that pays back, and another 9 goes to patent stock, I presume. This seems to be the winner so far, not to mention the fame for any creative people that they are praised and payed very well for their pet projects. Smart mind farming... :-/
I do this model as a one-man show. I have worked on various fields, at several companies and in many languages, environments in the past 20 years. You can explain the lifecycle of a product to me, but the same is true for my story: I applied and refined my concepts behind all jobs that I have done (data mining, spam monitoring, national data management system, log analyzer, home automation, public touch screen terminals, ...). I can tell the motivations behind the languages, toolkits, etc. by just playing with them for some days. I have thrown away tons of code that better salesmen would make fortune on, because they were not "well-architected" enough, and he errors started poisoning dependent codes. I have lots of failures in small companies and short projects, and some success, all in longer term projects, where I had space to run my way.
This really worth 20 years, gave me joy - and yes, pays back to my companies more and more, because today I am really fast. For example, I could type in a configuration-based web GUI framework literally in weeks (because I have the underlying management framework that took another some months now). It was 1.5 years to invent the last time at another company, but that also has run fine in the past 10 years, so I think that also has fine ROI. :-)
... and no, I don't sell it to Google, because I bet they would pay me NOT to do it. I have more important vision: leave a habitable planet behind us for the human civilization in the next centuries. This is what we blow up while concentrating on ROI, despite of the best effort of our famous world-savers (rich, smart but shallow-minded businessmen or dreamers). Sorry, I went too far again.
Software Architects and Enterprise Architects Group
How would you describe a well-architected system?
How would you describe a well-architected system?
Investment to me means time and resources, from all parties: architects, developers, administrators, end users, and those whom the end users provide the service to.
Return means not only the successful service, but the core innovation in the system, and the more complex understanding of the tasks personally.
Translate them to money to me means throwing away the real (and yes, quite complex) lesson for cash - even though I know that I need salary today, and that comes from selling my work. This is why I say: I don't want to make decision(!), and accept financial reasons(!) - but I don't let them poison my analysis either.
As analogy, I am a true geek, so I prefer reading Asimov instead of watching any new sci-fi "blockbuster" trash. By the way, my vision is quite precisely written in the Foundation stories.
You talk about the financial sustainability of a company with successful _products_. I talk about _technology_and_innovation_, and I see that our world badly misses that, because all our smart people dig for profit instead of looking forward.
Today we praise "startups", and seek for innovation from them. Why? Big companies do have smart people, give them lot of money, but... yepp, they work for monetary profit, financial ROI. Startups have vision, not ROI plan (listen to Guy Kawasaki), they are allowed to fail 20 times per one success. Sorry, at the edge of technology, this is how it goes, and new things only come from here. This is my place, this is how I classify a system well-architected.
The success of "innovative companies" like Google comes from that they host both approach under the same hood. They have strict business plan and work for monetary ROI in their _products_, but let their employees run their own "startups" in fixed percentage of their times forgetting even the smell of ROI, to work on technology and innovation. The company harvests the 1 percent innovation that pays back, and another 9 goes to patent stock, I presume. This seems to be the winner so far, not to mention the fame for any creative people that they are praised and payed very well for their pet projects. Smart mind farming... :-/
I do this model as a one-man show. I have worked on various fields, at several companies and in many languages, environments in the past 20 years. You can explain the lifecycle of a product to me, but the same is true for my story: I applied and refined my concepts behind all jobs that I have done (data mining, spam monitoring, national data management system, log analyzer, home automation, public touch screen terminals, ...). I can tell the motivations behind the languages, toolkits, etc. by just playing with them for some days. I have thrown away tons of code that better salesmen would make fortune on, because they were not "well-architected" enough, and he errors started poisoning dependent codes. I have lots of failures in small companies and short projects, and some success, all in longer term projects, where I had space to run my way.
This really worth 20 years, gave me joy - and yes, pays back to my companies more and more, because today I am really fast. For example, I could type in a configuration-based web GUI framework literally in weeks (because I have the underlying management framework that took another some months now). It was 1.5 years to invent the last time at another company, but that also has run fine in the past 10 years, so I think that also has fine ROI. :-)
... and no, I don't sell it to Google, because I bet they would pay me NOT to do it. I have more important vision: leave a habitable planet behind us for the human civilization in the next centuries. This is what we blow up while concentrating on ROI, despite of the best effort of our famous world-savers (rich, smart but shallow-minded businessmen or dreamers). Sorry, I went too far again.
2014. március 1., szombat
Primary objectives
LinkedIn
Software Architects and Enterprise Architects Group
How would you describe a well-architected system?
@Edward - thank you for the details. I was quite sure that behind the emphasis on ROI, you have a serious technical background which is essential to properly estimate it. I am also sure that your insights and objective analysis do help in making the long postponed hard decisions, and you can sell them to the management.
I never got close to big business like you. I am an obsessed programmer and analyst, and I have weird ideas about programming, life, money, etc. - that always stopped me in selling myself. My favorite task is (and they find me all the time) understanding new areas, refactor existing solutions, and/or build complex systems from unclear requirements. I know how huge difference can be between two systems doing the same thing: one that answers all current questions and another with open structure that allows asking and efficiently answering new ones.
I spent all my time searching for the absolute minimum code to solve the same task, at various areas (from data mining, telco, to government data management systems, etc.), in different languages. I also spend 1.5 years "at home", refining my concepts about programming. Today I am able to forget about the actual task and focus on the structure instead; I can feel when I must stop before writing codes that I will throw away in months.
I always have to face with the situation that somebody important does not like what I do - but I am open to discussions and do my best to explain my reasons. I am not a manager, I don't make business decisions and I work for the money they give me. My job is to design and present the best architecture I can, and fight for it as long as I can - and then accept their decision that also includes the business limitations.
This is why I work today for a big company as internal developer: they have more patience for a Don Quixote like me. My motto is: "I know that this is not what you asked. This is what you need, but thought it is not possible." :-)
I do my best to prove it.
@Lorand - you can do a lot things but first you need to have sponsors that belief you can help them, and profitability was the thing I used. As a result I had my sponsors and I got to do a lot of fun system initiating things; most don't get that opportunity.
I also was the CEO of 2 unfunded startups, each lasting about a year. We merged in a AI productivity focused tool that could generate the same rules in 4 different programming languages (a friend developed it) and were able to create foundation insurance (1st) and security (2nd) products in an amazingly short time. We had a lot of participants but no money to sell the products, When the effort of keeping the company going (in the government eyes) got be too much, we quit the self funding route. But I did learn a lot about AI/Expert Systems or whatever you call them.
@Edward - or accept that no one shares your faith in a single project that lasts for 20 years (literally), because that much time is required to do all the mistakes, learn all the things that are essential to make it work. So you become your own sponsor: work for lower amount of money (or just nothing, if you can afford it for a while), in an environment where you can make time for yourself to go ahead. And shamelessly fail on several projects, only for the experience. Not a ROI-friendly approach, nor a dream for wealth improvement, but what else can you do in a system where personal experience gain is simply not represented (not translated to money)?
[ My only objection to your ROI-first approach here is that we have to go this depth to reveal that you do have exceptional technical/management experience for building your ROI analysis! (sorry, I have not checked the whole conversation) This is true to you, but according to my experience, almost none of your readers, including me. ]
Then, at certain point of time, you step out and say: "you gave me a task, and I am in delay with it - but I see your whole environment, and I spent 90% of my time on solving the root cause that initiated the original request." At this point the key factor is: what can you put on the table? In my case, this is my Holy Grail, consciously tailored to the current environment's needs and resources. I hope it will be enough :-)
To the case you mentioned: source code is merely a serialized form of your concepts; if you can design the concept properly, the language is just another text template (I had a short experiment with a framework that generated half of its codebase). You must be absolutely sure what kind of code you should generate, and exactly why that part?
My favorite example are the click-and-drag GUI builders that generate code for different GUI frameworks, and they are proud of it!!! OMG...
They don't even realize that they build an object structure, then serialize it to source code, then run that source to build up the same data structure again runtime. Yeah, you can edit the code - but then how to separate the generated part from your logic? Complex questions, hard work again - on a fundamentally wrong question. They seem to forget why XUL / XAML / GWT UIBinder / .rc files in the golden ages / etc were created, and what that means. Epic failure.
Software Architects and Enterprise Architects Group
How would you describe a well-architected system?
@Edward - thank you for the details. I was quite sure that behind the emphasis on ROI, you have a serious technical background which is essential to properly estimate it. I am also sure that your insights and objective analysis do help in making the long postponed hard decisions, and you can sell them to the management.
I never got close to big business like you. I am an obsessed programmer and analyst, and I have weird ideas about programming, life, money, etc. - that always stopped me in selling myself. My favorite task is (and they find me all the time) understanding new areas, refactor existing solutions, and/or build complex systems from unclear requirements. I know how huge difference can be between two systems doing the same thing: one that answers all current questions and another with open structure that allows asking and efficiently answering new ones.
I spent all my time searching for the absolute minimum code to solve the same task, at various areas (from data mining, telco, to government data management systems, etc.), in different languages. I also spend 1.5 years "at home", refining my concepts about programming. Today I am able to forget about the actual task and focus on the structure instead; I can feel when I must stop before writing codes that I will throw away in months.
I always have to face with the situation that somebody important does not like what I do - but I am open to discussions and do my best to explain my reasons. I am not a manager, I don't make business decisions and I work for the money they give me. My job is to design and present the best architecture I can, and fight for it as long as I can - and then accept their decision that also includes the business limitations.
This is why I work today for a big company as internal developer: they have more patience for a Don Quixote like me. My motto is: "I know that this is not what you asked. This is what you need, but thought it is not possible." :-)
I do my best to prove it.
@Lorand - you can do a lot things but first you need to have sponsors that belief you can help them, and profitability was the thing I used. As a result I had my sponsors and I got to do a lot of fun system initiating things; most don't get that opportunity.
I also was the CEO of 2 unfunded startups, each lasting about a year. We merged in a AI productivity focused tool that could generate the same rules in 4 different programming languages (a friend developed it) and were able to create foundation insurance (1st) and security (2nd) products in an amazingly short time. We had a lot of participants but no money to sell the products, When the effort of keeping the company going (in the government eyes) got be too much, we quit the self funding route. But I did learn a lot about AI/Expert Systems or whatever you call them.
@Edward - or accept that no one shares your faith in a single project that lasts for 20 years (literally), because that much time is required to do all the mistakes, learn all the things that are essential to make it work. So you become your own sponsor: work for lower amount of money (or just nothing, if you can afford it for a while), in an environment where you can make time for yourself to go ahead. And shamelessly fail on several projects, only for the experience. Not a ROI-friendly approach, nor a dream for wealth improvement, but what else can you do in a system where personal experience gain is simply not represented (not translated to money)?
[ My only objection to your ROI-first approach here is that we have to go this depth to reveal that you do have exceptional technical/management experience for building your ROI analysis! (sorry, I have not checked the whole conversation) This is true to you, but according to my experience, almost none of your readers, including me. ]
Then, at certain point of time, you step out and say: "you gave me a task, and I am in delay with it - but I see your whole environment, and I spent 90% of my time on solving the root cause that initiated the original request." At this point the key factor is: what can you put on the table? In my case, this is my Holy Grail, consciously tailored to the current environment's needs and resources. I hope it will be enough :-)
To the case you mentioned: source code is merely a serialized form of your concepts; if you can design the concept properly, the language is just another text template (I had a short experiment with a framework that generated half of its codebase). You must be absolutely sure what kind of code you should generate, and exactly why that part?
My favorite example are the click-and-drag GUI builders that generate code for different GUI frameworks, and they are proud of it!!! OMG...
They don't even realize that they build an object structure, then serialize it to source code, then run that source to build up the same data structure again runtime. Yeah, you can edit the code - but then how to separate the generated part from your logic? Complex questions, hard work again - on a fundamentally wrong question. They seem to forget why XUL / XAML / GWT UIBinder / .rc files in the golden ages / etc were created, and what that means. Epic failure.
Feliratkozás:
Bejegyzések (Atom)