Archive for April, 2010

Microsoft vs Apple

Tuesday, April 13th, 2010

Apple seems to be the word on everyone’s lips these days. People are talking about the iPhone, the iPad, and the macBooks. Meanwhile, Windows 7 comes in from Microsoft and all you see or hear is some weird TV ads about how Windows 7 was their idea. Apple is the new “cool” thing. There is no arguing that. But is Apple right for your business? The only arguments that I ever hear is that “I like it” and “it’s intuitive”. I happen to not agree with either of those, but I cannot let that alone drive my opinion. Let’s look at the different product lines:

Computers

Well, to start, Microsoft doesn’t make computers, but there are many others that make computers that are compatible with Windows. There are many products that range in quality, features, performance and price. You can get a decent machine for quite cheap nowadays. Apple, on the other hand, makes computers and they do a great job with them. Apple hardware is excellent. You can even run Windows on them these days. The problem is that they have NO economical options. If you want to run Apple’s OS, you have to have Apple hardware. So, if you want a good product at a high price point, go ahead, go for the Apple hardware. That being said, it is probably a bit overkill to run your business on.

Operating Systems

Microsoft is obviously well  known in the OS world with it’s Windows line. They have come a long way since the days of MS-DOS. Sure, they have made their mistakes, often in their marketing. However, everyone knows how to use Windows. The OS is intuitive and is getting better and better. In addition, you can run Windows on pretty much any hardware. As for software available for Windows, pretty much everything is available for Windows. It is the platform of choice for most developers, especially those who develop applications to help you run your business. What about Apple? Well, some say that there are no viruses and it’s hack proof. Well, that is ridiculous. OS X simply does not have a big enough market presence for hackers to care enough. People generally do not run their businesses on Macs. As for intuitiveness, I find it really awkward to use. Folders are not arranged well, the system tools are awkward, I can never find what I am looking for, and when I close my windows, my apps still run. In addition, if you want to run OS X, you are subject to purchasing Apple’s expensive hardware. What about software availability? Well, it is getting better, but it isn’t even on the same playing field as Windows. This will get better over time as apps start to move to the web and become OS independent. This, however, is still a long way off.

MP3 Players

Apple’s MP3 players rock. Microsoft’s are mediocre. However, if you want to “rent” your music from services such as Rhapsody, you have no Apple options.

Relevant Tangent – I should point out that there is a reason I am mentioning MP3 players. When employees are allowed to listen to music of their choice while they work, studies show that their performance is significantly improved. MP3 players are cheap and are much better to have around than having your employees streaming music over the internet. In addition, they will love you for it! Take a look at the investment for a second. Let’s say that you give your employees a $100 MP3 player every year and purchase a monthly Rhapsody subscription for them. That is less than $300 a year per employee, if you buy them a new MP3 player each year! Your employees will love you for it and you will get better performance from them!

Smart Phones

Let’s be honest here, the iPhone is pretty awesome and the Windows phones are… well… not as good. However, Microsoft has finally realized that they are loosing the game and they are totally redesigning their mobile OS and it looks sweet. The problem is that Microsoft is late into the game here and the iPhone is extremely popular. However, if you want to use the iPhone platform for your business, whether internally or externally, you have to write your code on a Mac and purchase a developer license.  This is why I have a Mac and am writing this post on it. If you want to do anything with the iPhone, you are stuck with Apple’s way. Oh yeah, they are also changing their rules as of OS 4. You must now code using an approved language and without the help of 3rd party APIs.

Tablets

Okay, the iPad isn’t as spectacular as some make it out to be. However, it is also not as bad as others make it out to be. Will it have business applications? Sure. Btw…. the PC world also has tablets and has for a long time and they have a lot of nice features.

Conclusion

It all comes down to one thing: total cost of ownership. Microsoft is going to win in this arena. Apple policies keep changing and they are a very exclusive company, trying to push out others with their ridiculousness. With Apple, you never know whether you will be in trouble with your current tool-set when the next revision of something comes out, which happens frequently. For example, look at what they are doing with the iPhone and development. If you are running a business, Microsoft is the way to go. They have made a killing on making things work. In addition, if something goes wrong, there are a lot more people familiar with Microsoft and you are more likely to run into someone who has had the same problem as you are having. With Apple, you never know what the future is going to hold.

Accurate versus Consistent Software Estimation

Monday, April 5th, 2010

The concept of Software Estimation has been around for quite a while as a hot topic. The reason: people stink at it! Software estimation is a really hard thing to do. Developers are generally pretty optimistic also, which does not help the situation. Most software projects are miles off their time and budget projections. You would think that people would get better at this kind of thing. The problem is, people think that adding time to the schedule at the beginning helps. Unfortunately, the problem is that people have a tendency to fill whatever time you “give” them.

So what is the solution? Well, there is no one right solution. But, to arrive at the solution, we have to look at what the problem is. First, the problem described is a problem with estimating accurately. This seems kind of an odd statement because an estimate is inherently inaccurate. If you are looking for accurate estimates, and not getting them, you need to try something different. First of all, one of the most important things to do is keep historical information. Track what original estimates were and what the actuals were. Burn-down charts are priceless. What you need to look for is consistency. The simplest solution, and a good starting place to getting better is to look at how far estimates are off of their actuals. Do you have one person who is off a lot, but is CONSISTENTLY off by a certain percentage? Have estimators that are not consistent and not accurate? Try different methods of estimation such as estimating based upon indicators (size, complexity, etc…).

The point is, if you really want USEFUL estimation, it is going to take some extra effort. Are you willing to put in the effort? Oh, and btw… if you are constantly over time and budget, publicize to your development team that you want a certain schedule X, but plan for X + Y. Figuring out what Y is can best be figured out by historical analysis of projects.