Why We Build Simple Software
blog.pickcode.io
Why We Build Simple Software
1–10 of 32 posts
Re: Why We Build Simple Software
#2Back in the day, we had these things called email clients. A good example was Eudora from Qualcomm (yes, the Snapdragon company). It was simple, straightforward, and handled sending, receiving, and managing emails with aplomb -- and nothing else.
Then Microsoft came along and combined email, contacts, and calendaring in one application -- Outlook. And ate the lunch of all the non-web-based email clients out there. To this day Outlook is pretty much table stakes for working in a corporate environment, especially since all corporate IT has to do is deploy Exchange to handle all three tasks from the server side. And Eudora is literally a museum piece; the software's source was made available as a historic artifact and the trademark rights were transferred to the Computer History Museum.
"Simplicity" in software is a red herring. You need to read your market and find out what your customers actually want, what will make life easier and more convenient for your actual users. Sometimes people actually want the car that grills hamburgers, the cellphone with a built-in camera, the email client that also does contacts and calendaring.
Re: Why We Build Simple Software
#3No car is simple and certainly not hybrid cars. Just consider the electronics: think 100+ ECUs communicating using dozens of different protocols over hundreds meters of wires, and millions of lines of code running on a diverse set of processors.
Re: Why We Build Simple Software
#4Zawinski's Law: "Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can." Back in the day, we had these things called email clients. A good example was Eudora from Qualcomm (yes, the Snapdragon company). It was simple, straightforward, and handled sending, receiving, and managing emails with aplomb -- and nothing else. Then Microsoft came along an…
Then Superhuman made a tool to simply deal with email quickly and easily (using vim key bindings no less) and charges $30 a month for it. There’s still a market for simplicity if you look for it.
Re: Why We Build Simple Software
#5Thats a pretty big strawman? This 'simple' car took thousands of people and many millions or billions of direct r&d. It has many more features than what was listed and it is fundamentally a complex beast. Reliability =/= simplicity.
Whatever software product your trying to sell that was build by a team of a half-dozen and mostly used off the shelf components is not a good comparison for the complexity of a car.
Re: Why We Build Simple Software
#6That car should have been in for at least 4 oil changes (maintenance) in that mileage -- more if not using synthetic oil.
Re: Why We Build Simple Software
#7Re: Why We Build Simple Software
#8Zawinski's Law: "Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can." Back in the day, we had these things called email clients. A good example was Eudora from Qualcomm (yes, the Snapdragon company). It was simple, straightforward, and handled sending, receiving, and managing emails with aplomb -- and nothing else. Then Microsoft came along an…
> To this day Outlook is pretty much table stakes for working in a corporate environment Then Superhuman made a tool to simply deal with email quickly and easily (using vim key bindings no less) and charges $30 a month for it. There’s still a market for simplicity if you look for it.
Re: Why We Build Simple Software
#9Life is complex (and often quite complicated). Most actual solutions that people need are solving complex problems. You can't really solve complex problems with simple software, you'll just end up building a complex (and often complicated) web of simple solutions.
Our job as software engineers is to prevent the software from getting complicated, managing the complexity such that it's able to morph as the users needs change over time.
To fit the article, adding a grill to a car would be complicating the car, not making it more complex.
Re: Why We Build Simple Software
#10I get what the author is trying to say but there's a fundamental difference between "complexity" and "complicated". Life is complex (and often quite complicated). Most actual solutions that people need are solving complex problems. You can't really solve complex problems with simple software, you'll just end up building a complex (and often complicated) web of simple solutions. Our job as software engineers is to pre…
Instead of the simple-complex spectrum, I think about the big problems are usually made up of smaller problem spectrum.