Great Software Engineers Fail

No Gravatar

This is a litte unstructured rant. That just needs to come out.

I listen to some software-engineering postcasts, read some SE-blogs and generally try to get better at what I do for a living (which is developing software). But I listen to those bloggers and postcasters,  who have often developed software for two or three decades (this means 20-30 friggin’ years), and wonder if they think we all did so. No, we didn’t. And this is where they fail.

They are gurus. Nerdy heroes. They developed languages, built enterprise software, know all the technical details and some may even be able to read assembler code. They work at google, microsoft or some agile startup that will do it all right. The wiser ones tell us what the best practices are, which design patterns are more superb than others and why dynamically typed languages rule now that we’re doing test-driven development. The lesser wise ones use other buzzwords like SEO, Social, Scrum, Semantic, … S-omething. Some are talking about architectural layers, loose coupling, ORMS, SQL vs. NoSql databases, the importance of version control, team-management and the big difference between computer science and the software development craft. Dependency inversion and injection. They’re talking about a wide array of frameworks, tools, libraries and assemblies. Damn, and they still talk about command-line-tools, grep-commands and build-scripts.

But they fail to realise that the usual software-developer out there doesn’t understand what they’re talking about. I see it every day. Computer scientists that finish with a university-degree know next-to-nothing about software development. People programming everything in PHP. I mean the easy stuff and the complex stuff - and PHP wasn’t made for both. I met doctors of “buisiness informatics” with no clue about Software Development - but a good skill with word and powerpoint. Project planners who taught this at university - but fail at leading a team finishing a project in real life. I experience it in my own skills, that I may know all the ideas, but in the short time, I haven’t worked with 1% of what the gurus talk about. We didn’t get taught that at university - and if you try to teach it to yourself, you’re doomed to fail (for some time at least). Try pair programming alone. Or getting the idea behind version control - alone. Try to write structured code - if you’re the only person reading it. Try learning programming as the one guy not having programmed for 5 years besides two others who have. They won’t wait for you, and you won’t learn.

A quick overview of the Test-driven developmen...Image via Wikipedia

All just Buzzwords? Well, what about those fancy Design Patterns? Architecture? MVC? Unit-Testing? To be true, I know that the gurus are right. Many gurus also think about these issues. I work for a real guru who also understands that the fresh programmers need to learn, and he’s a good teacher and patient with us learners. And I try to get used to all the best practices, the agile development, the continuous learning, the new tools. But I think that 80% of the developers out there just want to do what they were trained to do, not knowing that at school or university, they just saw 5% of what they really need to know. And they truely have no intention to learn even more - as 8 hours of work a day certainly is enough!

But are CS-students software developers? Or do those developers come from somewhere else? India comes to my mind. But no, thats not what I meant. I believe good software developers are born from themselves - no school is gonna bring you to developing good software, the only thing that will help you is an unlimited thirst for knowledge. I heard the word “Infovore” somewhere, and thats exactly the kind of people that transcend into those good developers. Enjoying learning new stuff.

I don’t mean SuperBrains. Well, there are the few geeks that came on this world with the fun to code and which were born with a linux-kernel in mind, but please try to realise that software development tools and techniques need to be usable. And that at universities more practical work needs to be done. And people should have more basic-courses. Learn programming more. Get lessons on source control, on getting to know different IDEs. On learning using basic libraries. Get told more was object oriented means instead of giving them a definition and telling them “this is better than goto”. WTF is goto? Show them! Let them make some Basic or Pascal code. Let every wanna-be developer do a lot of projects with different focusses. And let them explain their code afterwards, so they’ll do it themselves. Instead of people from China who just earned 20 bucks.

There are only so many people speaking binary even if they’re developing software. I heard Linux has reached 1% market share. By making better GUIs. Go figure.

At the end, I want to give you the link to a really great post by one of the wiser programming guys: Confessions of a terrible programmer. You may think this is all BS. :-) See ya.

Everybody loves iPhone Bashing

No Gravatar

This is a small answer to the hate that comes over from heise.de to iPhone users.

Okay three people forwarding me this article brings it to an end. WTF. Heise always was kinda “professional”, but this officially NOT SPONSORED by Microsoft, Samsung, Nokia & Co. “objective” study really tries to tell us that we iPhone users are CRAZY as we’re taken hostage by our telephone and defend its really bad existence due to some irritational psychological damage?

Well, I’m sure I’m not the only iPhone user getting forwarded all those silly news about “iPhone Worms Ripping Apples Product Apart”, “Security Issues with jailbroken devices (and their stupid users)” or this newest headline. What’s your problem?  I’m sure you’re thinking “Oh again one of those iPhone users held hostage by its smartphone, trying to defend its weak points”. Right. Thats the point. Its not about the malicious joy of people’s envy of a phone that does, what their similarly priced smartphone with much better hardware just doesn’t do: it works, its easy to use and you don’t need days to configure it.

But back to this silly study. There is one smart thing about it: if you critisize it, they seem to be correct. Well. So smart. The following could also be found out by someone without an iPhone. I’m disqualifying 80% of their points made.

Lets look at the points this study proves its view with:

1. “The first iPhone was not a 3G phone: What do you need 3G for? You can easily use the iPhone without using a 3G network and anyway, 3G is not particularly widespread, so this is not a problem.”

Nonexistant problem. When was this study made? Three years ago? Who cares?

2. “The phone cannot send MMS: There is no need to send MMSs, hardly anybody sends MMSs.”

Nonexistant problem now. BTW, I just sent one MMS so far with my iPhone, just to try it out - guess what? The receiving nokia device (XPress 5800, a pretty new device) couldn’t display MMS.

3. “You cannot forward a SMS: This is a function that hardly anybody uses and was therefore not included in the first iPhones.”

Nonexistant problem
now. Needed to check that, as the crazy iPhone-users statements seems to be true to the bone.

4. “The phone has a poor camera: The built-in camera is perfectly adequate and the iPhone takes fantastic photos with its camera.”

Nonexistant problem. 3.2 MP is standard nowadays and in each iteration the cam gets an upgrade. Sorry for not using 10MP cams, but storage capacity scarce and the device 100€ more expensive. Oh and today we have the knowledge that MPs don’t translate into picture quality.

5. “It is not a real Smartphone, it cannot multitask: The phone has all the necessary functions and the OS is technically superior compared to other Smartphone OSs currently on the mobile market.”

This is a real limitation, but not as worse as described. The iPhone CAN do multitasking, but only some Apple services (like music, mail, timers, etc.) can do that. But technically, I’ll count this as a real point made. Even if noone ever has defined a smartphone to be a multitasking-monster. Well, Real Problem anyways.

6. “The iPhone cannot multitask, resulting in a great number of applications being unusable: The absence of multitasking is a deliberate design decision resulting in a faster UI.”

Nonexistant problem: Nothing is “unusable” because of missing multitasking. And this is technically the same point as 5.

7. “You can not change battery on the iPhone: How many customers run around with spare batteries? None or very few.”

My battery keeps up 2 days, so if I could change it, I wouldn’t do it. But this is of course a limit. If my battery gets broken, I can’t easily change it. Shame on Apple here! Real problem.

8. “Apple decides which applications you can install on the phone: This is good, because Apple thereby ensures that you do not get inferior programs on your phone.”

This is also a real limitation, but I wouldn’t say nobody mournes about this. This is in fact the most critisized part of the AppStore, and I hardly see iPhone-Fanboys defend that process. Real problem.

9. “The app store is a closed universe: Apple knows what is best for end users, which is good for the many iPhone users.”

Nonexistant problem for end-users. Besides, everyone else is copying the appstore for their own software world. It makes it easier for developers to give out their products. Oh, BTW this is the same as point 8.

10. “The phone does not support Java, so games need to be developed especially for the iPhone: Java is slow and not properly integrated with mobile phones, games for the iPhone are much better because they are directly developed for the iPhone.

Well and other Phones might not support Fortan, or another favourite language of mine. Totally nonexistant problem.

11. “The app store contains numerous small trivial commercial programs: The app store’s large selection gives users the freedom of choice and the many small programs help make the end users daily lives more fun.”

Nonexistant problem. If you don’t want it, don’t use it. Or go to the Ovi store, hahaha. You won’t find more than a handful of reaaaly bad games in there.

12. “It is difficult to use the touchscreen for fast SMS messaging: The touchscreen makes the phone easier to use and you quickly get used to it.

Nonexistant problem: since 3.0 you can type emails and SMS in landscape mode, and I’m nearly as fast on that as on a real desktop keyboard. The non-landscape-mode is not that good, but so far I didn’t see a better virtual keyboard.

13. “The iPhone is a low technology phone packaged in a sleek design: Apple has taken the combination of the design and UI to the next level, therefore the technological specifications don’t really matter.”

If you want faster hardware, go for it. As long as the hardware supports a fluently working OS, this is a nonexistant problem. Especially if you have 1Ghz and your windows mobile interface still is unresponsive.

14. “The quality of the phone is poor, calls are often interrupted and network coverage is poor: It is a good phone, these problems are due to the operators’ networks and not the phone.”

Nonexistant problem. At least I’ve never had a problem, and I doubt I got the single super-iPhone they built just for me while every other is broken.

15. “You can only purchase the iPhone from operators chosen by Apple: Apple has spent a great deal of time and energy selecting the best operators for customers.”

Real Problem: This is a real issue of course. But none that customers don’t whine about!

16. “The iPhone is targeted at a niche segment and will not be able to develop further: Apple has succeeded in designing a phone for people that appreciate design and user friendliness.”

“The iPhone is targeted at a niche segment and will not be able to develop further”? Did you read the numbers? Did you read the news? The iPhone IS 50% OF THE SMARTPHONE WORLD because it steadily develops!!111elevenone!

17. “The iPhone does not support memory cards: Iphones already offer the necessary memory people require and end users can choose between two models, one with a little memory and one with a great deal of memory.”

Well, thats Apple’s philosophy. I took the 16 GB version. But where is the difference to the many smartphones out there giving you a 8GB-memory-card and that are extendable up to 16GB? None. Well, okay, acutally if I had bought an 8GB version I couldn’t have upgraded it later on. Well. But its just stupid to count this as a problem of the device, its a problem of the user. And therefore a nonexistant problem.

18. “You can not install your own browser: The browser Apple has designed is so superior that you do not need any other browser on your phone.”

This is a real problem too. Its the same as points 8 and 9, but I’m in a good mood so this could be called another real problem.

19. “You cannot use the iPhone as a modem for your portable PC: People that have an iPhone do not need their portable when on the move.”

Nonexistant problem today. And Hello! There’s the jailbreak! And jailbreaking is easier than sticking a new battery in your phone!

20. “There is no radio in the phone: You do not need a radio in your iPhone because the iPhone supports iTunes that offers almost unlimited music.”

Nonexistant problem. I use Last.fm and there’re a lot more radioservices. Sure, they don’t use century-old technology for this, so you need to stream the stuff. Could be called a problem, but I’m not willing to count it. After all you have an integrated iPod too.

Conculsion: Again, the Apple-haters had food for their selfmade problems, but please keep away with such totally stupid studies. THAT SURELY HAS NOT BEEN SPONSORED BY (put name of big phone company in here) AND WAS MADE BY VERY SCIENTIFIC MEANS. If you see the logic in there, please drop a note. Other comments are appreciated too.

You seem to be using an unsafe, outdated browser. Click here to install the world's fastest and safest browser for free! X