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.

Windows 7

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?

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?

Agilo Trac Error

No Gravatar

I just installed Agilo from Agile42 on my Windows 7 machine at work. Trying to create a new user, I got the error message:

“The password file could not be updated. Trac requires read and write access to both the password file and its parent directory.”

To solve this issue, you must find the installation directory, right-click the subdirectory tracenv it, and choose Properties. In the Tab Security click “Edit”. Give “Users” and “Trusted Installer” all Permissions by checking the appropriate checkboxes and Apply the changes. Now your Local Server should be able to edit its own database.

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