Great Software Engineers Fail

4. Februar 2010 (5 days ago)

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.

Podcasts I listen to

No Gravatar

Hi people. Just a small notion: I won’t blog a lot as long as I’m employed, so if you wanna keep informed with what happens here, use the RSS feed with a RSS Reader.

Since I’m going to work by bike and need between 15-20 minutes, I begun listening to podcasts on the way. I like tech stuff and software development stuff - so if you like that I’ll give you some hints here. The podcasts I listen to usually go between 1 and 2 hours.

Software Engineering Radio | The Podcast for Professional Software Developers: A nice english podcast (from the accent I think everyone can guess that these guys are germans after all) about software engineering in general. Mostly interviews, nicely prepared, no queer stuff, interesting interviewees. My favourite podcast at the moment. Gets updated all two weeks.

Z! - Zeitgeist, Entwicklung, Technik - der Technik Podcast: A german podcast from two guys about tech-news that I like a lot - updated about every two weeks. Decent and well structured usually. I prefer this one to the next…

Bits und so: … which is another german podcast about techie news. Nevertheless I listen to both of these, to keep myself informed and listen to different views on the things that go on in our binary world. This podcasts most of the time sports about 4 people, so even if they’re pretty good organised sometimes it’s quite a mess. Another negative factor is a lot of commercial stuff in there and a focus on the Apple side of software - but its entertaining and the “picks” where tools get recommended is nice.

.NET Rocks!: As fresh .NET newbie I tried out this english podcast and was pleasantly surprised with its quality. Its fun, updated once to twice a week and usually sports a lot of .NET - tech and interviews with .NETters.

Die Drei Vogonen: I only tried this german podcast once so far, so this is more of a honorable mention. When I looked on the duration of over 6 hours, I was appalled a bit, but took the test nevertheless. First, it was only 3 hours long, then the whole show began anew - to technical issues on this one. Then the guys were more relaxed, also talking about personal stuff like where they went for vacation … and it was also pretty unorganised, despite a well structured layout with picks (same as in Bitsundso), short news (that are too short compared to some beekeeping-hobby-tales) and “deep thoughts” where a certain topic gets highlighted (but in the case of GPG the speakers just didn’t have a clue what they were talking about). So preparation minus, organisation minus, nice ambience plus. As time is limited (in fact the most limited resource in our short lives), I’ll ignore this one till the others have no more stuff for me.

I also tried the chaosradio, but I didn’t like the style and attitude of this one. Oh, and I need to try out TentacleprOn by tante soon.

iPad - Better wait till iPhone OS 4.0 is here

1. Februar 2010 (2 weeks ago)

No Gravatar

Just read through some articles on the iPad, Apples new touch-tablet-device. These are my thoughts.

CON: I don’t want Apple’s iPad for the following reasons:

- I got a laptop, an iPhone and an e-book reader.

- The diplay is not e-ink - reading books on it therefore just doesn’t do it.

- It doesn’t fit in my pocket. Its not a phone nor a MP3-device.

- It uses the iPhone’s OS. But when I use a computer, I want multitasking. And I won’t want to have no mouse.

PRO:

- It has a decent resolution for games. The iPod touch / iPhone is already very sucessful, but it has enough space to make complex input fields possible. The iPad can do that. It will be a game machine, I hereby predict.

- It has the “I could buy it my mother, and she’d use a computer for the first time”-effect. It will be a great gift. This is maybe the most impressive factor.

- The programs Apple delivers with it are touch-optimized. But that won’t mean they’re better.

Summary:

Who needs an iPod touch that won’t fit into your pocket? Who needs a touch laptop without multitasking? Nuff said, lets wait for the iPhone OS 4 and what it brings to the iPad, because after all they’re running a standard iPhone OS without iPad optimizations. I guess there will be more usecases after the update, but at the time being I won’t buy one even if the price was 100$. Well, maybe as a present for my mom. Here are some more interesting links by Zemanta …

Everybody loves iPhone Bashing

17. Dezember 2009

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.

Windows 7

25. November 2009

No Gravatar

I’m using Windows 7 for about a month now and would like to give you an impression of how it feels to me.

Windows 7 is Microsoft’s new weapon of choice. They went back from implementing in C# (–> Vista) to pure old C, as the performance losses of this political descision were accepted with the thought that “hardware becomes faster anyways”. They didn’t think about smartphones and netbooks back then. And got hit by really bad sales. Well, I’m using this platform for about one month now, therefore I thought I should share my experiences with you.

windows 7 in VirtualBox on windows xpImage by nick see via Flickr

Speed: Its not as fast as XP, but MUCH faster than Vista. The boot process is faster, though a bug slows it down for my machine at the moment. Glad you can hibernate. You should.

Its New!: It looks shinyer than Vista. Well, its REALLY shiny. It has all the drivers. If it hasn’t got the drivers you need, you usually get an URL where you’ll find it. But a system thats new also has some few bugs. But the approximately 50 updates I got so far made everything run very stable. Atm my boot process is very slow due to a bug, and sometimes I don’t have the “txt-file” in the “create new”-context-menu, but thats about it. And as its new, it also supports features that you won’t use now, but that you may want to use in the future, such as multitouch. Homegroups make easier network-sharing possible, even if it won’t help much till other devices use the feature.

It has a good search: As I didn’t use Vista, I’m not sure if Vistas search features were good, but 7’s search is really nice and was officially stolen adaped from OSX‘es spotlight. Just type and you’ll have what you were looking for really fast. If you need something from a not-indexed location, you can declare the location as indexed and will find everything there faster next time.

Taskbar: The taskbar is now merged with the quick launch-bar. This means, you can have quick-launch-links and “open-programs” in the same bar. Well this wouldn’t be a good thing, but if you have a quick launch-program open, you just have a rectangle drawn around it. This also prevents opening programs that are already open accidentally. While you hover over open program-rectangles, you get a small preview of the windows. Shiny. O, besides, the tray: You can define which tray-icon-programs may bug you with annoying messages, and which may not. That a nice feature.

Good feeling: I especially like the gesture-stuff you can do with open windows. Especially dragging a window to the upper border of the screen to maximize it and being able to un-maximize it by dragging the window away from there is a feature I use everyday without even thinking about maximization anymore. I don’t use the “shake-window-to-minimize-all-others” and only seldomly find a use for the drag of a window to the left or right border of the screen, which makes it maximize to that half of the screen. That might be a usable feature when you don’t have two monitors, but you can’t use it on the left side of the right monitor for example - which should be fixed.

Good overview: The system-properties are pretty cleaned up and you can find everything pretty fast. Smart guesses help you finding something you might have looked for that is related to the settings you’re just seeing. Hovering taskbar items gives previews of the respective window. If you have place at the right from the windows explorer, content of chosen files gets previewed (as long as its text, pictures or microsoft-stuff like wordfiles). All pictures and music get shown up in virtual folders called libraries. The desktop widgets now can be dragged around on the desktop, as I have found out just today, when I firstly used a yellow sticky note as ToDo-list. Or am I mistaken and this is an office 2007-feature? Well, perhaps my overview here is blurred.

All in all, Windows 7 doesn’t make me freak out. Its nice, futuristic, and has got a lot of nice new stuff. Thinking about what I don’t like I only can mention that I like to define myself, which are my “my pictures” folders and such, but I don’t have any really negative points to say. Well. Make it cheaper, but I guess that doesn’t count. That said, I would definitely advise EVERYONE running Vista to upgrade. XP users who like their interface don’t need to switch by all means, but eventually, XP will be outdated some time, so wrap you head around something new. Something shiny.

What should a good ToDo Tool do?

24. November 2009

No Gravatar

About a software - and what you would need it to do so you think it would be useful for you

After trying out many different ToDo tools, I found that none of them makes using these tools fun. I don’t have a mac, otherwise I would certainly use something like “Things“, as the introduction movies look pretty nice and simplicity defines the software.

Nothing on the PC? Well, not entirely: we have A LOT of REALLY BAD solutions for Windows. Firstly, Outlook. This one is too simple, and office is high priced. You cannot organize ToDos with Outlook. Then an unlimited number of applications that fill your screen and give you 1 million buttons. Require about 10 hours to use first time. Missing a good PC-ToDo-tool, I looked for web applications. Toodledo is a nice service, but the interface just sucks. And you won’t use a bad interface anymore, as we’re living in modern times where usability engineeriing is reality … sometimes. Additionally, the web-software needs me to keep an eye on the browser everytime, which I just don’t like. If I want to get things done, I shouldn’t need the browser for that as we all know where that leads (youtube).

Therefore, I only depend on the iPhone-”Todo”-app, the only one thats pretty much usable. Sadly, I don’t have a 3GS, and the 3G needs about 5-8 seconds till I can see the screen and the app is started, so thats not perfect too. I often let this app run at work, but seeing the screen still takes 3 seconds.

So, what would you do? Usually, if you want a certain software-tool that exactly fits your needs, you just try out some, and after you didn’t find what you were looking for, you just use the next best thing OR just decide to throw away the idea completely. Well, that is, if you’re not programming software. So I decided to write down some requirements and asked at Abelssoft (the company I work at) if we could do something like this. Well, we could try :-)

So I’m asking you: What is the most important requirement, a todo-tool should fullfill, so that it would help YOU? What we found out is that it needs to fullfill the following:

  • easy to use, intuitive to use
  • small, compact interface thats in the background, popping up from time to time to ask if you still do <this>
  • tells me what I should do next
  • rapid way of adding new todos (and a rapid way of setting importance, due dates and stuff)
  • only necessary properties of todos (some want projects, some categories, everyone contexts, some tags, some planned time…)
  • good organisation of todos (projects? recurring todos? inbox?)
  • good filtering (if I search something, I need to find it instantly)

We had another giantic list of things that COULD be nice, but we’ll be trying to keep it sleek. And we found out that most people have very different ideas, what a todo tool should do more than the above. My boss wants project planning stuff like how much hours will this item take (I won’t want this). I want it to be able to synch to my iPhone (others don’t use iPhones). Some want dependencies between single todo-items (like this one can only be ready after another one), but how can you build this in without blowing the tool up to one of the complex tools already available? Some want projects while others find them confusing. Some want time-management-functions inclused. Some want further project-planning stuff like delegating ToDos or connectors to projectmanagement solutions like JIRA included. Choose and divide, young jedi.

Also, the GTD-philosophy seems to get in the way sometimes. For example, “Folders” don’t make any sense to me when you have contexts. They’re some kind of tags gone worse. That said, I like tags more. For these and some more reasons, I’m not sure if we should follow a certain philosophy (like the 30-year old GTD), as these were born in times when computers were not that essential in people’s everyday lives.

What do you think? Which feature would let you use a ToDo-organizer?

Eclipse Initializing Java Tooling Error on 64bit Windows 7

19. November 2009

No Gravatar

Just a short note about an error I resolved lately.

Eclipse Initializing Java Tooling hangs at 1% while eclipse uses a lot of resources while configuring org.eclipse.jst.j2ee.internal.web.container … I’m on Windows 7, 64bit, 64bit JDK, running as non-admin.

This error seems to have some connection to the installed plugins, or with the last exit of eclipse. I found a forum entry “on the internets” where one user said he just deleted the lock file in his workspace’s metadata folder. This didn’t work for me. Another user mentioned that you can delete or rename the folder to resolve the issue:

WORKSPACE_HOME/.metadata/.plugins/org.eclipse.core.resources/.projects

This worked for me, eclipse starts back on error-free again - BUT when closing eclipse, another error appears, that says that metadata in this folder could not be saved (something to do with the servers). Starting back up again after this gives me the same error again, Java Tooling hanging at 1%

Switching the workspace seems to help. Saying that, the workspace is corrupt somehow.So the single working workaround is deleting the .metadata folder for your eclipse workspace and start that workspace anew, importing projects, generating a new server. Can’t reproduce the error now, but I still guess that its something one of the plugins save wrongly in the project-metadata. I suspect its the JavaScript support, the springide-plugin or the subclipse plugin, as these are the plugins that a guy from this forum-thread had installed that I also use.

Well, never mind. Its a bunch of plugins in one giant IDE-framework. Can’t work on a 64bit Win7, right?

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