Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I really don't know where else to ask. So here it goes.

I'm working at a very tiny company that makes ERP software and websites.

1 developer with + 10 years experience.
2 developers with + 3years experience.
3 developers with + 1 year experience.

That's it.
No team, no DBA, no system admin.
There is no one around here who has expertise in web development, so I happened to be in charge of web development. But I've only got 3 years experience ! as a developer !.


I know in a small company, you are asked to do lots of different things but is it too much, if I have to do sysadmin, database architecture, software design and development ? Oh plus I'm asked to do all that across different platforms.
I am currently working with JSP, ASP, MSSQL, MySQL, Oracle, Windows Server, and Linux.
In database, I do from writing queries to backup & recovery.
Server setup, system crash recovery, DB & Server migration also.
Plush HTML, Javascript and CSS :)
Number of projects that I'm in charge of : 5

I'm not an expert at all of them !
I have to search the Internet, read tutorials and ask questions in StackOverflow to get all that done !

So I ask you, is this normal ?
Is this a normal practice ?
Will I face the same situation whichever small company I go ?
I'm working in South Korea.
How is it in your country ?

P.S Thank you all for your opinion. I was going to upvote all of you because all of you helped me see it in a different way, but apparently you need 15 reputation to upvote :(

share|improve this question

closed as primarily opinion-based by Robert Harvey, gnat, MichaelT, Corbin March, Michael Kohne Sep 3 '13 at 18:48

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

34  
Consider yourself very fortunate. You have the opportunity to learn a wide variety of skills, and get paid to do so. –  Robert Harvey Sep 3 '13 at 4:59
2  
Yes, I do think in that way. I'm not particularly complaining but asking if it's a normal practice. Oh maybe I should add that to the question. –  PerfectGundam Sep 3 '13 at 5:00
    
Whether it is too much is really down to you. AS others have said in answers its not uncommon for small companies to have people double up into other roles. If you feel it is overwhelming to the extent that your work suffers for it then that is something to take up with your manager. Likewise if you do so much other stuff that you don't want to do as well as the stuff you do want to do (and were employed for) then again discuss with your manager or start looking for other roles. I personally like doing sysadmin stuff and miss it when I'm in a big company where they don't let me at servers. ;-) –  Chris Sep 3 '13 at 14:49
1  
You're not alone. I do everything (and I do mean everything) at my company as well. DBA, sysadmin, programmer, web developer, user support, networking, the works. –  mikeTheLiar Sep 3 '13 at 18:46
add comment

3 Answers

up vote 32 down vote accepted

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 ASP? Windows and Linux? SQL Server, MySQL and Oracle?? Usually, small companies will focus on one technology platform to avoid spreading themselves too thin.

If your work involved full-stack development on one platform - e.g. ASP.NET + SQL Server + Windows, or Java + Oracle + Linux - would you still feel overwhelmed?

Anyway, if you want to specialize to a greater extent, yes, you should look to larger companies. The bigger the team, the more plausible and beneficial it is to have specialists.

share|improve this answer
    
Thanks. Just to add one more thing, if I were asked to also develop and maintain ERP software in SAP PowerScript, would it be still a normal practice ? or it will be spreading too thin ? –  PerfectGundam Sep 3 '13 at 6:35
    
While @PerfectGundam hasn't explained why his employer has such a diversity of platforms; ending up with significant use of several isn't that hard if you don't have the benefit of rewriting your legacy systems when you change platforms for new development. Cases where outliers are only a small fraction of the total can happen when an occasional niche doesn't have a good option on the companies preferred platform. And if the company is developing software for third parties; creating stuff to fit the customers preferred stack can result in a huge mishmash of platforms each used once or twice. –  Dan Neely Sep 3 '13 at 18:33
    
@DanNeely - oh, I have no doubt that's exactly how it happened. There's always a risk, for a small agency-type company, of saying "yes" to anything because getting the sale is more important than little details like "do we have anyone who is actually able to do this work?" :-) –  Carson63000 Sep 4 '13 at 22:54
add comment

From experience I can tell that live as a software developer varies widely based on the size of the company you're working in.

Smaller shops tend to require more multi-tasking and taking on multiple roles, while large companies usually have very strictly described role for each person.

One extreme being a one-man-show, where you (obviously) have to do all the work, whether it fits into your strong areas or not.

The other is the big, multi-national company with several locations in your city alone: here you tend to have a precise position description which tells you exactly what you're working on.

Similarly, I assume, it also varies based on your exact area of business and geographical/cultural location.

share|improve this answer
add comment

In your enumeration of the tasks a developer has to do, you may also put:

  • Interaction design,
  • Visual design,
  • Usability,
  • Security,
  • Requirements gathering,
  • Testing and QA,
  • Deployment,
  • Maintenance,
  • Project management,
  • Team management,
  • etc.

In essence, this is the difference between a programmer and a developer.

  • The job of a programmer, no matter how skillful, is to write code, eventually thinking a bit about the different approaches (i.e. preliminary design).

  • The job of a developer is to be able to run a small or a medium-scale project, which requires a much broader (and so at the same time shallower) knowledge.

In order to overcome the fact that a single developer wouldn't be able to know as much as a single person who spent years learning only one thing, projects are done by a team. This is how projects are (or at least should be) organized. Most of the time, a small project doesn't require too much skills in any domain, while larger ones do.

  • If I screw up, as a developer, with security of an e-commerce website of a tiny company, well, it's bad, because the company may lose a few hundreds or, rarely, thousands of dollars, but not critical. If I screw up with security or a system which controls air traffic, that's really bad.
  • If the interaction design of the internal accounting software product done for a small company and used by only two accountants who work there is bad, again, this is not too harmful. If the interaction design of a new Apple product is poor, this may have important consequences on the sales and the reputation of the company.
  • etc.

This means that by working in small companies on small-scale projects, you'll often find yourself doing lots of things. Those companies just can't afford specialists in all of the hundreds of sectors related to IT, so they look for a jack of all trades instead.

Start working on large projects, and you'll see that your role will be narrower, while being deeper at the same time. Your whole work may be to write CSS code, but you'll be required to know any CSS quirk and be able to style a web application very fast, based on the work of a visual designer. You would have no excuse if you can't explain the benefits of Sass compared to LESS or if you don't know what CSS sprites are.

It's up to you to pick what you prefer.

  • There is nothing bad in being jack of all trades, especially since it allows you to be flexible enough: if there is a demand for system administrators, you have the skills. If, a few years later, nobody needs sysadmins, but now, web developers are paid well, you can apply as well.
  • There is nothing bad in focusing on a narrow field neither. If you have a deep knowledge of a field, large companies with lots of money can be interested in hiring you, because there would be few specialists of your level of skills.
share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.