Hot answers tagged

322

I can give you an example of a corner case that could never occur that caused a disaster. When the Ariane 4 was being developed the values from the lateral accelerometers were scaled to fit into a 16-bit signed integer and because the maximum possible output of the accelerometers, when scaled, could never exceed exceed 32767 and the minimum could never fall ...


226

an obscure case that is extremely unlikely to happen--in fact I'm not sure it is even possible to occur Not having untested behaviors in code can be very important. If a piece of code is run e.g. 50 times a second, a one in a million chance will happen approximately every 5.5 hours of runtime. (In your case, the odds seem lower.) You may talk about the ...


92

"Now orders, without discussion, have come down that everyone is to switch to Eclipse." I think that this is the real red flag. Your team is the expert on software development and the one to be affected by the decision, and yet you did not get to say a word in the discussion that resulted in this order? It sounds like over-managing by pointy-haired bosses....


84

Since it wasn't handled before, it's out of scope for your effort. You or your colleague can ask your manager if it's worth the effort to cover this case.


63

It is reasonable that when you working together on a common project, that on every workstation you have all the tools available to edit/build/debug your software, and that the core tools for doing about 90% of the development are known to everyone in the team. That goal is harder to achieve if your team is growing and everyone uses his personal favorite ...


53

With complex algorithms, it's very difficult to prove you have thought of every test case that will come up in the real world. When you intentionally leave a test case broken because it won't come up in the real world, you are potentially leaving other test cases broken that you haven't even thought of yet. The other effect that often happens is when you ...


38

This is not a technical question but a business strategy decision. You notice the suggested fix is for a very obscure case which will almost never happen. Here it makes a big difference if you are programming a toy or if you are programming say medical equipment or an armed drone. The consequences of a rare malfunction will be very different. When doing ...


35

£100/month? How much do you cost? How much is going to cost your training? If it's £100/month but you can get a .NET app up in a month, while you will need at least 3 to 6 months to get your node.js/C++ app running, go for the .NET. Seriously. Your time is way more expensive than these little £100/month. Ideally, yes, you're right in your analysis. What ...


29

When you get large enough that scaling well really matters and you have to start dealing with things like caching and database tuning, hopefully you are making enough money that you can hire somebody who specializes in performance tuning (or even better, a team of people, each specialized in a different sub-area). When a startup begins, each founder has to ...


28

When (if ever) is this a win win situation? About the only time when it would make sense is when all of the following is true: You are a co-owner with a double-digit percentage stake in the equity of the company You have other means to sustain yourself and your family for at least a couple of years You love the idea behind the start-up, and you see a clear ...


25

The choice of an obscure language would indicate uncommon technical self-confidence in a startup. A company willing to abandon common wisdom might know something about software development that most companies do not. Then again, they might just be wankers.


25

For pair programming sake, it's nice if both parties infront of the screen has the same skills when using the keyboard. It's also nice to know that, if your project has special configuration needs in the IDE, then It's configured the same way for everybody. Getting a new developer started is easier when the tools are the same for everyone. But if you ...


21

Code reviews are not purely about code correctness. In reality, that is quite far down the list of benefits, behind knowledge sharing and being a slow-but-steady process towards creating a team style/design consensus. As you are experiencing, what counts as "correct" is often debatable, and everyone has their own angle on what that is. In my experience, ...


18

It can be a big factor during development: if your platform does not support changing code in a running application, then the startup time becomes part of your feedback cycle, and there, even 30 seconds are painful and a threat to productivity. For the production environment, it really does not matter; either a little downtime is acceptable and 5 minutes ...


18

Yes, it's a bit of a red flag that management considers itself a better judge of which tools you would be more efficient with than you are.


16

The toolchain is a symptom. When a company picks Oracle, this is an indication of: Lots of money to throw around Large corporation Deeply nested organisational structure with many layers of management Company is run by 'suits': either executive types, or marketing and sales Makes large monolithic software products with gigantic codebases Formal processes ...


16

It depends on how easy it will be to convince the powers that be to throw away the live prototype. You see as soon as prototype / proof of concept, goes live, it becomes a real live system. And the "powers that be" will want you to make modifications and changes, and whilst this happens it will gain real world use, and then it is not so easy to replace. ...


15

I'd advise you to at least assert against the obscure case. That way, not only do future developers see that you actively decided against the case, but with a good failure handling, that should already be in place, this would also catch surprises. And then, make a test case that asserts that failure. This way, the behaviour is better documented and will ...


14

It's not a red flag in itself. Sometimes management need to take decisions. Any issues that require standardisation on something tend to fall into that category. I once worked at a client who had allowed standards to drift for a few years and they had 20+ different SCM tools. What started as independent choice by different development teams turned into a ...


14

Frequently it is worth moving to an open source stack, but it's more likely to be driven by a combination of factors: Cost - yes, you will save some money on licensing and hosting. But it probably isn't enough to sway the decision in most cases. If you can't afford or raise a few thousand dollars, then are you really sure you should be doing a startup ...


13

I view PG's comments more about attitude than specifics of the language. People with an internal IT mindset play it safe. They use low risk technologies,have processes to minimize risk and take the low risk strategy. They are too busy worrying about their own lunch to eat yours. People on the bleeding edge (python 2003) are ones to be worried about. ...


13

Graham means less dangerous to him as a competitor, not merely less dangerous. His point is not that Java (or C++ in 2003, or COBOL in 1980) is less dangerous, but rather that it is normal, and that there is a good probability that companies searching for such skills are merely-average competitors. But companies that are looking for strong talent in ...


13

Since you seem to be new there, there is only one thing you can do - check with the team leader (or project leader). 13 hours is a business decision; for some firms/teams, a lot; for some, nothing. It's not your decision, not yet. If the lead says "cover that case", fine; if he says "nah, screw it", fine - his decision, his responsibility. As for code ...


12

Software testing isn't a religion. It's just a very good idea. You say you don't have the manpower to write tests right now? OK, fine. 6 weeks from now, are you gonna have the manpower to find the bug that's crashing your application, which would have been found immediately if you had proper tests in place? Too much testing can slow down development. Too ...


12

If you are using maven or something similar, it shouldn't matter which IDE you are using. There might be cases where one is tied to a specific IDE like eclipse, if there are plugins you rely on. I think you should be able to choose your own IDE, the IDE you are most productive in. However, as I already stated there are cases where it makes sense to use a ...


12

Working for free is OK if the purpose is for charity. If the purpose to is to make someone else wealthy then it's never OK. If you are being paid with ownership of the company, then I don't consider that working for free. Despite the high chance you won't make any money.


12

Tools You definitely will need source control. Preferably one that includes a web interface so that every day you can start off by seeing what people have checked in recently. You will need a team space where your developers, QA, and product owners can work together to deliver a product. You will need a continuous integration server so that you're ...


11

There is always a conflict between what should be done and what we realistically have time for. Yes many startups forgo test driven development and automated testing to shave some time off to get a project up and running. The social networking sites and mobile app companies are the big bubbles now, and they are fiercely competitive. Sometimes the ...


11

I'd have the "corporate mandated" IDE installed, but would still do most of my work in whatever IDE I wanted--it's not like anybody can tell what IDE was used to edit a source file. On the IDE vs. editor front... for almost all languages, I strongly prefer an IDE (IntelliJ) because there's just so much more it can do for you than an editor can. There are ...


11

Every team I've ever been on has had a multiplicity of IDE and editors: Eclipse, Netbeans, IDEA, VIM, Emacs, Textmate, RubyMine -- it's never been an issue. Never. To me this speaks to a misunderstanding at the high levels of the organization, as to what really matters. What matters is letting good coders do what they need to do and use the tools that make ...


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