Opinions

There is no design without a budget

A real conversation I was involved in: Product Manager: the system must have feature XTZ Developer: this will push the release date by at least two weeks Product Manager: I'm not discussing the schedule, the schedule is (developer manager) responsibility, the system must have feature XYZ In this particular company the "product team" is responsible for designing the product but the schedule (and cost) is the responsibility of the development division. This causes the product team to dream up a very complicated and detailed product, this also causes them to be...

The problem with javascript

It’s very easy to do simple things with JavaScript (like change this div when that link is clicked) especially with libraries like jQuery to help you, this is why in a lot of companies front end web development is handled by the most junior and unskilled developers in the company. JavaScript is actually a very capable dynamic language that borrows heavily from functional programing, add to this advanced JavaScript frameworks (like Angular) and you got yourself a very advanced and modern environment that uses all that dynamic and functional power. And with today’s “single page web apps” we...

Doing vs. Learning

There are many sites that provide great information on the internet – especially on topics like marketing, selling, SEO and other parts of running an on-line business. The better sites are actually a never ending stream if useful content – to the point it’s hard to keep up with all the new great information. As a side note, most of the better sites are not free – but they are worth every penny if you implement what you learn there. But here’s the problem, you are flooded with so many great videos, interviews, tutorials, articles and discussions...

Do you take pictures?

Do you take pictures? Of course you do, today everyone is a photographer, there’s a cameras in every cell phone and point and shoot digital cameras are cheaper and better than ever so just about everyone has a camera on him or her almost always. But the real question is do you want to take better pictures? did you ever looked at a picture you took and it looked nothing like you wanted? Do you want control how the picture looks like and not just take whatever the camera gives you? Ever wondered how professional photographers do it? ...

What's makes a good backup strategy

I’ve been thinking a lot about backup lately – and I recently even had the chance to test my backups when my wife’s laptop was stolen. So, here’s what I think are the most important attributes of a good backup system for homes and small business: A backup has to be reliable - this is obvious but it is the most important thing, a backup is worthless if you try to restore and discover your data is corrupt. A backup has to be fully automatic – unless you have someone who’s sole...

The importance of off-site backups

A few weeks ago burglars broke into my house and stole, among other things, the laptop we use to store our family photographs. That laptop had years of irreplaceable photos on it's hard disk - about 30GB of them. But off-site backup and insurance turned this tragedy into a mere inconvenience. I went and bought a new laptop, run an endless sequences of windows updates, installed the JungleDisk software and clicked the restore button - and all is well again. If you don't have automatic off site backup for all your important files stop whatever you...

How to safely upgrade critical server software

IF you manage a server - any server - it's going to have all sort of software running on it (common examples are mail servers, database servers and web applications) and software has to be updated from time to time. From my experience software that is part of "Microsoft web platform" (Windows, the .net framework and IIS plugins provided by Microsoft - not including SQL server) tend to install without problems and update using windows automatic updates without serious issues - most of the time. 3rd party software obviously ranges from completely automated upgrades to almost impossible to...

Your software architecture is not more important that producing working software

Designing software is hard, producing internal design for the software (the software “architecture”) that both supports the user requirements and makes it easier for developers to work on the software is a real challenge. There are a lot of “best practices” (I really hate that term), frameworks, libraries, software design principles and design patterns that are supposed to help with this challenge. The idea behind those is that some very smart and very experienced people already solved the problem for you, they found the correct way to structure software and indentified all the pitfalls, they then wrote some...

Looking for Stories

You probably have a story about a specific product or methodology you tried and how it succeeded or failed for you – or about a friend that is absolutely genius managing his or her time (or a complete failure at time management). Or a story about how a some time management related product saved the day or caused a complete catastrophe. I’m looking for stories about time management, time tracking or anything related to time management. If you have such a story please do send it to me, you can post it in a comment on this...

The hidden realities of business

Just listened to Startup for the rest of us episode 2 - stupid reasons to start a software company, a quote from the podcast “they don’t tell you about the stacks and mountains of paperwork that you need to deal with at the end of the year with the IRS” – so true.

My Experience with the Apple App Store - or why I won’t be writing an iPhone app any time soon

When I got my new iPhone I (obviously) started to look for apps for it. When looking for apps on the web I found a remote desktop client for the iPhone, they wanted something like $10 for it – an extremely cheap price for a sysadmin tool. I think a fair price for something like this is at least $50, if my site was down and I didn’t have a choice I would gladly pay, for $25 I would have bought it just in case – for $10 this is a no-brainer. So I opened the App...

In the future you will have to use a really bad spell checker

In the blog post titled Twitter! Curse your sudden but inevitable betrayal! Eric Sink said: Fast forward to today.  Computers, by and large, are still designed for geeks.  This is why we all buy T-shirts that say "No, I will not fix your computer".  The genius of the iPad is that it cannot get things like viruses.  It is a closed platform.  You can't put apps on it.  You can't write and distribute software for it without Apple's permission.  This is why geeks hate it and normal people will love it. He think that...

The Most Important Reason to Release Early

A lot as been said about the benefits of releasing your product as early as possible – you get feedback earlier, if the product is doomed you find out earlier and you get some cash-flow earlier. But there is one even grater advantage, especially for tiny companies – it gets the product released. Back before I released yaTimer I had 4 mostly finished product I was going to sell, I wrote a web page for yaTimer with a form that let people request access to the beta, put it on-line and ran a small AdWords campaign. Before...

Business Speed

A lot was already written about the speed advantage of small businesses, in the time it takes the big established competitor to organize a pre-meeting to set the schedule for setting the agenda for a meeting to brainstorm if farther meetings are required to decide if a new product is worth exploring the small business can get the product to market. This speed advantage is especially important because nobody really know the right thing to do, there is no way to find out how profitable a product will be or what the effect of a change to the web...

Nobody Distrusts Software More Than Software Developers

In the post Nobody Hates Software More Than Software Developers Jeff Atwood tells us that every good software developer has to hate software, and that not hating software is a sign of lack of experience. I completely disagree, good software developers love software, if you’re first instinct when you see a problem isn’t a software solution, even when a software solution is obviously inappropriate you are not a good software developer. But what is true (and I think that this is what Jeff meant in his post) is that software developers distrust software, we know how much effort...

Overdesigning your software up to the point it can’t be built

and every single dinky little class that you need to split a URL into four parts becomes an engineering project worthy of making a bridge (Joel Spolsky, StackOverflow podcast 38). Developers love to write software, but there's something some developers (and software architects) loves even more – to design software – and if you can skip designing something specific (that might actually be useful) and create some over-reaching principle for the design of every conceivable piece of software it’s even better. Now, when you leave practical considerations behind and head for the principles things tend to go bad, for an example take...

Everything your user types is important, even whitespace

A lot of software acts like it knows better than the user operating it GUI HTML editors are especially bad at this, they will happily take the user’s input and completely rewrite it into something completely different that is supposed to look the same when viewed in a browser, most of the time nobody notices because after all HTML is supposed to be viewed in browsers. But sometimes this HTML is part of a sample and I need the HTML itself to be nicely formatted in the “view source” window, sometime I have some special CSS or JavaScript...

Will URL Shortening Services Destroy the Web as We Know It?

In the blog post Url Shorteners: Destroying the Web Since 2002 Jeff Atwood complains about URL shorteners and all the evil they do. As someone who does e-mail technical support I can tell you URL shortning services are very useful (even without twitter), for example the link to download the .net framework from Microsoft is: http://www.microsoft.com/downloads/details.aspx?FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7&displaylang=en Copy-paste this into an e-mail message and this will be broken across (at least) two lines, clicking this link or easily copy-pasting it into the browser is out of the question, on the other hand this link http://go.nbdtech.com?FD95A574 will redirect you to the same location and is...

Make Time for Marketing

I’ve accidently found the post Launch a Business, Not a Side Project and I couldn’t agree more, it talks about web applications but it’s true for any business. Marketing (especially effective marketing) is difficult and it takes time and effort, usually a lot of time and effort – and it’s also the difference between the successful products and companies and those that are just going along barely breaking even (or failing entirely).

Search Engines

Every once in a while I use the term “search engines” on this blog, from this term you can assume all search engines are important, this is not true – this graph shows all visitors who arrived to this site from search engines divided by the search engine: As you can see one search engine dominates the chart to the point that all other search engines are meaningless with an unbelievable 98% of the traffic. This scares me, just one commercial company with no obligation (legal or otherwise) to me or to anyone else except its shareholders controls the amount of...

Licensing Components for a small software company

Important note:  the advice in this post is true for most small software companies, it is not true for large software companies and is especially not true in some specific markets (like computer games) . Being a developer in small software company myself I tend to read forums frequented by developers in small software companies – and it seems every week someone who is about the release the first version of his product asks about licensing components and obfuscators. A “licensing component” is a piece of software that makes sure that only someone who actually paid for the product is using it,...

Best Practices, Methodologies and Proven Methods

Joe needed to hang a picture on the wall, he searched the web for picture hanging technologies and left some messages in some forums, after reading everything he found he conducted a short evaluation of different methodologies and in the end decided to use a nail and an hammer, he drove the nail into the wall with the hammer and hang the picture on it, he congratulated himself for the successful project. Next morning it was time for Joe’s breakfast, he wanted to finish eating quickly so he decided to go with a proven technology for the eating project and reached...

The Real Cost of Free Ad-Supported Software/Services

Software is not free, making software takes time and expertise, making good software takes a lot of time and expertise. Internet servers are also not free, bandwidth cost money, computers cost money, disk drives cost money, renting space in a data center to put your server cost money. So, we established that making software and running web sites isn’t free, it’s easy to see that a more popular software or service needs more bandwidth and computing power - so the more popular your site is the more money you need to run it. Now, some sites are run by non-profit organizations or individuals,...

You Are Not Microsoft

I wanted to write this back in 2002 but I didn’t have a blog back then so the example in this post is a bit old – but the principle is still valid. Obviously, if you do work at Microsoft you don’t have to read this post. Microsoft release Windows XP with an activation mechanism, I think this was the first mass market product in years with a “phone home” anti piracy system – and most of the time it works flawlessly and when it didn’t you can always call a local phone number and get someone that speaks your language who...

3 differences between 'Small Business' and 'Enterprise'

3 differences between 'Small Business' and 'Enterprise' on the SecretGeek blog

Scott Adams on the upside of the recession

The Upside of the Recession on the Dilbert blog.

You have to be able to look at yourself in the mirror

I read and sometimes (rarely) post in the business of software forum on the Joel on Software site – and every once in a while someone asks if something he is about to do is ethical (usually it involves taking business away from a previous employer), this is my answer to all those questions. Follow your conscience and do what you think is right, you will have to live with your actions and the consequences of those actions for a very long time (hopefully). If you are asking you probably think what you are about to do is iffy at best –...

Sensible Password Policies

Let me ask you a question, I regularly use two on-line financial services – with very two different authentication systems: The first service uses a simple user name/password authentication, my login name is my e-mail address and the password never has to be changed. The second service uses a more complex authentication scheme, my user name is a random collection of letters and numbers, I have to change my password every month and I have a third identification code have to type to login. Which of those two services is more secure? I believe most people...

The importance of running your own spam filter (and other security software)

Security is a tradeoff, there is always a choice between security and usability, a good example for this is spam filtering, almost everyone gets an overwhelming amounts of e-mail spam – fortunately there are a wide range of anti-spam solutions to help you deal with this situation. For your personal e-mail you probably don’t care too much about an occasional lost e-mail and deleting spam manually is just too annoying – so you’ll probably prefer an aggressive filtering system, at least as long as it doesn’t block any of your friends. From a business perspective a lost e-mail message can cost you...

Trackbacks are Completely Broken

I turned trackbacks off on this blog today. I love the concept of trackbacks, every time someone reference a blog post the software automatically creates a link back in the post’s comments. It makes it easier to follow conversations and it’s a nice way to find more blogs on topic that interest you – it’s really a wonderful idea. So what’s the problem then? The system is based on trust, the blogging software will blindly add a trackback comment to whoever requests one – even if it’s a spammer. The moment spammers figured it out it was all over, lately the amount of trackback...

It’s Never Microsoft’s Bug

All software above some complexity threshold has bugs and that threshold is fairly low – Just about any software that does anything remotely interesting has bugs. Microsoft’s software, especially Windows and Office are insanely complex – they got so complex because they are so capable and I wouldn’t want to replace them with a simple alternative (you can read what I think about simple software here). If you write software eventually you will run into a Microsoft bug (if you’re software doesn’t run under windows than it’s a bug in the Linux kernel or Rails or a Google service you use), once...