If last years AAA developers attempted their unique style of software production in hollywood, or the music business they would soon find themselves looking foreward to a future of unemployment. Imagine if your favourite record company gave the go ahead and tell our artists "hey it's okay that your song doesn't have a chorus or a solo yet, we'll patch it in later", or if hollywood wanted us to start paying them a microtransaction per movie scene? Think we'd all just accept that and take it?
They'd be treated even worse if they tried pulling that for Microsoft, or the software companies of new york, who would likely kick them out before they could even begin producing their product. Yet somehow, there are thousands of fans definding these people, standing up for the companies right to ship the products out to only start resembling a final product after multiple patches several months after shipping months too early. It all started about 10 years ago, it seemed quite harmless at the time, until they kept on pushing our limits seeing just how much they could bullshit their customers until it escalated up to the point where we got stuff like ACU, watchdogs and destiny. Well, if anyone reading this has ever defended thir right to do this to us, keep in mind that these people aren't running a charity. They are paid money to do what they do, and if the way they work and spend money is such that they feel it neccessary to rip us off one DLC and microtransaction at a time to turn a profit, then that's really not our problem as gamers. Let them figure out a way to make ends meet, it's not our responsibility.
I say this so many times. Software Engineering and development is a different ballpark. A lot of people think it is just a matter of learning how to code, but in actuality it is a whole school of management tools that you have to work on. Realistically, you will only be spending 30-40% of your time doing actual programming. Now why is software a different animal? First and foremost the idea of software is abstract. Building software is representing logical ideas on bits and bytes on the CPU. This also brings me to my next point, it is extremely difficult.
History Lesson
As a developer, the only way you can make good software is if it reliable, on budget, on time and easily maintainable. One idea that was thought of was to use development cycles. This was done because software at this point was just impossible to make to satisfy these parameters(This is true even for today, this is why you have so many "scrum masters" at companies. Which in my opinion is bullshit because you create a layer between the developers and the business. http://manifesto.sof...ftsmanship.org/, this works so much better).
One of the models they came up with is,

the waterfall model. Which is basically what other cycles are based off and it served it's time but was still a **** model. This is because, by the time you enter the implementation phase, you have already encountered bugs in your design(statistically speaking) and there is no way to backtrack on your model. To solve this, we have models that spawned from the few stages. One example is the rapid prototype.

which tried to solve some of the problems of the waterfall model by giving an option to backtrack. However, it still did not offer the direction needed for some projects. Where are we now?

Agile, takes the ideas used by giving a much more free flowing movement around the model for sprints. It is a very flexible idea. It has helped a lot of projects but it is starting to become convoluted with the amount of agile supporting staff members when this could already be looked at the developer himself.
Did the Development of the Model Help the Software Industry?
Yes and no. Yes in the sense that it managed to give structure to the few cycles that we have. No in the sense that it has just made software less shitty but not perfect. Software today is getting more complex. Complex in the sense of structuring and combined utilities that go with it. An example is how a developer these days should not only know how to code, but the developer should know how to code well, design well, do version control, practice a bit of software configuration, learn how to write good tests,know the language of the client while completely developing for a domain that he or she does not know anything about. Software is one of the most difficult things to get right. Ever wondered why you trust some of the software you are using? That bank authentication application could have been written by drunk college intern, at 4:30pm on a friday.
Games actually have it much worse, they are subjected to working in different environments every release. The companies have to watch for enviromental changes on the daily. Not to mention that there is a thin line between maintainability of software, portability and how close software can run on metal. I will give you an example.

Why is java so popular? Java is popular because it can run on any machine that has a java virtual machine. Java code translates to byte code, which is then run on the machines. The power of java to do this makes it much quicker. For java to be able to do this, the bytecode acts as an abstraction. In contemporary software development, your code will probably contain a certain level of abstraction in the question to gain more polymorphism out of it.

Assembly language is faster at executing than Java. However, assembly language does not contain that layer of abstraction. You are so close to running on metal that your code will only work on that architecture.
Where does this leave the game developer?

The game developer or Game engine engineer has to balance the line between portability vs efficiency. This is the standard execution of a game or graphical application

You are working in a dangerous enviroment. You have only so little time before the frames execute and render your game world. 30 frames per second means, your game loop has run 30 times in a second in order to suit your change. This is why, when games add in too much graphical content on the screen you get framerate drops. Which brings me to a very interesting point.
https://twitter.com/...277106856370176
In the above tweet, John Carmack states that consoles run two times better than PCs with the game hardware. It makes sense, the consoles are specialized for graphical hardware and the API focuses on single specifications. Which allows the developer to focus on the single spec, thus optimize some of his code for the current machine only. The developer only has to develop for one environment, which is always beneficial. Ever wondered why some ports are so terrible?
Now a company like ubisoft, the company has to release on multiple specifications. PC(which might contain more versions), Xbox and Playstation. It is extremely difficult especially for something that runs so close to the hardware like a game. It becomes a nightmare.
HOoooooooooooooooowwwwwwwwwweeeeever

as difficult as software is, we cannot leave our gaming software at this stage. I blame this on one glaring factor. The idea of the patch has made people comfortable. Do you want to play a polished game in 2015? buy it after a few patches and you should be fine. Listen, I understand that it is extremely difficult to release a product which is 99% fleshed out and reliable. However, we are hitting close to the 40% mark here folks(that number if fake yes but my point is not). Let us rely on getting a reliable product out vs a product out first. I understand publishers are breathing down your neck and you need to get this game out on Christmas period but in some cases, it would cost you less to take care of the bugs now than later. I don't understand why fans are okay with saying "it is okay, the patch will fix it." When you buy Microsoft Word out the box, you prefer to use it ironed and fleshed out. You should only have minimal friction. Word is used most places but I rarely hear of customers complaining about the product. Here is the thing, release a product and it can contain bugs but Do not under any circumstances release a bug with mission critical levels of being defunct. Brings me to my next company.

Obsi "it is the publishers fault" dian
Listen, I loved kotor 2 as much as the next dude. I thought the character to game world interaction was top notch. The idea of using character abilities in dialogue makes me wetter than vancouver on a mid fall day. In fact, my penis is so hard it could be used as a slang term for crack back in the 90's. I adore the design decisions and I love their design philosophy but hold the **** up.
I played 3 obisidian games with three game breaking bugs. This to me is very careless development. It shows no care to the product and it shows me that the shop behaves on the idea of "just push out now and we can fix later." I am not saying anything new cause http://www.escapistm...s-a-Bug-Problemeven they have noticed that they show a lack of care for the finished product. Obsidian is an amazing company when it comes to other aspects but it is an example of what any small studio should aspire not to do when it comes to development. A bad product hurts both the publisher and the developers(I have still preordered pillars of eternity).
don't even get me started on these guys and the way they handled this.

but then again..... Software is difficult