Thursday, May 20, 2010

The first email post: Engineers vs. Software Developers

Working in the new company for a week and I already feel the difference of the culture between the new company and my previous one.

One interesting point I found this morning, is the difference between Engineers and Software Developers.
In my previous company, it is a semi-conductor company and most of people working there were graduated with engineering degree although most of the people are still working on software development.  While, in the new company, as most of the people here are working on software development, they have degree mostly in computer science, I guess.

People are working on software development, with different background and environment.  Here are some difference I noticed.

* Tools:
  * software developers like to use tools, all kinds of tools, for development like code analysis, for productivity like build tools, for fun like chatting,  They like to change to different tools and try new tools if possible.
  * engineers like tools as well, but mostly hardware tools, they don't want to change to different tools. If one tool works, use it forever.

* Documentation:
  * software developers created a lot of document, organized or un-organized.  That's why you need a search engine to dig out the useful information from the mammoth amount of documents. They intended to document a lot of steps and guide to share with others, as they know how hard it is to figure out those info.
  * engineers don't like too much document.  They believe the source code is the best source of information.

* Environment
  * a lot of software developers like Linux environment
  * many engineers prefer Windows, as a lot of tools are actually viable in Windows only

* Culture: geeky vs hacky
  * many difference of software developers and engineers can be deducted from the culture difference.  I would say the software developers are more geeky while engineers are most hacky. Geeky like to play around gadgets, tools, toys. Hacker like to fix things and get things done.
  * engineers are more active apparently.  They have a lot of sports activity. software developers like to stay in the cubicle and chat online and stay ..

* Philosophy:
  * For software engineers, you can always improve the software as there are always new bugs introduced.
  * For engineers, if it works, don't break it.

I am biased, as I am a software developer. :-)  But I think software developers can still learn a lot from engineers.

--
Hao Leo Chen
http://leochen.net

Wednesday, May 19, 2010

iPhone app development (2)

I have some more application development idea for iPhone platform.

1. Language learning application, especially Mandarin.
The target customers are people who are learning Chinese.

2. A social game, with everyone can place some trap, or throw bomb.

3. A drifting bottle application, where you can place throw your drifting bottle into the sea, and the server will track down where the drifting bottle goes.  You may also choose to scan and pickup other person's drifting bottle.