Friday, October 21, 2011
Help Desk Support: Outsource or keep in house?
E-mail: Outsource or keep in house?
Size
- If you have less than 50 people in your company, you should use a hosted service.
- If you have more than 250 people in your company, you should have in-house e-mail systems
- If you already have an in-house IT staff, servers at a high-quality data center, and are used to providing 24x7 services, you should probably bring the e-mail system in house
- If you have custom applications on your network that send and receive e-mail, you should probably bring the e-mail system in house
- If all your servers exist in your offices and those offices have only basic batter backup, basic access to the internet, and you do not have IT staff with e-mail experience, you should use a hosted service
Hosted Solutions
- If you have employees that are not techies (meaning that they just want Outlook to work and don’t care about anything happening in the back) then you should get a Hosted Exchange service with spam filtering and ActiveSync access for smart phones.
- If you have people who already use Google docs, like experimenting with new things, and are generally self sufficient when they have IT issues, then it generally doesn’t matter what e-mail system you use. However, Gmail seems to offer the best deal for this time of office culture.
In House Solutions
Tuesday, October 18, 2011
Things that you should insist that your programmers NEVER do
- Functional Specs are Useful: Quite a few developers hate specifications – hard to write, hard to read, hard to use, and rarely useful. For many technical specifications, these developers are extremely well justified. Joel Sploksy offers an alternate view of specifications that is far more useful. By creating a written description of what a program is supposed to do (a functional specification) instead of how a program is supposed to be built (a technical specification) you get the chance to provide useful information to your developers. Read Joel’s multi-part description how to do that, then read The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity by Alan Cooper, and start writing documents that actually help your development projects
- Internationalization from the Beginning: Over the past two decades, every business article, magazine, web site, and book has been talking about how the world is flat and every business is competing on an international playing field. So why do I keep finding software that won’t install in a Japanese-language Windows PC? Why do websites turn 日本語 into ??????? Even though you don’t see need to support international languages now, you can make sure that your developers don’t shut the door early. I recommend that you start your development effort with a requirement to support multiple languages and force them to explain why they shouldn’t. I’m sure there are legitimate reasons for English only but make them justify it.
- Real Testing Hurts: When developing on your own laptop and connecting to a server that is down the hall, you are sitting in an almost perfect environment. Don’t let your developers test in a perfect environment – you won’t learn anything. For example, if you want this new application to work over the internet, you had better test it over the worst connection you can find. As Jeff Atwood points out, performance of your application in the real world is a make-or-break moment. You should make sure your developers run things in high-latency, low-bandwidth, sub-optimal environment or you may be in for a big surprise later. The internet is not new and the internet is not an optimal network.
- ASCII Text is NOT Enough: I think all developers need to read this article from 2003 about how to handle text. Even though the internet enabled, international business era is old news, it is surprising how many different systems mange non-ASCII text. Even my iPhone 4 occasionally takes a Japanese language website and renders it as some odd collection of wingding symbols. In addition to the point about internationalization of installation, make sure that your custom development doesn't manage non-English input. After all 田中一路様 is unlikely read mail addressed to ????????
- Things Break – Handle It: When you are working with complex systems, you have many different points of failure. It is a given that during the life a particular system that some key part will fail and it is up to your developers to handle it. To quote the Netflix developers “Each system has to be able to succeed, no matter what, even all on its own. We’re designing each distributed system to expect and tolerate failure from other systems on which it depends.” That particular team took it to extremes but since they were designing a massively mission critical system, it was worth it. When starting your development project you need to explain to your developers how much robustness you need for this project. If you let the developers pick you may not be happy with the results since they are likely to look at it from the “how hard is that to program” level and not the “how important is that to the business” level.
- Size Matters in Development: Test data is more dangerous than you might think. It is common for developers to use a very small set of test data in the database and run all tests against that smaller database. However, if your final system is going to massive, multi-server, multi-site, thousands of users then you had better make sure the pre-deployment testing is performed on a larger system. Jeff Atwood has a great explanation of the risks and how to avoid them that you can probably just hand directly to your development team.
Project Management Across Time Zones
- Clarity in references: When assigning a task for “end of the day, Tuesday” make sure you explicitly say what end of who's day you mean. “Due to the telephone call with Atlanta, please send me that document before 8pm Tokyo time (1pm Paris time)” is more likely to be understood than “before lunch”. Referencing the other person’s time zone is probably best but if there are multiple locations, using UTC or GMT time is better. When using UTC / GMT time, I tend to use 24-hour / military time for additional clarity. That may just be me, though.
- Clarity with schedule constraints: If there is something that needs be done before an Asia office opens for the day, it should be made clear to people in later time zones. Especially in the IT world, people think that midnight on Sunday is an excellent time for routine maintenance and may not realize that your Asia offices is already open for business on their Monday morning. Combining this with the previous tip, “Make sure that this patch installation is complete at all sites before 23:00 UTC on Sunday, October 23rd, to avoid conflicts with the Tokyo office” would be a good way to tell team members of a schedule constraint.
- Clarity with dependencies: The time lag affects decisions as well. If an office needs to receive a decision from a manager the “early” office in order to work, the “late” office could waste a day, have people sitting idle, or miss deadlines if the manager didn’t know that people are waiting.
Even with all the challenges, you can leverage the power of time zones for a project. Having other people working while you sleep can really speed things along and reduce total durations. The key to this, like many project related efforts, depends on communications and collaboration. As long as the work is broken down to easy to manage work packages, there should be a way to hand-off task between teams. If your WBS is really detailed, the hand-off can probably happen with just simple e-mails or status reports but it is likely that some sort of hand-off meeting will be necessary. The time commitment, attendees, and frequency of the hand off meetings will vary a lot but I find that IT related projects need meetings between project managers on a daily or three-per week basis for 15 minutes over the phone at a minimum.
Global project teams can really accomplish a lot if well coordinated. Multiple time zones add complexity but by paying attention to schedule details, you can come out ahead.