Hot answers tagged

325

The answer is surprisingly simple: those 'other industries' do have a high failure rate. We're just comparing the wrong things. Writing software is often called 'build', and so we compare it to the manufacturing or construction phases in other industries. But if you look at it, it's not construction at all: it's design. Software designs are written in ...


239

Ed Yourdon's Death March touches upon a number of these meta type questions. In general, the software industry lacks a lot of the following, which gets in the way of large projects. Standardization and work item breakdown. This has certainly gotten better, but the design constructs still aren't there to break out a big system. In some ways, software ...


136

To point out some figures: Change of requirements after implementation started; for example when the first Airbus A380 started to be created in the factory I cannot believe that if someone wanted 200 more seats, those would be put there; but in a large software project even after the programmers started development 5 more types of users can be added. ...


116

The premise of the question is a bit flawed. Both the A380 and the Boeing 787 were delivered years late. In the case of the A380 much of the delay was caused by the French and German units of Airbus using different and slightly incompatible versions of CATIA design software. This incompatibly manifested itself as wiring harnesses that didn't quite fit the ...


80

Skyscraper guy here. Not sure if I can answer your question but I can surely shed some light into various items in the thread. Buildings do indeed occur very fast. A major constraint is locale (regulations). But in general it takes 3 to 10 years for a tall building from start to finish. I think comparing a new building with a new software project is not ...


54

First of all, your fear is very healthy, and normal. Here are my musings after about 15 years in the software industry. Here are some questions to ask yourself: Do you understand the problem? Do you know that the problem is unsolvable (within your time/budget constraints)? Do you just not know how to solve the problem? Is your client/boss asking for the ...


43

You can look at this as either a as time in limbo; or you can turn it into an opportunity to grow. The core idea of being a maintenance developer is to put yourself out of a job. Each time you have to fix something; take the time to understand the problem well enough so that your solution (which could come a few weeks after you put out the fire) means you (...


35

Most developed countries keep statistics, although they all use slightly different standards for what they measure, so it's hard to compare. For the United States, there are 1,336,300 programmers, according to the Bureau of Labor Statistics. The United Kingdom has 333,000 "software professionals," according to the Office for National Statistics. In Canada ...


34

Then how long did the design of those took? Year? Two? Ten years? The design is the most complex part of building something, the construction itself is easy. Based on this article, it is slowly being understood, that software development is mostly design process where design document is the source code itself. And the design process is totally different ...


27

I work in the financial sector and have worked for a range of banks etc... Coding styles vary considerably from place to place, some have very precise and strict rules, others have none. Coding styles have various pros and cons. The pros of a strict coding style are: Consistency, makes it easier for developers to follow each others code Coding styles ...


27

This vastly depends on what school you get a degree from. Some schools are more skills-based, teaching things that can be put on a resume to get a job. Others are more knowledge-based, focusing more on abstract topics. They both have their advantages. A degree from a more skills-based school will make you more comfortable coming into a new job, since you'...


26

I go to StackOverflow ;) But all joking aside, do not fear the unknown. Your whole career will be facing the unknown, because if you already solved it, it won't be a problem the next time.


22

What do you find is a common weakness of new hires and/or new grad students? In undergraduate students, a lack of mastery. They know a little bit about a lot of things, but in industry, that simply doesn't cut it. This lack of defined expertise is common to most undergraduate students, not just computer scientists. In grad students, a lack of real-world ...


20

As someone with a mechanical engineering background working in IT, I've often wondered about the reasons of the low success rate in IT. As others in this thread, I've also often attributed the failures to the immaturity of IT, the lack of detailed standards (yes I'm serious, have you ever checked the standard sheet of a simple bolt?) and the lack of ...


19

The stricter and longer the coding style guidelines, the less likely employees will follow them.


19

Imagine, in the middle of the design of the Airbus A380, someone piped up in a meeting and said, "Heh, could build it as a triplane?" Others joined in saying, "Yeah, yeah. A triplane. More wings are better." The next thee years is spent turning the A380 design into a triplane. At another meeting, someone says, "A triplane? That's old. We want a biplane. Just ...


16

Being a maintenance developer != being left on the bench. Maintenance dev work can be some of the most frustrating, painful and annoying work in the world as you fix the weird issues the original developer missed. It can also be some of the most rewarding, both personally and professionally, and educational work you can do. If you can take out a bug that's ...


15

It can, but likely won't lead to a problem. It's just economics. If the vast majority of people lose the ability to understand the underlying architecture, and there is still a huge NEED to understand the underlying architecture, then the ones who do will have jobs and get paid more, while those who don't will only have jobs where that is not needed (and ...


14

I've not met any entry-level person in the computer science field who had the slightest idea of how to query a database. I've not seen any business-oriented project that didn't need to do this (granted there are some, but not in the typical business environment where most graduates will get jobs).


13

I'm afraid that I disagree with your statement. Airbus and Boeing are two examples of companies that build planes. How many companies that build planes are there? Very few, if you would compare it to how many companies build software. It is equally easy to screw an airplane project as to screw a software project. If only the entry barrier was so low in the ...


10

I would like new graduates to come out with all of the following: A decent understanding of basic coding best practices. This would be covered by exposure to everything in Code Complete. Experience in using some form of source control, and an understanding of why it matters. Experience with unit testing. A decent understanding of algorithms, efficiency, ...


9

Look at from different angles I've come across this many a times, usually what happens is: You have a problem, initially you have an idea in your head how you would solve it. When it comes to actually implementing your solution, it turns out that is doesn't work (probably due to the weak model of the actual problem). After struggling to solve the ...


9

I'm going to have to go with a simple answer: I ask for help. Just like others sometimes ask me for help when they're stuck trying to find a solution for something. Edit: I should mention that I often find the solution just by describing the problem to a co-worker, or sometimes even when I start posting a question on sites like StackOverflow.


9

I think so. It's a trend that has me worried. No abstraction is perfect; if there was a perfect way to simplify any complex problem, it would replace the original very quickly. (That's happened in the past, occasionally with computers, and a lot more frequently in other fields that don't worry as much about backwards compatibility as we do, such as ...


9

Marketing Database & Upsell. I can think of no other good reason. They know how many users they sell the product to, or how many times it's been downloaded. If there's an update - well, either the program will have an update program built in, or you'll find it on their website when you get a problem. Critical Bug notification? Maybe...but to be honest, ...


9

The main issue with Standard Architectural models are they that only work on standard systems. The problem with real world enterprise environments are that they are ALWAYS different. In turn, the standards would end up being so vague that you might as well be better off without any.


9

Mercury is a souped up Prolog, but logic languages are very niche in the industry, and moreso than functional languages. Dynamic scripting languages like Python, Ruby, and PHP, and languages like Java and C# will dominate most of what employers are looking for. The landscape seems different in Europe and Australia, but only slightly. That said, there are ...


8

Don't knock it. I've done plenty of time as a maintenance programmer. If the product is interesting and the other developers any good, you might learn something. And if they're bad, you'll learn what makes code unmaintainable, and you can use that experience when you're writing your own code. And after a while there, you'll be the guy they turn to when ...



Only top voted, non community-wiki answers of a minimum length are eligible