Tag Info

Hot answers tagged

54

Sysadmin. Developing software and handling the IT infrastructure are two different skillsets that look similar to an outsider. (It's all just banging on computers, right?) For a smallish company, the temptation will be very strong to make The Computer Guy responsible for all the machines in the office. If you have the skills to actually wear both hats, ...


49

Some time where there is nothing to do? How? It's impossible to be in a situation where you have nothing to do. The only case is when your project is perfect. In practice, there is no such thing as a perfect project. When you finished implementing the features, you spend time: enhancing code, adding unit tests, refactoring, thinking about how the product ...


36

How about a 100% discount? If you are making software you intend to sell, you qualify for BizSpark, which gives all your developers MSDN subscriptions. If you intend instead to offer your services, you don't qualify for BizSpark, but you still don't need to buy separate licenses for dev, staging etc. You can get an MSDN subscription, which covers one ...


35

You wear whatever hat your employer asks. That's what makes you a team player. That's what makes you a Problem Solver. People get way too caught up in the idea of being a "developer" or an "architect" or an "analyst". Screw that. You should be a problem solver. Code is just a tool in your belt. Problem Solving never goes out of style. If my employer ...


34

Do not offer to take less money. If money is the issue, they will come to you about it, don't put the idea in their heads. And you realistically can't offer to cut enough to address their concern. Their concern is that you'll suck up a bunch of time from a more experienced programmer. That person is paid more than you, and costs them even more than that. ...


32

In my experience, yes, it is perfectly normal for developers in small companies to be expected to cover a broad range of roles. It is certainly normal for a company so small that it only has three developers to not have a specialized DBA or sysadmin. However, I would find it unusual for such a small company to use such a broad range of technologies. JSP and ...


31

I had a similar team member working under me at my last position. He was a very hard worker and was great with ASP but leaving him with an open ended problem would eat hours and cause headaches. One day in a ticket I gave him I outlined every step I wanted him to do, and guess what? It worked. He did every step in order and gave me a perfect solution that ...


31

Unfortunately there is little you can do. I think you have the answers on your last paragraph. As far as making claims on your web site about other sources - put an app signature on your site, explain than some "less than desirable" sites are listing your apps and it should only be downloaded from <here> or <here>. Do not name or provide any ...


30

I think there are a few places you're wasting time. Drop the HR interview beyond just a simple first contact to setup follow-up interviews. Having HR people ask technical questions is a waste of time. For example, I had one ask me some unclear question about MVC and they couldn't clarify what was being asked. Drop the online test, especially if you're ...


29

Tester! Please send us testers straight out of tester school if need be! Without testers people expect everything to work off the bat because the programmer is the tester and they're very smart so it should work. I'm not saying dogfooding isn't a good idea. I just think testers are very important now that I'm a programmer.


26

You should be careful about becoming the go-to guy for office hardware problems. This can include PC troubleshooting, server admin, backups, and even phone system work. I made the mistake of mentioning my previous hardware experience, and eventually my hardware/troubleshooting duties severly conflicted with my programming duties.


25

A phone number and/or e-mail address. No matter what you ask him before he leaves, you will remember 10 more things to ask him as you see his car pulling out of the parking lot. Note: you are much more likely to get good information if he is leaving on good terms - try to make the transition as pleasant as possible (no matter why he is leaving).


25

Have you thought that it may not actually be him, but you? The fact that you referred to "punishing" him seriously makes me think that there's something foul in your mentoring methods. Take a step back. If this developer has a CS degree, he has already proven the fact that he possesses the ability to learn. It's your job as lead to figure out how to explain ...


24

Well, its mostly a case of the age old adage Dont optimize (for expert only) Dont optimize yet But actually I can think of three main reason to avoid unsafe code. Bugs : The critical part of your question is "if you're sure your code won't cause errors". Well, how can you be absolutely totally sure? Did you use a prover with formal method that ...


24

tl;dr Yes. Many companies produce software which requires no GUI - Drivers, hardware controllers, data storage and processing, etc. GUIs may be used to interact with non-GUI software, but the GUI part could be so simple or far removed that it makes no sense to make them part of the same package. In such cases it's unlikely that the original developer has ...


23

This is one situation where you don't want to be more efficient than you already are. There are already too many applicant's who can't pass FizzBuzz. Your current filtering process looks like it ensures developer quality. You'd end up wasting even more time down the line if you eliminated any of the steps you're taking so far.


22

Give him a checklist, e.g. null inputs inputs at extreme large end of range inputs at extreme small end of range combinations inputs violating assumed invariants (e.g. if x=y) The QA folks can help devise the checklist Give the checklist to all the developers, not just this one.


22

Short answer You should consider that it's a very risky and costly idea that may not give you as many benefits as you think it might. Long answer You should consider the following: C++ is a language that can be used at a very high level, that is cross platform (though that depends on how much you used the VC proprietary extensions) and for which many ...


21

Is it actually possible to develop software without also architecting it? Yes, and either: Your software will suck or Someone else must be performing the role of architect. In order for software development to be effective there must be an architect, and if their team is large enough to warrant developers that are not also "architecting" (or ...


21

Require him to write automated unit tests for his code. Writing unit tests forces one to think through the edge cases. Some particulars: To ensure he doesn't feel singled out, this should be instituted for your entire team. Require everyone to write automated unit tests for new code or code they modify. Require the unit test names to be descriptive as to ...


19

To be honest I think the tablet form factor would make for a very poor development environment. Screens tend to be small, keyboards are virtual (and if you're carrying a physical keyboard too then why not just carry a laptop and be done), there's no mouse (yes there's a touch screen but think about precision and movement of your hand up to the screen ...


19

Strictly speaking, software engineering is about designing software systems correctly - regardless of what platform (web, desktop, mobile, etc) they live on - how various subsystems of the solution interact with each other and external systems, etc. I'd suggest getting some experience with desktop and enterprise applications, like web applications - they ...


19

Well, this is a tongue-in-cheek answer. "Back in the day" I owned a Unix box, and it had an ordered dictionary file of English words, used for spell-checking. I made a new file by reversing all the words in the dictionary, sorting it, and then reversing them again. The result was a list of words sorted from right-to-left. So if you searched it for a word, ...


18

Developers are not the right people to write error messages. They see the application from the wrong angle. They are extremely aware of what went wrong inside the code, but are often not approaching the software from the point of view of trying to accomplish something. As a result, what's important information for the developer is not necessarily ...


18

How do I objectively determine what areas of study, general knowledge, and other skills I would have gained through a CS degree that I may or may not be lacking in now? Browse the curriculum of the CS department at UW, borrow and browse through the required reading, look at previous exams and lab exercises (homework assignments). If you have no ...


17

Software Architects who become too disconnected from the actual coding process become ineffective. They must be developers themselves. As Uncle Bob Martin once put it: Even though [the software architect] is designing the whole thing, I think it would be appropriate for him to be able to dive down into [coding] for a day or two and make sure ...


17

While there are plenty of examples of bad error messages that simply should not be, you must keep in the mind that it isn't always possible to provide the information you'd like to see. There is also the concern over exposing too much information, which may lead developers to error on the side of caution. (I promise you that pun was not intended, but I'm ...


17

Assuming the site is located in the US: Consider a "DMCA takedown notice". (yes, google the direct term) Spend some time researching the requirements, but you don't need an attorney to file the complaint. The wikipedia article is a decent start. There are sample letters that will serve your purposes. You'll start with the offending website; they'll ...


16

A programmer should not be the only tester for his own code. Developers write code with a set of assumptions. If testers have the identical set of assumptions, they will not exercise the unexpected functionality outside of those bounds, and many issues will remain undetected. Moreover, in order to move forward, devs are not highly motivated to try to ...


16

Stop separating the two - Web development is a subset of software engineering, like a specialization. And there's nothing wrong with having specializations. Do you use good software engineering practices like using version control, writing specs, code refactoring, writing unit tests wherever necessary, having a formal test phase with proper testers, etc? ...



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