Ship Software OnTime!

The blog that helps you build great software

The Anatomy of a Planning Board Task Card

with one comment

As you know, I am super excited about the new OnTime 2010 (V10) Planning Board. This new visual interface for viewing work items is an incredibly efficient way of working with, planning, tracking and modifying projects. The planning board makes it exceptionally simple to see what is going on in a project with a quick glance.

What is unique about the OnTime Planning Board in particular is the amount of information that is communicated in that quick glance. First, there is the card itself:

OnTime Planning Board Card

Each card on the planning board is intelligently designed to be clean, yet informative. You can see the assignee, the progress, the priority, the amount of work remaining, the original estimate, the release, the current status in the workflow and even the rating of each item. But even more impressive is all the actions you can take by interacting with each card:

  • Quick Edit – Want to reassign the item to someone else or a different release or change its priority? Just click the area for those fields and a quick edit window will allow you to change those items and more.
  • Log Work – If you just logged a few hours of work on an item, just click the progress bar for that item and enter the time you spent on it. Immediately, the item’s progress bar, amount worked and remaining work are updated to reflect your work.
  • Move it Along Your Process – Is the item ready to go to the next stage in your workflow? Then just drag the item and drop it in the next column and voila! All the actions associated with that workflow step will automatically get executed. Items could be reassigned, email notifications sent, fields could be changed, processes can be launched and much more all with a drag-and-a-drop.

And that’s just each card! When you look at the Planning Board itself, you then see the true potential of this incredible new feature:

From the screenshot above, you can see the workflow that we have designed (#1), the grouping of items by assignee (#2) which includes the details of how many items each person is assigned, # of hours of work done and remaining and you can quick drag-and-drop items from one workflow step to the next (#3).

It simply doesn’t get any better than this! OnTime’s planning board is the world’s most powerful project management tool in existence today. Watch this video to learn more:

Written by Hamid Shojaee

February 23, 2010 at 5:08 pm

Posted in Development

The OnTime Project Planning Board Changes Everything!

with 2 comments

Scrum Project Planning Board

If you are a project manager, scrum master or product owner, drop what you are doing now and watch the video below. The new Planning Board in OnTime 2010 (V10) changes everything you know about project management tools.

It’s a brilliant new way of managing software projects. Each new feature or defect gets an intelligently designed “Card” that is packed with the essential details of each item laid out in an amazingly spacious way. Items can then be filtered and organized in a variety of ways to help project managers and scrum master manage visualize and manage the flow of each item.

But I can’t describe how amazing this is in words. You need to first watch the video, then get your hands on the Beta.

Download OnTime 2010 (V10) Beta 2

Written by Hamid Shojaee

February 16, 2010 at 5:09 pm

Posted in Development

iPad Developers will be Sorely Disappointed at Launch

leave a comment »

When the iPhone App Store launched, iPhone developers were impressively rewarded for their hard work and determination to get their apps on the App Store on launch day. Reading through a number of the iPhone/iPod/iPad developer groups, a similar level of excitement exists for the launch of the iPad, but unfortunately, that enthusiasm is going to die down quickly with a dose of reality.

There are a number of things that made the launch of the iPhone App Store an incredible success. Fist, there were already more than 8 million iPhones in the market by the time the App Store launched and that doesn’t count the millions more iPods that were also sold prior to the App Store launch. Then, there’s the fact that very few companies had a product to launch. On launch day, there were 500 applications available for download. The excitement was so high that nearly every one of those 500 applications received an incredible amount of free press, reviews and complimentary mentions in numerous blogs and online publications. Being first to market on the launch of the App Store, which itself was a historic event, meant that the worst applications would still receive thousands of downloads – if for no other reason, just for the curiosity factor.

The Launch of the iPad and the apps designed specifically for the iPad are going to have a significantly different story. On the day the iPad App Store launches with iPad-exclusive apps, there will be exactly -0- devices sold with owners who are eager to buy apps. Even if the iPad has an exceptionally successful launch, launch-day devices will likely number in the hundreds of thousands, not millions. To make matters worse, there are now tens of thousands of iPhone developers who will have their iPad-only apps ready to go on day 0, so the iPad-exclusive App Store will be far more crowded than the launch of the original iPhone App Store and since the App Store concept is nothing new, there will be a lot less written about the launch of the iPad exclusive App Store.

So lets quickly compare the two launches:

On Launch Day Original App Store iPad App Store
# of Devices Previously Sold and Ready to Use App Store > 8 Million 0
# of Apps on the App Store Specifically for the Device ~ 500 > 10,000
(Estimate)
Sales Pace of Devices (iPhone / iPad) > 2 Million / Month ~300K/mo
(Estimate)

In the long-run, being ready for the iPad will be a great win for the developers who take the chance and get prepared. The iPad will likely have a very bright future, but by no means is the launch of the iPad App Store going to create anything near the results of the original App Store. It’s important for iPad developers to check their expectations against the realities.

Written by Hamid Shojaee

February 8, 2010 at 12:17 pm

Posted in Business

Tagged with , ,

OnTime 2010 (V10.0) Beta is Out!

leave a comment »

One of the most exciting new versions of OnTime is now in beta:

This new version adds an exceptional productivity tool called the “Planning Board” where users get to see all their defects, features, incidents or tasks in a “card” view with each card being placed in the appropriate workflow step. Each workflow step is represented by a column and users can drag-and-drop cards from one column to another to change their workflow step.

More Info and Download Page for OnTime V10 Beta

Written by Hamid Shojaee

February 3, 2010 at 10:15 am

Posted in Development

Scrum Planning Board on the iPad

with 8 comments

We thought it would be fun to imagine what the OnTime V10 Scrum Planning Board (a.k.a. task board) would look like when used through the iPad:

The touch interface of being able to drag-and-drop cards from one workflow step to another is going to absolutely rock on the iPad. I need to get my hands on one of these things asap! :-)

Written by Hamid Shojaee

February 1, 2010 at 5:06 pm

Posted in Development

Tagged with , , , ,

My Apple Tablet Predictions

with one comment

A quick list of my predictions for Apple’s event later this week:

  • Tablet device with following specs:
    • Apple will not provide CPU or RAM specs as it will consider such specs unimportant (no need to confuse consumers)
    • 10″ display with multi-touch
    • Storage will be flash-based – 64 to 128 GB
    • It will have built-in front-facing camera
    • A new Tablet OS V1.0 will be introduced which will be different front iPhone and Macs (based on OS X, much like iPhone OS)
    • It will have a store (like the App Store) which will sell content such as books, magazines and newspapers in addition to media, apps and games
    • It will be a stand-alone device (in that it will not require a sync with a PC/Mac for content like the iPhone does)
    • It will offer its own version of iLife which will include tablet editions of iTunes and iPhoto
    • 5-Hour Real-Use Battery life (although they might advertise 7 or 8)
    • Built-in Wifi (N)
    • 3G Cell Service capable for both GSM and CDMA networks, but they will not announce the carrier yet (no need until launch)
    • $699 Unsubsidized price or $399 with 3G service + $39/mo
  • The tablet will have keyboard, mouse as well as external display support, but will ship with none of them
  • They will show off the Tablet SDK and invite developers to launch apps and media content for it
  • Launch of device will be in April to June timeframe
  • No mention of anything iPhone related (no iPhone 4.0, Verizon, etc.)

And it will be an awesome device to work with OnTime V10′s new Scrum Planning Board.

What do you think?

Written by Hamid Shojaee

January 25, 2010 at 1:54 pm

Posted in Business

Tagged with , , ,

The Ultimate Scrum Planning Board

with 20 comments

What if you could have a planning board that looked as beautiful as the one below? What if it allowed you to look at your product backlog by item type (defect, feature, tasks or even help desk incidents)? What if it let you look at them by product, version or sprint? What if it let you apply any of your private or public filters? What if it let you group your results by project, assignee, priority, severity or any number of other fields (including custom fields)? What if you could have a color-coded strip along the top of each card that visually told you the priority or the status?

What if you had all of that and more and you could drag-and-drop the cards to change the workflow step of an item or the assignee or the priority?

What if you didn’t have to ask any more what ifs? ALL of that is coming in OnTime V10. Here is a sneak peek screenshot:

OnTime Scrum Planning Board (Task Board)
OnTime 2010 WEB Planning Board

Oh wait, but what if you could have it as both a web application and as a Windows WPF application:

OnTime Scrum Planning Board for Windows
OnTime 2010 WINDOWS Planning Board

Are you excited yet?

You will be! OnTime V10 Beta will be out in February. All customers will have access to the beta when its released. Be sure to purchase OnTime now prior to the price increase at the end of March. More Info >

Written by Hamid Shojaee

January 19, 2010 at 4:23 pm

Posted in Development

Scrum on Demand – Getting Started with Scrum

with 5 comments

So you are sold on Scrum, but having a hard time getting started, right? There are a lot of questions on your mind:

  • How do I convince the team to use Scrum?
  • How long should our sprints be?
  • How should we handle bugs?
  • What if our estimates are not accurate?
  • How do we handle items with dependencies across sprints?
  • What tool should we use to track everything?
  • How do I get my team trained on Scrum?

We’ll tackle each of these questions in this article.

How do I convince my team to use Scrum?

Remember that “using Scrum” mostly means the following things:

  1. Making a list of things that you need to get done for the project (product backlog)
  2. Prioritizing that list
  3. Estimating how long each item in the list will take
  4. Meeting regularly to see the status of items and make small adjustments
  5. Keep track of how much work remains until the project is finished (burndown chart)

So if you are getting any push-back from your team, management or executives on using Scrum, then don’t refer to it as Scrum. Come in with a plan that says you want to do the 5 things listed above. The resistance will immediately dissipate because there will no longer be a fear of the unknown. It’s hard to argue that “making a list of things we need to get done” is a bad thing. You’ll know it as the product backlog, but who cares if others call it that?

How long should our sprints be?

As a general rule of thumb, most dev teams have a typical “release cycle”. My standard recommendation is that make sure you fit at least 4 sprints to as many as 12 sprints into your release cycles. So if your typical release cycle is once every 6 months, it wouldn’t be a bad idea to have 6 sprints of 30-days each. On the other hand, if your release cycle is only 3 months, you still might want 6 sprints, but make them 2 weeks each.

How should we handle bugs?

There are two types of bugs. There are those that A) appear while you’re still working on a given feature PRIOR to the completion of the feature and B) bugs that are identified AFTER a feature is considered feature-complete. Bugs that are identified PRIOR to the feature being completed should be dealt with right away and the feature should never see the light of day without the bugs being addressed. However, the challenging part of bugs is how to deal with the bugs that are identified AFTER the feature is completed and released in the product.

There are two main schools of thought here. Neither is better than the other. Use the one that fits your team best. Here they are:

  1. Log bugs just like any other product backlog item and in each sprint, take a handful of bugs to address in each sprint. In this scenario, bugs and features are thrown into the same product backlog and prioritized, estimated and dealt with just like any other product backlog item.
  2. The other school of thought is to track bugs in a separate “Defects Backlog” and have dedicated sprints that focus on nothing but bugs to help everyone stay focused on creating the most stable product. The idea here is that with everyone in the team focused on fixed bugs, nobody is busy introducing new bugs by coding new features and as a result, the team will produce a more polished product.

How do we create more accurate estimates?

The first thing to remember is that nobody creates accurate estimates. The key is to create an accurate overall target release date that is manageable. So there are some best practice rules on creating better estimates. Here they are:

  1. Involve at least 2-3 of your most experience engineers on creating estimates, along with the person who will ultimately be responsible for coding it. Take the higher estimate value if the group doesn’t agree.
  2. Keep estimates at approximate values that are thrown into larger buckets. For example, your “estimate values” might be:
    • 1 Hour
    • 2 Hours
    • 4 Hours
    • 8 Hours
    • 2 Days
    • 3 Days
    • 5 Days
    • 2 Weeks
    • 3 Weeks
  3. If an item is estimated to take 10 minutes, that falls into the 1-hour bucket. If it’s estimated to take 3 or 4 hours, that probably falls into the 8 hour bucket. Being conservative with estimates will address some of the unavoidable down-time for estimations.
  4. Expect no more than 6 hours of productivity each day from each software engineer. That means the typical software engineer should plow through 30 hours of estimated work per week. Don’t expect more because they have overhead of meetings, checking email and Facebook!
  5. Lastly, be sure to leave room in your overall schedule for unforeseen items, changes that will inevitably be made and other things that you simply can not predict. Generally speaking, you’ll want about 1 week of padding for each month of development. So on a 4 month project, don’t take on more than 3 months worth of work.

How do we handle items with dependencies across sprints?

Dependent and complex items are essentially the high-risk items in software development projects. To minimize the risk, there are two things you can do:

  1. Use Proof-of-Concept prototypes as often as possible. These throw-away projects should help demonstrate the feasibility of high-risk items. These items include anything that the team does not have experience developing, which might include a new cool User Interface design, back end data storage, cool new web interface and so on.
  2. Tackle the tough tasks in your first few sprints. This will help you identify problems early. You don’t want to find out two weeks prior to your ship-date that a task that was expected to take a couple of weeks will in fact take a couple of months. Putting high-risk items first, will help you get project visibility early that will allow you to change things up to address your timeline.

What Scrum tool should we use to track everything?

It’s always surprising when I find software development teams that still use Excel or even sticky notes, paper and white boards to manage the development of a software project. After all, we are all in the business of creating software that makes some manual tasks easier. There are dozens of software applications out there that are far superior to using Excel or an offline solution.

One example of such a tool (my favorite, in fact :-), is my company’s product, Axosoft OnTime. OnTime is designed to stay out of the way of software developers so they can focus on writing code, which is what software developers do best. But it also provides project managers, scrum masters and executives with all of the project visibility tools that are instrumental in helping them make decisions about the direction of the project.

Here is how OnTime helps Scrum teams:

The Product Backlog

Scrum Product BacklogsOnTime allows for Scrum teams to manage their product backlog in either of two ways:

  • Single Backlog for Everything – The ability to see everything that relates to a given product, version or sprint in a single product backlog is a nice way to view project information. It allows teams to deal with bugs in the same way they deal with any other requirements.
  • Separate Backlogs for Defects (Bugs) and Features (Requirements) – OnTime also allows teams to separate defects, features and tasks into independent backlogs. This level of flexibility allows for each type of item to have a separate workflow, allowing defects to go through a different process than feature requests. For example, a defect might need to be verified, while a feature requests first needs approval.

Regardless of which way you decide to go with the product backlog, OnTime provides powerful backlog features that are useful for every user, including:

  • Ability to create public and private backlog filters with powerful AND/OR functionality for combining conditions
  • Ability to group backlog items to view them by assignee, status, workflow step or any other built-in or custom field
  • Ability to create saved public or private views which save everything from fields being displayed, the sizes of each column, filter conditions and more
  • Ability to set first, second and even third sort criteria so that you can view your backlog in the way that makes most sense
  • Ability to apply a change (such as status, workflow, date or other changes) to multiple items with the click of just 1 button

These features make OnTime one of the most powerful tools on the market for Scrum teams who need fine controls on their product backlog management.

Sprint Planning

Scrum Sprint PlanningSprint planning is one of the most important activities that Scrum-based teams perform. With OnTime, sprint planning takes form naturally from the product backlog. Assigning items to a sprint is as easy as dragging and dropping (in the OnTime Windows client) any number of items from your product backlog onto a planned sprint. Alternatively, you can use the multi-edit feature to assign a number of product backlog items to any given sprint.

To create the planned sprints, OnTime also makes the Scrum Master’s job easy. The OnTime Releases hierarchy breaks projects in the following way:

  • Products – You can manage any number of products in OnTime
    • Versions – Each Product can have any number of versions
      • Sprints – Each Version has numerous Sprints

OnTime also provide auto-calculators for sprint start and end dates. You simply tell the system how many days your typical sprint is and OnTime will automatically calculate the dates.

Daily Standups

All meetings are overhead. With that in mind, the goal of meetings should be to keep them as short as possible (and as Einstein might say, “but no shorter!”). OnTime facilitates meetings, such as the Scrum Daily Standup, by having all the information that’s needed to make decisions ready at hand. A typical meeting starts in a conference room with the main OnTime screen being projected on a screen with a “Daily Standup” Previously Saved View applied to the system to show only the items of focus for the given sprint.

The team has the ability to go through the items right there, make notes, change status and so on, allowing the meeting’s decisions to be captured in real-time without further work that would typically be assigned to the Scrum Master.

Tracking Progress (Burndown Charts)

OnTime Burndown ChartsIf you don’t track it, there is no way to improve it. Furthermore, project visibility is perhaps the most important factor for project success. That’s where Scrum burn-down charts play a pivotal role to making sure projects are on track and OnTime provides an extensive set of capabilities when it comes to Project Visibility and Burn-down charts, including:

  • View a mini burndown chart on the main OnTime page, giving everybody on the team the same sense of urgency to move the project in the right direction
  • Multiple burndown charts depicting one or more sprints, versions or products in a fully customizable Charts Dashboard
  • View rollups of burndown charts for multiple sprints for a given version of a product
  • Show trend (such as the burndown velocity) and project a ship-date for a given version or completion date of a sprint

The OnTime dashboard provides a number of other useful charts too, like the Treemap, or Trend Reports and even user workloads to make sure you are not overloading a particular team member with too much work.

It’s Scrum On-Demand

Scrum on DemandWith Axosoft’s OnTime Now! Scrum teams can actually signup for and start using a 30-day, 10-user trial of the OnTime system in seconds! Axosoft has done an incredible amount of work to make the OnTime Now! system exceptionally unique with the following features:

  • Choice of 6 Data Centers world-wide for maximum Hosted performance
  • Ability to use either a web client or the rich OnTime Windows client (this is unheard of in a hosted solution)
  • Ability to use OnTime Visual Studio or Eclipse plugins for developers so they never leave the IDE
  • Ability to use OnTime iPhone client, a full-featured app that provides dashboards, access to all items and much more – incredibly useful for every team member, especially the Scrum Master

The best part of the OnTime Now! hosted solution is that there is no compromise and there are no contracts. You get to use both Web, Windows, iPhone, Visual Studio and Eclipse OnTime clients and the entire thing is hosted in any of 6 different secure data centers that Axosoft manages around the globe.

Learn More About OnTime Now! >>

It’s Inside of Your IDE (Visual Studio & Eclipse)

OnTime Eclipse and Visual Studio PluginsDesigned to stay out of the way, OnTime provides the ability for developers to stay in the environment where they are most productive: The development IDE. OnTime supports both Visual Studio and Eclipse and allows developers to access the information they need right at their fingertips. The Visual Studio and Eclipse plugins allow users to:

  • Add, Edit and modify the workflow or status of items directly in the Eclipse and VS IDEs
  • Filter, sort and view items in a variety of ways
  • Add notes, attachments and work log entries for items
  • View items associated to a product, version or sprint

For developers, nothing is more productive than being able to stay in the IDE while modifying project management related tasks.

It’s Even in Your iPhone

Data was meant to be shared and viewed from everywhere. That’s why OnTime provides every team member with the ability to access their OnTime system from the convenience of their iPhone. The OnTime iPhone client provides some powerful features, including:

  • View and edit all item types (defects, features, tasks and incidents)
  • Filter and sort the product backlog(s)
  • View items by project, product, version or sprint
  • Add attachments, notes and comments to items
  • Log work done on a given item
  • View a number of built-in charts or create custom charts meeting any filter criteria

The OnTime iPhone client is intuitive and powerful. Exactly the type of features

How do I get my team trained on Scrum tools?

The last piece of the puzzle is how do you get your team trained on the tool that you select? Axosoft has a solution for that too. In fact, Axosoft offers a number of FREE Web-Based, Instructor-Lead classes on the following subjects:

  • Implementing Agile / Scrum Methods with OnTime (Class code OT-302) – This hour-long class walks you through how to setup an OnTime database to use Agile or Scrum terminology, setup product backlogs and get going with burndown charts.
  • OnTime End-User Essentials (Class Code OT-101) – This hour-long class walks typical users through the main OnTime interface covering the day-to-day operations of users, such as creating and applying filters and views, creating new items, comments, attachments and more.
  • OnTime Administrative Essentials (Class Code OT-102) – This hour-long class walks your OnTime administrator through the setup process, new user creation, customization of fields and field templates and other administrative tasks.

Did I mention these web classes are free? But they are only available on a first-come-first served basis as class attendance is limited to ensure each person has an opportunity to ask questions. Learn More >>

Written by Hamid Shojaee

October 6, 2009 at 5:00 pm

Project Management on Demand: OnTime Now!

with 3 comments

How do you make an already great project-management on demand system better than ever? How about improving the performance by as much as 500%?

Here is how we did it…

A Little Background

Ever since the introduction of OnTime V2.0, Axosoft has provided a hosted option.  This allows teams that want to get going with OnTime right away the option to do so without having to setup their own installations. We expected this option to be extremely popular, but to our surprise, over the past 6 years, relatively few of our customers have chosen to go the “Software as a Service” route.

Don’t get me wrong, “relatively few” still means hundreds of customers, but we were expecting thousands.

So a few months back, we decided to deep-dive into the numbers and figure out what was going on. What we found was that the closer customers were to Axosoft’s physical data center location, the more likely they were to choose the hosted service.

Hmmm…that seemed odd.

So we did a bit more digging with the help of some external resources to see what the OnTime Hosted user experience was like from different parts of the world.

The results were shocking!

Depending on customers’ locations and bandwidth (with respect to Axosoft’s Tempe, Arizona data center), the performance they experienced could vary by as much as 500% over optimum performance. This was especially true for our European and Australian customers. That meant that an OnTime page that might have taken 1 second to load under normal circumstances might take as much as 5 seconds to load for some customers.

Clearly unacceptable.

The problem, of course, is not an easy problem to solve. Because regardless of how well connected our data center is, we are also bound by customers’ connections — and all of the connections in between. The longer the distance and the more hops between a customer and OnTime Hosted, the worse the performance.

So we focused our entire IT and product engineering team on solving this problem.

Introducing ‘OnTime Now!’

OnTime Now! takes all of the great OnTime features, usability and innovation, and wraps it up in a hosted environment that allows customers to be up and running in no time flat. But it has a unique twist:

YOU get to choose the data center where your OnTime Now is installed from 6 world-wide locations:

OnTime Now! Data Center Locations

The OnTime Now! Data Center locations are:

  • Tempe, Arizona (this is where all OnTime hosted customers were until now)
  • San Jose, California
  • San Antonio, Texas
  • Herndon, Virgina
  • London, United Kingdom
  • Brisbane, Australia

During the OnTime Now! signup process, you now get to choose the data center that will house your hosted account. To make the decision easier, we created a speed test, allowing you to choose the best performing site:

Bandwidth Tests
Bandwidth tests from Axosoft headquarters in Scottsdale, Arizona

Once a data center is selected, OnTime Now! goes to work immediately creating the DNS entries for your chosen URL, a brand new OnTime database, your own OnTime Web Server, Customer Portal Server, Remote Server, iPhone Server, SDK and everything you need for your OnTime installation to go live. The entire process takes only seconds, and then you receive an email with instructions on how to get started. It’s pretty amazing.

So How Much Better is it?

While nearly every customer outside of Arizona will see a performance improvement, the most drastic performance increases will be seen by our East Coast (US), European and Australian customers. The chart below shows the relative performance that a typical European customer would experience. The Blue bars show the relative speed to our Tempe, Arizona data center while the Red bars show the performance those same customers can expect from our London, UK data center (shorter bars are better). As you can see, the difference is incredible:

OnTimeNowEuroPerf2
OnTime Now! Performance from European Countries to Arizona and UK Data Centers

We’ve made a ton of other improvements too, but all of them pale in comparison to this one major improvement with performance.

Existing OnTime Hosted customers can expect to be contacted soon regarding these changes so we can transition existing customers to OnTime Now! and the data centers of their choosing.

Learn More About OnTime Now! >>

Try OnTime Now! Free for 30-Days >>

Unprecedented Innovation

Our multiple data center strategy, which allows customers to choose the best performing data center is unprecedented in our industry. It required an enormous amount of effort to execute, not only in identifying and setting up servers in remote data centers across the globe, but also:

  • engineering new systems to manage these remote installations from a single location
  • allowing customers to seamlessly sign up and choose which data center to use for their OnTime installation
  • tying all this into Axosoft’s unique purchasing system (the Axosoft Online Store)
  • giving customer control of their system through the OnTime Now! Customer Dashboard

This was an awesome challenge!

Axosoft is truly blessed with some of the most incredibly talented people I know in this industry. No matter what challenges I throw at them, they seem to come up with solutions that shine.

Now, we’re back to the drawing board, coming up with the next big set of innovations that will move our industry forward. It’s fun doing unprecedented things. Stay tuned…

Written by Hamid Shojaee

September 24, 2009 at 3:29 pm

Microsoft Still Has the Best Development Platform

with 20 comments

As many readers of my blog have come to know, for the past couple of years, I’ve been extremely impressed by Apple, both in hardware and software. They simply make the best hardware on the planet and while everybody seems to think their hardware is “overpriced” nobody comes remotely close to Apple’s prices when they attempt to make similar quality products. Likewise, Apple’s software has been top notch. After being a Windows user for more than 17 years, I made the switch to OS X about 18 months ago. Since then, I’ve been floored by how smoothly OS X handles everything. Things run noticeably better than XP or Vista. Everything from simple animations, to switching between programs, to connecting a projector or 2nd monitor, to managing 20 open windows and playing audio/video files. When it comes to home-productivity software, such as Photo and Movie management, nothing comes remotely close to iLife, which is included free with every Mac.

But there is an area where Apple falls short in a significant way. With Axosoft now having experience developing for Windows, Web and iPhone, I can authoritatively say that Apple’s developer platfrom has some major shortcomings. While X-Code and Objective-C provide a reasonable environment for creating OS X and iPhone apps, Apple has virtually no tools for web development and largely relies on the open source (LAMP) world for web-based apps on its platform. That is a big surprise considering NeXT’s WebObjects was considered one of the premier web development tools when Apple purchased NeXT. In fact, back in 1996 when Apple bought NeXT, Dell operated it’s ecommerce site, Dell.com, using Apple’s WebObjects development platform, something Apple seems to have abandoned. But it gets even worse. Objective-C is an extremely verbose language which forces software developers to worry about a lot more things that modern languages, such as Java and C#, automatically take care of for developers. Memory management is tedious and frustrating, especially for those who come from a modern language background. And if you want to develop a database driven application, fo-get ’bout it! Apple’s Core Data APIs are designed for single-user local data storage. There is no Apple-based APIs for interacting with any client-server database systems like MySQL, SQL Server or Oracle.

Right now, Microsoft’s exceptional development tools is the best thing it has going for it. From top-notch integrated development environment (Visual Studio) to modern development languages (C#), to a great Web development story (ASP.NET, web services, IIS) and database development (SQL Server & APIs to access other systems). Microsoft is still the only company with the complete development package. Using Visual Studio and .NET APIs you can build desktop apps, web apps, database driven apps (regardless of which DB system you connect to) and web services. This development advantage is the biggest thing that is keeping Microsoft very relavent and in the game at a time when most of the product innovations are coming from Apple and Google.

With Windows 7 addressing much of the minor usability problems that plagued XP and Vista, Microsoft is still in a pretty good position. Unfortunately, the same can’t be said about Dell, HP or other WinPC hardware makers, as it still makes more sense to buy a Mac, even if you plan to run Windows. And while Microsoft is in a pretty good position for now, they still have to remain paranoid, because you never know if somebody in one of those super-secret rooms at 1 Infinite Loop might be working to complete Apple’s development story. After all, the iPhone caught everybody by surprise!

It’s exciting to see the tech industry dominated by 3 major players now, each giving the others lots of reasons to stay on their toes. If it wasn’t for OS X, we’d all be stuck with Vista for another 5 years.

Written by Hamid Shojaee

June 25, 2009 at 10:49 am

Posted in Development, Tools