Search titles only
By:
Home
Forums
New posts
Search forums
Articles
New articles
New comments
Search articles
Pinball DB
Pinball Tables
Pinball Games
What's new
New posts
New articles
New profile posts
New article comments
Latest activity
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Menu
Log in
Register
Navigation
Install the app
Install
More options
Contact us
Close Menu
Welcome Back to Digital Pinball Fans -
please read this first
For latest updates, follow Digital Pinball Fans on
Facebook
and
Twitter
Home
Forums
Imported content
Blogs
On Pride and Programming [NP]
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="Sean DonCarlos" data-source="post: 297273" data-attributes="member: 152"><p><em>NOTE: Posts marked with [NP] (as in "Not Pinball") are posts on subjects other than pinball. I've marked them in this way so that those uninterested in such tangents can skip past them. - SDC</em></p><p></p><p>A few passing comments on software development that aren't really relevant to the main forum. Some minor drama took place when one of FarSight's developers commented on the relative civility of the forums here as opposed to the TPA Facebook page; after some further uproar (and a righteous ban of one Facebook invader), he posted this:</p><p></p><p></p><p>Very well, FarSight would prefer not be characterized as incompetent, lazy and stupid; no big surprise there. But how did they come to accumulate such a well of pathological haters on their Facebook page? And why should we, over here in our sanctuary at Pinball Arcade Fans, care? But first, the obligatory...</p><p></p><p><strong>DISCLAIMER:</strong> I am not employed by FarSight, not representing FarSight, and nothing in this post should be construed as the Official Opinion[SUP]TM[/SUP] of FarSight Studios or its development staff.</p><p></p><p>So much for all that. Moving on, being good at software programming/coding/engineering/architecture/buzzword-of-the-week involves four primary factors:</p><p></p><ul> <li data-xf-list-type="ul"><em>Knowledge</em> - This includes not only knowledge of the particular programming language(s) you're using, but also of your development environment and tools (literally, the programs you use to write programs), of design patterns and best practices, of security, etc.</li> <li data-xf-list-type="ul"><em>Creativity </em>- You are literally trying to create something out of nothing. You can create dinner by slavishly following a recipe out of a cookbook, but no one will mistake the result for the work of a great chef. It's the same with coding. You can cut-and-paste a little code from site A, from book B, from open-source app C, etc., but the result is not likely to be ideal, especially since it's unlikely A, B or C were created to deal with <em>exactly</em> the same need you have. This sort of <em>creatio ex nihilo</em>, of reaching into the darkness and magicking functioning code out of the void, is very much an art form.</li> <li data-xf-list-type="ul"><em>Innate Talent</em> - It's not polite to say so in today's egalitarian world, but not everyone can program well, just like not everyone can play baseball or soccer (pardon, <em>football</em>) well. Software development requires meticulous mental organization and powers of concentration almost unheard of in today's multitasking society. This can be learned to a certain extent, but the best programmers can actually enter a transcendental state where they are completely and totally focused on The Problem and all external stimuli are blocked. This state - which has various names, I called it "high priest mode" (because interrupting me while I was in this state brought down the same amount of wrath upon the offender as a high priest whose religious rituals have been disturbed), some others call it "wizard mode" (!) - is where all your eureka! moments happen, where your thorny problems get untangled, etc. This state is also getting harder to achieve as software developers are increasingly asked to take on non-programming functions...like participating in fan forums, for example. <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite2" alt=";)" title="Wink ;)" loading="lazy" data-shortname=";)" /></li> <li data-xf-list-type="ul"><em>Communication </em>- Due to the size of today's applications (even a relatively simple game like The Pinball Arcade - simple in the sense that's not something like Skyrim - is hundreds of thousands of lines of code), one programmer working alone is not enough. So software developers must also be able to communicate effectively with other coders and non-coders (management, marketing, sales, etc.) to be successful.</li> </ul><p>Finding this combination of four factors in a single individual is fairly uncommon. Finding this combination of factors in the co-presence of other useful traits like the ability to work to deadline, time management skills, ability to accept constructive criticism (because your code <em>will</em> have bugs, and your initial design <em>will</em> be suboptimal in at least one aspect), etc., is quite rare.</p><p></p><p>It turns out that programming effectiveness is strongly influenced by the programmer's state of mind. On some level, this is obvious: a happy, healthy developer is going to produce more and higher-quality code than one who is sick and tired. This much is true in all areas of human endeavor. But due to the intense concentration required, a programmer's effectiveness varies much more than you would expect: factors of 100 or more are not unheard of. (To use a personal example, one day I had produced approximately 8,000 lines of relatively error-free code for a project, the next day after some family drama only saw about 100 lines of vastly inferior code.) If the programmer cannot block external distractions from her mind (and now's as good a time as any to point out that not all software developers are men); if she's worried about this, that or the other; then she cannot focus, she cannot reach that transcendental state, her creativity will not kick in, and the day's output will be more or less (usually less) a waste. It may still be usable; it might even be good enough - but it will not be as good as it could have been.</p><p></p><p>So if you've gone through the trouble to assemble a team of software developers (like a certain company in southern California) and have set them to work on an ambitious project (like TPA), you will want them to be happy or at least in a neutral frame of mind as much as possible. What you do <em>not</em> want is them repeatedly running across a bunch of people dismissing their work as that of incompetent, lazy and stupid programmers, which brings us, finally, to the Facebook page.</p><p></p><p>Now, we're not sissies. Most software developers can take a certain amount of emotional punishment before it starts affecting their work, some more than others. All of us have occasionally encountered people who are dismissive of our work; most commonly in the form of a salesperson or manager who doesn't really understand that code is not a commodity good - that is, just because the team produced a piece of software in 2 weeks does not mean that all software projects or even all similar software projects can be done in 2 weeks. (The traditional rule of software estimation for the time to complete a project is to take the initial estimated time, double it, and round up to the next highest unit of time. Thus 2 weeks becomes 4 months. This is not at all as facetious as it sounds.) Or sometimes they don't appreciate that the laws of physics render their request impossible. At any rate, we don't live in a bubble, and most of us have adapted to not living in a bubble.</p><p></p><p>That being said, had I been faced with the noise storm FarSight has faced for as long as they've faced it, I would probably have made a far more "interesting" statement than Mike did, and yes, I probably would have lost my job for it, but that's not the point. One of the human needs after basics such as food, shelter, etc., have been taken care of is the need for recognition of one's worth. Self-esteem is roughly around this area, so is pride, self-worth, etc. The occasional rude or insulting comment can be shrugged off - some people are just jerks, such is life - but to have your flagship project relentlessly mocked, slandered, libeled and worse on the Internet by a bunch of people who wouldn't know what a line of code was if it knocked them arse over tit, much less actually be able to do a better job themselves, is demoralizing and degrading. Eventually this leads to (mostly subconscious) thoughts of "no one likes our project, it's going to fail, I'll be out of a job, how will I find another in today's economy?" and so forth, and this in turn eventually starts ruining the developer's concentration, leading to a loss of productivity. If this goes on long enough it can actually develop into a crisis of confidence, where the afflicted programmer literally cannot code - his mind is no longer in enough command of itself to even comprehend the tasks at hand. I've been there once - it's not pretty.</p><p></p><p>I do not mean to suggest that FarSight's development team in general, or Mike in particular, is anywhere near this point. What I do want to suggest is that these Facebook "fans" are actually hurting their own cause (assuming that they actually want a better TPA, which is highly questionable for at least some of them) by slowly eroding the mental state of the developers and wearing them down, thus making them less productive.</p><p></p><p>I'm approaching the 10,000-character limit on blog posts, which is the sign I need to stop and get some sleep, but hopefully this has given readers some insight into the mental/emotional side of software development. Feel free to ask questions and share your own experiences in the comments section.</p></blockquote><p></p>
[QUOTE="Sean DonCarlos, post: 297273, member: 152"] [I]NOTE: Posts marked with [NP] (as in "Not Pinball") are posts on subjects other than pinball. I've marked them in this way so that those uninterested in such tangents can skip past them. - SDC[/I] A few passing comments on software development that aren't really relevant to the main forum. Some minor drama took place when one of FarSight's developers commented on the relative civility of the forums here as opposed to the TPA Facebook page; after some further uproar (and a righteous ban of one Facebook invader), he posted this: Very well, FarSight would prefer not be characterized as incompetent, lazy and stupid; no big surprise there. But how did they come to accumulate such a well of pathological haters on their Facebook page? And why should we, over here in our sanctuary at Pinball Arcade Fans, care? But first, the obligatory... [B]DISCLAIMER:[/B] I am not employed by FarSight, not representing FarSight, and nothing in this post should be construed as the Official Opinion[SUP]TM[/SUP] of FarSight Studios or its development staff. So much for all that. Moving on, being good at software programming/coding/engineering/architecture/buzzword-of-the-week involves four primary factors: [LIST] [*][I]Knowledge[/I] - This includes not only knowledge of the particular programming language(s) you're using, but also of your development environment and tools (literally, the programs you use to write programs), of design patterns and best practices, of security, etc. [*][I]Creativity [/I]- You are literally trying to create something out of nothing. You can create dinner by slavishly following a recipe out of a cookbook, but no one will mistake the result for the work of a great chef. It's the same with coding. You can cut-and-paste a little code from site A, from book B, from open-source app C, etc., but the result is not likely to be ideal, especially since it's unlikely A, B or C were created to deal with [I]exactly[/I] the same need you have. This sort of [I]creatio ex nihilo[/I], of reaching into the darkness and magicking functioning code out of the void, is very much an art form. [*][I]Innate Talent[/I] - It's not polite to say so in today's egalitarian world, but not everyone can program well, just like not everyone can play baseball or soccer (pardon, [I]football[/I]) well. Software development requires meticulous mental organization and powers of concentration almost unheard of in today's multitasking society. This can be learned to a certain extent, but the best programmers can actually enter a transcendental state where they are completely and totally focused on The Problem and all external stimuli are blocked. This state - which has various names, I called it "high priest mode" (because interrupting me while I was in this state brought down the same amount of wrath upon the offender as a high priest whose religious rituals have been disturbed), some others call it "wizard mode" (!) - is where all your eureka! moments happen, where your thorny problems get untangled, etc. This state is also getting harder to achieve as software developers are increasingly asked to take on non-programming functions...like participating in fan forums, for example. ;) [*][I]Communication [/I]- Due to the size of today's applications (even a relatively simple game like The Pinball Arcade - simple in the sense that's not something like Skyrim - is hundreds of thousands of lines of code), one programmer working alone is not enough. So software developers must also be able to communicate effectively with other coders and non-coders (management, marketing, sales, etc.) to be successful. [/LIST] Finding this combination of four factors in a single individual is fairly uncommon. Finding this combination of factors in the co-presence of other useful traits like the ability to work to deadline, time management skills, ability to accept constructive criticism (because your code [I]will[/I] have bugs, and your initial design [I]will[/I] be suboptimal in at least one aspect), etc., is quite rare. It turns out that programming effectiveness is strongly influenced by the programmer's state of mind. On some level, this is obvious: a happy, healthy developer is going to produce more and higher-quality code than one who is sick and tired. This much is true in all areas of human endeavor. But due to the intense concentration required, a programmer's effectiveness varies much more than you would expect: factors of 100 or more are not unheard of. (To use a personal example, one day I had produced approximately 8,000 lines of relatively error-free code for a project, the next day after some family drama only saw about 100 lines of vastly inferior code.) If the programmer cannot block external distractions from her mind (and now's as good a time as any to point out that not all software developers are men); if she's worried about this, that or the other; then she cannot focus, she cannot reach that transcendental state, her creativity will not kick in, and the day's output will be more or less (usually less) a waste. It may still be usable; it might even be good enough - but it will not be as good as it could have been. So if you've gone through the trouble to assemble a team of software developers (like a certain company in southern California) and have set them to work on an ambitious project (like TPA), you will want them to be happy or at least in a neutral frame of mind as much as possible. What you do [I]not[/I] want is them repeatedly running across a bunch of people dismissing their work as that of incompetent, lazy and stupid programmers, which brings us, finally, to the Facebook page. Now, we're not sissies. Most software developers can take a certain amount of emotional punishment before it starts affecting their work, some more than others. All of us have occasionally encountered people who are dismissive of our work; most commonly in the form of a salesperson or manager who doesn't really understand that code is not a commodity good - that is, just because the team produced a piece of software in 2 weeks does not mean that all software projects or even all similar software projects can be done in 2 weeks. (The traditional rule of software estimation for the time to complete a project is to take the initial estimated time, double it, and round up to the next highest unit of time. Thus 2 weeks becomes 4 months. This is not at all as facetious as it sounds.) Or sometimes they don't appreciate that the laws of physics render their request impossible. At any rate, we don't live in a bubble, and most of us have adapted to not living in a bubble. That being said, had I been faced with the noise storm FarSight has faced for as long as they've faced it, I would probably have made a far more "interesting" statement than Mike did, and yes, I probably would have lost my job for it, but that's not the point. One of the human needs after basics such as food, shelter, etc., have been taken care of is the need for recognition of one's worth. Self-esteem is roughly around this area, so is pride, self-worth, etc. The occasional rude or insulting comment can be shrugged off - some people are just jerks, such is life - but to have your flagship project relentlessly mocked, slandered, libeled and worse on the Internet by a bunch of people who wouldn't know what a line of code was if it knocked them arse over tit, much less actually be able to do a better job themselves, is demoralizing and degrading. Eventually this leads to (mostly subconscious) thoughts of "no one likes our project, it's going to fail, I'll be out of a job, how will I find another in today's economy?" and so forth, and this in turn eventually starts ruining the developer's concentration, leading to a loss of productivity. If this goes on long enough it can actually develop into a crisis of confidence, where the afflicted programmer literally cannot code - his mind is no longer in enough command of itself to even comprehend the tasks at hand. I've been there once - it's not pretty. I do not mean to suggest that FarSight's development team in general, or Mike in particular, is anywhere near this point. What I do want to suggest is that these Facebook "fans" are actually hurting their own cause (assuming that they actually want a better TPA, which is highly questionable for at least some of them) by slowly eroding the mental state of the developers and wearing them down, thus making them less productive. I'm approaching the 10,000-character limit on blog posts, which is the sign I need to stop and get some sleep, but hopefully this has given readers some insight into the mental/emotional side of software development. Feel free to ask questions and share your own experiences in the comments section. [/QUOTE]
Verification
Post reply
Members online
No members online now.
Latest posts
Z
Strategies.
Latest: Zaphod77
Apr 18, 2024
WHO dunnit (1995)
Y
AtGames Legends pinball
Latest: yespage
Apr 15, 2024
Digital Pinball Cabinets
Master List of Issues: Pinball FX
Latest: Pinballwiz45b
Apr 13, 2024
Pinball FX (4)
We are back with a new site
Latest: Ian Longstaff
Apr 8, 2024
Other Pinball Games
Z
5X Jackpot build strategy (POTO)
Latest: Zaphod77
Apr 5, 2024
Phantom of the Opera (1990)
Home
Forums
Imported content
Blogs
On Pride and Programming [NP]
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.
Accept
Learn more…
Top