Friday, December 2, 2011

Opinions: Scala

Can you spot the difference:

Scala is a serious option for organizations developing on a JVM platform.

 

 

The friction and complexity that comes with using Scala instead of Java isn't offset by enough productivity benefit or reduction of maintenance burden for it to make sense as our default language.

 

Wednesday, November 23, 2011

Model, model thou art my riddle!

Can you spot the difference:
In a Model View Controller application, you only ever want to see SQL code in the model.

The domain model should be independent of persistence implementation details.


Probably we should accept that models come in different flavors...

... or maybe the grand master was right:
Using C means that people [...] don't screw things up with any idiotic "object model" crap.

Friday, November 18, 2011

Watch out: The world is changing!

Lately I seem more susceptible to realize how fast the world is changing. Probably I am getting old...

At a recent lecture, Martin Herdina (CEO, Wikitude) showed how the mobile phone changes our lives (and he displayed slides you don't usually see in lectures…)

Once again I realized that the iPhone was only launched in 2007. I think it is amazing how our use of technology can change in only 4 years ...

Another striking example underlying the perception of technical change in relation to other areas of our lives:

What crosses your mind when you see the following picture?

ELT200709112316547187881

Old-school, clumsy, clunky, retro

...at least that are impressions that pop up in my head…

 

Now, what crosses your mind when you see the following picture:

Matrix wallpaper5
Cool, highlight, milestone in movie history, top-10-movies of all times, re-defining science fiction movies …

...again that are my personal associations.

 

But you remember that the Nokia 7110 phone in the above picture was actually designed after being inspired by the Matrix movie:

Matrix nokia1

 

I think it is remarkable how time is not having the same effect on movies as on technology. The Matrix definitely aged better than the Nokia phone.

In context: Great video about living in exponential times.

 

 

Monday, November 14, 2011

Dysfunction: Headhunters & Short Time Contracting

I blogged before about the desolate state of our industry.

Here is one clear symptom underlining once more that there is something wrong:

Regularly when a government IT project here in Switzerland has an open vacancy for some months, I am getting calls, emails and XING requests from headhunters from Germany and the UK that want to mediate me for this job.


Marten van Valckenborch Tower of babel-largeThere is so much wrong in this setup...

For a start, the whole setup represents the idea that constructing software is like putting bricks on top of each other to build a pyramid. You can hire some more hands and you will finish sooner, because once a brick is laid, somebody else can put the next brick on top of it. This analogy is completely wrong (and that is not an expression of the unprofessionalism of our industry)!

On the other hand what does anybody expect when he goes through headhunters like this (I even have seen cases where several hierarchies of headhunters were involved)?

Do develoers think they don't get jobs without them? Do employers think they do get better developers through those headhunters?
What added value does a headhunter provide in this case? He hardly even looks at my CV, which is online anyways, and...? The employer wants to do an interview with me anyways, and the headhunter does not provide any guarantees, does he?

The result is that another layer of indirection is introduced that legitimates just another bureaucratic overhead. Headhunters like this are neither interested in the project nor in the developers they mediate.
Also (probably as a consequence) developers recruited in this manner usually are not very committed to the project. Why should they? The next recruitement is already waiting around the corner...

I strongly believe we should stop this headhunter/short-time contracting in IT projects. Hire developers for goals not time-periods. Cut the middle-men and get developers committed and responsible.

Further reading:

Tuesday, October 18, 2011

Tidbit: Lines of Code

315116528_480edcad4d.jpg

According to a claim in the Non Relational Data Stores Panel, the query parser in MySQL alone spans 100'000 lines of code in C and the whole Cassandra Database is 30'000 lines of Java.

I don't know what to deduce from that, but it is certainly interesting.

Some directions of thought:

  • Java is a more powerful language than C
  • MySQL is much more sophisticated than Cassandra
  • NoSQL databases are much less complex than relational databases
  • ...


Tuesday, October 11, 2011

Pimping my MacBook

I am attempting probably one of the most stupid things: pimping a MacBook ...

The patient is ready. Let's get started.
The patient is ready. Let's get started.

Patient is opened. Pulse is steady.
Patient is opened. Pulse is steady.

The offending organ has been removed.
The offending organ has been removed.

The replacement organs fit well ...
The replacement organs fit well ...

Surgery finished, patient hopefully ready to wake up ...
Surgery finished, patient hopefully ready to wake up ...

... however the doctor is not completely pleased with the result. Another operation is due next week...

Thursday, October 6, 2011

Enterprise IT: immature and simple?

Once you've admitted to yourself that you're a bad programmer, you can stop all the silly posturing and pretending that you're great, and you can look around and find the best possible tools to help you look smarter than you are.

People pile layers on top of layers, abstractions on top of abstractions, complications on top of complications, crap on top of patches, and patches on top of crap until everything collapses onto itself and the singularity appears.

Recently I was confronted with the following problem:
Screen shot 2011 09 22 at 2 26 51 PM
  • Which x maximizes u?

I remember that I had solved similar problems in analysis lectures about a decade ago, but I had no clue how to approach the task today.
I also have the impression that it would take weeks if not month for me to get back into the subject. Ok, I can read the wikipedia article about the quartic functions but I don't think I will get it without investing some major timespan. I am even doubtful if I could suck the knowledge I need from the internet, or if I finally would have to go to the bookstore and buy an analysis book ...
Business card law student
This made me think about my everyday work as a "coder for hire"/consultant working in the trenches of enterprise IT projects.
I am confronted with problems I have never dealt with almost on a daily basis. However this makes me not nervous at all ...
For instance in a recent project it turned out that I had to write reports with SSRS and integrate them in some custom SharePoint controls. I have never done that before. I never came near to SSRS before and I delibarately had kept a long distance between me an SharePoint. Still I was not afraid of those tasks. I was quite confident that I could solve the tasks within the expectations of the customer (however I am sure there are many developers that would have provided better value for the customer). When I look at the quartic function above I am much less confident and would be get quite nervous if I had to solve that task ...
I started wondering about that fact and came up with some theories:
  • I am just a natural talent in everything related to enterprise IT ... nah, I don't think so :-)
  • Enterprise IT is a simple domain. We don't really deal with substantially complex or challenging problems, at least not in the technical realization. We mostly deal with trying to understand technology that has been created by other people. Trying to find out what the assumptions and intentions of those other people were and how to match that as good as possible to our context. If we are good, we try not to apply the technologies in a wrong way. (note that I differenciate enterprise IT from other areas in IT like i.e. scaling a cloud infrastructure like facebook or developing new algorithms for video compression, there I think we still have real innovation and technical challenges).
  • In the IT industry, especially in enterprise technologies, knowledge is extremely easy to come by. Probably the only real skill you need, is to effectively search the internet. Then you can almost solve any problem. Just ask Goolge and spend some time on Stackoverflow ... you don't need a CS degree for that. Of course that was deliberately provocative: The small challenge remaining is how you combine and apply the knowledge you sucked from the internet. And of course the ability to know when not to apply a technology and look for another solution.
  • The IT industry is very immature, at least in the enterprise environments I usually find myself. For each project I get hired, I usually have to go through an interview process. These interview processes have quite different flavors of sophistication but the people conducting the interviews think they check that I am suitable for the job. They usually get the requirements for the job through some obscure windings in the organization, but in most cases it has nothing to do with what I end up doing once I really get in touch with the project. It seems the enterprise IT industry has a hard time defining its specialists. The result is that a bunch of generalists like me are stumbling along doing a mediocre job ...
Related Posts Plugin for WordPress, Blogger...