96

Why, as an employer, would you give up a competent, even great, developer, simply because he wants to work 3 days a week and not 5? More than one reason (all argued from the point of view of an employer): As Fred Brooks argues in the book The Mythical Man-Month, the efficiency of a team goes down as the team size grows, because the amount of communication ...


59

There are several things you can and should do to prepare for the task: Think about the problem and draw some diagrams. Make sure that you know what the problem is that you are trying to solve. Do research on what you are trying to do. The internet is a valuable source of information. I am not saying ask Stack Overflow -- I am saying do research on how ...


53

They are not supposed to be employer specific. Actually they come from the United States Bureau of Labor Statistics, which maintains a database of occupational descriptions. This database has a list of standardized job titles with fairly precise definitions for each one. In many professions, including computer programming, they have several bands based on ...


47

The greater the risks, the more you need "air cover". This is what a manager is really supposed to provide. While the team does the work, the manager is supposed to ensure that there is nothing that will keep the team from achieving team goals. Whether it's tweaking the schedule, running interference between the team and the sales staff, or simply making ...


40

Wikipedia gives a good overview of corporate titles and under the hierarchy for Information Technology companies you have the following: Chief Executive Officer Vice President Senior Project Manager / Senior Product Manager / Senior Software Architect Project Manager / Product Manager / Software Architect Project Lead / Senior Team Lead / Senior ...


37

One reason is that, as a manager, you get an ok to recruit one "head". Not fractions. One. This means, if you recruit someone part-time, you'll have to all effects one person in your team that does 3/5 of the work he/she's supposed to do or you will have to hire another person who wants to work the remaining 2/5. However you see it, this turns quickly into ...


35

Great question. There's some good answers hereabouts too, but overwhelmingly they appear to be taking the employers' perspective, so let me redress that a little. Firstly, I think it is great that you are wanting to take a better work/life balance than an ordinary 9-6 job will offer you. We who live in advanced capitalist economies often need reminding ...


29

There is no standard hierarchy of software job titles. Titles are peculiar to each company. If you have a question about a job title there's no point in asking anybody except that company.


29

Code review is a solution to a problem. Do you have a problem and will "Code Review" solve it? Are the other people checking in bad code? My guess is they are to some degree, but maybe your other coders don't think it is so bad that it is worth the time/effort to do a review. Ask your senior devs to come up with a solution to limit the amount of bad code ...


27

There is no perfect solution, but some things that might help: Break tasks down into the smallest possible units -- break them down until you have things you can do. Restate the immediate task or problem at hand to make sure you really understand it. Then do some analysis and repeat. Pick the simplest task first, even if it seems too simple just to get ...


25

We don't reference people by their characteristics as it takes all day to list them in enough detail to be unambiguous and the characteristics can change. What if they get a haircut? Instead we give them names. Also, people are better at remembering words than streams of random symbols. Disclaimer: This is going to contain some opinion and anecdotal ...


23

it is easy to hire developers This is the problem. The developers you hire simply are not motivated or don't have experience to keep the codebase in high quality. You should focus on hiring developers who take it upon themselves to keep the code quality high. And finding developers like that is extremely hard. Both because there are not many of them and ...


22

Project manager's point of view You are the single (or default) point of contact for anything related to the technical side of things. You are expected to keep the work of the other developers' moving by sheer force, leading by example, or whatever your method is. Not-lead developer's point of view You are the role model. Expect the lesser-experienced ...


22

At my company, we use a separate SVN repository for every component of the system. I can tell you that it gets extremely frustrating. Our build process has so many layers of abstraction. We do this with Java, so we have a heavy build process with javac compilation, JibX binding compilation, XML validation, etc. For your site, it may not be a big deal if ...


18

Of course you have no idea how to write a "generic error mechanism". No one knows how to write a "generic error mechanism" until some requirements are defined. It sounds like all you have is someone's notion that a "generic error mechanism" is somehow required to start this project. Personally, I would push back on this notion. Writing "generic" anything ...


17

The terms describe very similar concepts and responsibilities, and in general they are somewhat synonymous. The term "DevOps" is a relatively new one, popularized by the Devopsdays Ghent 2009 conference and subsequent Devopsdays events. It's best described in this diagram: On the other hand, Software Configuration Management is a far more established term ...


17

Someone needs to be the manager, but in your team's case, I don't think this is a full-time position. Hire another sr. dev and make one of them the manager. Ideally, the one who best fits being a manager and not necessarily the best programmer. The manager needs to have the final decision where there is no concensus, so the person should be technically ...


17

What I have done in the past is either convert the physical development machine to a VM, or if it is already a VM, retain it for future use. It's not as efficient as I'd like for disk space usage, but space is cheap. Also, this process is so much less expensive time-wise than trying to re-configure an environment in the future should the need arise.


15

Most answers I see are rationalizations for the status quo, but really, I don't think there is a good reason for this state of things. Most programmers seem to believe not having a life is part of the deal and spoil it for the rest of us. Managers are good at screwing everybody around, unions are a joke, everybody says the economy sucks, but then there's ...


15

I used to work at a company that hired good, motivated developers and kept them. But we still felt there was value in code review: it helps spread the knowledge and just because one person feels that what they've written is good code doesn't mean there isn't room for improvement. And we faced a similar problem. Coders preferred to code. To say nothing of ...


14

Personally I would not work anywhere that I didn't have the opportunity for direct client contact. Trying to resolve an issue with the requirements when you have to go through layers of PMs and BAs is painful and the message never gets through clearly. I want this access to improve the product so that it actually reflects the clients needs and not the ...


14

I've never heard of such a thing at any company that I've worked or interviewed for. Companies normally only want to pay for new features or changes that have measurable improvements for end users (like performance improvements). Refactoring code doesn't do this in a directly measurable way. What I've witnessed at companies that do understand and care ...


14

Short answer ... Start out with the repositories in your personal account. From there, if/when things grow and/or get popular with the community, move them to an organization account. GitHub Blog: Repository redirects are here! Long answer ... Let's look at some of your options: 1. Organization: For more information on GitHub Organization features, be ...


13

A Programme Manager manages a number of projects (or portfolio), each run by project managers, that help to achieve a common goal. From wikipedia: Program management or programme management is the process of managing several related projects, often with the intention of improving an organization's performance. In practice and in its aims it is often ...


12

The weird "member of technical staff" title actually has ranks in it as well (depending on company). It used to have only two ranks (mts, dmts - distinguished) and both implied you have a Ph.D (or masters with equivalent experience). There actually is a technical title committee (at least in AT&T Labs) that one has to go through to get approved to hold ...


12

The simple answer to your question is yes as other folks have indicated. A more complete but more complex answer to your question is to address: "Management acknowledge this, but budget restraints limit our ability to recruit additional members to the team" Management saying "yes we acknowledge that, we recognize that" is just "words" to make you feel ...


12

When it comes to architecture it always depends. When building a simple throw away application you document way less than when building a large service oriented architecture. When building an application in an agile organisation you document less then when building an application in a highly governed waterfall organisation. When it comes to determining what ...


12

After quite some reading and tests, I have made a basic demo C++ project demonstrating the use of CMake, CTest + boost.test, CPack and Doxygen and using more or less the organization I mentioned in my question. The project shows how to make subproject dependencies, how to compile the whole repo or only a subproject, how to package, how to test and how to ...


11

I don't know in what context it was mentioned in the course, but the bin directory is usually (almost always) where the binaries/executable files are located. It is the directory which usually doesn't go under source control, and gets rewritten every time upon each new build. I hold no sentimental value towards it.


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