views:

88

answers:

2

This question is geared towards a group of newly hired developers that need to adopt into a minimal learning curve, maximum development/programming/management effort. Some of the developers have senior level experience and will be mentoring the junior developers. My question is I would like a solid set of tools that can run on any system (as they can choose what they like) but be the same for the entire group. The focus is on Mobile web (Not App) Development but are looking to venture into the Application market once the team gets up to speed with the web development.

Categories of software I need,

Web Development:

  • IDE (I think I'm set on Aptana stand alone version, unless someone sees something better)
  • Database GUI (I like DBVisualizer but I'm open to suggestions. MySQL and PostgreSQL are my options)
  • Code Repository (SVN, GIT, CVS ???)
  • Debugging tools (need server side as well as client side)
  • Frameworks (PHP, Ruby, Perl, jQuery, CSS framwork???)
  • Development Methodology (Agile, Scrum, etc...)
  • Workflow Documentation (Something like Visio but free)
  • Mobile Browser set (Firefox, Multi IE, Opera, Safari, Google Chrome) Why/Why Not???
  • Missing anything from the list???

App Development:

  • Application SDK's (iPhone,Android, Pre if it still exists)
  • Handset device
  • Anything else I might need to plan for???

For communication we are using Google Hosted Apps as well as Wave.

+1  A: 
  • Code Repository: Add Mercurial - Its the only free, distributed version control system that easily runs on windows, mac, linux, etc. SVN will be the only one of those that has a friendly interface.

  • You'll need to plan for how to make your UI cross platform compatible. As of this writing, its quite difficult to perform a write-once interface in HTML/JS. Although state-of-compatibility is getting better, I would plan to very carefully separate your UI from your business logic because I think you'll likely need to either deploy separate versions of the UI for each device or to have unified, but very simplified, UI that works on many devices (assuming a web app).

  • Plan on unit test your business code to make sure it works on all of your devices. The JS engines differ, and you need to know that early in your dev process.

  • Plan ahead as to how to handle user input. If your users have a physical keypad, for example, they'll expect to use it. You may want a very different layout for a site targeting Blackberries with trackballs, then an iPhone or Storm that uses finger taps.

  • Know ahead of time which platforms you will target, and then buy those phones. If its worth doing, its worth buying the phone. As an example, my first iPhone app talked to the database. It worked fine on the simulator but I was waiting for my developer key before I could test on the device. Once on the device, I discovered that what I thought would be a 1/2 second delay was more like a 40 second delay, which forced me to totally revamp the project.

Hope this helps.

JJ Rohrer
Thanks those are some great points to consider
Phill Pafford
+1  A: 

IDE - I think Eclipse (Aptana is a custom version of Eclipse) is a good choice for a cross platform and cross-language IDE. You could also look into NetBeans.

Database GUI - I haven't used many DB Visualizer's myself, so I'll pass on that one.

Source Control - I would go with GIT even if your developers haven't used it before. They will learn to like it quickly and the client tools have improved considerably in the last year or so. Check out Git Extensions for Windows and GitX for Mac.

Web Framework - This should be based on your team's experience and the requirements of your project. I would pick whatever your team feels the most comfortable with. Personally, I'm a fan of Ruby on Rails and ASP.Net MVC, but Asp.Net MVC is microsoft platform, and it seems like you want to stay open source.

Dev Methodology - Whatever your team feels comfortable with. I would say look into Agile and TDD (test driven development)

Workflow Documentation - Not sure about this one

Browser Set - Use them all. Test your applications in as many places as possible. For testing multiple versions of IE, I use IETester. Safari and some extensions for Firefox allow you to change your browser's user agent, which can be useful.

Adam Albrecht