Thursday, March 29, 2007

Learn the art of system development

I read a good post on "how to prepare for a career in software development" by Jeff Atwood. This blog post really got me thinking about this topic. As Jeff points out the only way to learn is to be on the battlefield. I totally agree. What many developers seems to forget is that software development is a handicraft. You must learn from the bottom up. You must write your rows of code and you must make your mistake to become a good software developer or architect. Of course you can (and should) learn from mistakes other people made and you take small short cuts when reading the work of others but you can't skip some steps in the process.

Fairly often I see new developers (and others for that matter) trying to take short cuts and skips some steps. Sometime this works out but this often lead to small or bigger holes in the map of knowledge. This often ends up with problems for the projects they works in. So be patient and learn step by step. There are no cheap short cuts.

The most effective way to learn is by try - evaluate - refactor. Nobody makes all decisions right. At least not the first time. There are always thing to do better. Often you don't know all requirements in the beginning and often the requirements and environment shift along the process. Do what you think is right and then evalute the outcome and learn from that and change the decisions for the better. Work with constant refactoring. I haven't met somebody that made all right on the first try.

Jeff has an list of actions to get better. A couple of my actions are the same. My list.

  • Start your own hobby project. Gather some friends with good ideas and implement one or many ideas. Learn from each other and have fun while doing this project.
  • Try to get a mentor. To have a more experienced person to talk to and to help you developing yourself is very helpful. Someone who can guide you is worth so much.
  • Start a blog. Start with small ambitions. Try out what you want to write about and how you want to write. Start to read other blogs to get your own thinking going. Comment other posts and then start writing your own articles. You don't have to be to too serious at first.
  • Participate in user-groups. It's amazing how many good free seminars there are. Instead of reading and searching for information you can go for a seminar listen and get some free food instead. More fun and you learn more. I always gets a surprice when I see that out of all developers and architects in Stockholm there are only like 30 people in this seminars, and it's always the same guys.
  • Listen to podcasts and see webcasts. Microsoft, .NET Rocks, ARCast etc give out great podcasts. Listen and learn.
  • University. In Sweden the universities are free. There are alot of good classes for C#, MSF, .NET architecture etc to attend.

The role of the architect

This is a tips for a good podcast. This one is from ARCast with Ron Jacobs and it's about the architect role. http://channel9.msdn.com/ShowPost.aspx?PostID=195719

The description of the show: "What is an architect? What do they do? What kind of skills do I need to become an architect? These are the questions that are on the minds of so many developers today. Perhaps you have thought about becoming an architect and you want to know these answers. Well my friend, you are in luck because today we have Robert Daigneau Director of Platform Architecture for Monster.com here with us to find out if you have what it takes."

In one of the comments from the show there are a link to a good article in the subjet. Read it here. This article is talking about the skills needed for a good architect.

  • Software Engineering Skills
  • Software process
  • Project Management
  • Business Skills
  • Technology Expertise
  • Implementation Expertise
  • Social skills

Podcast

A good podcast from Dag König. It's an old post but it's still interesting. The podcast is about SOA and the SOA work on SAP. It's very interesting to hear how the work was done and how they thought through the implementation. Dag interview Lars Lindberg who is IT-archicts for SAP about how the implementation has gone and what they has learn along the way.

The podcast is in swedish.
http://buzzfrog.blogs.com/zabrak/2006/01/av_38_intervju_.html

Wednesday, March 28, 2007

MSMQ management tool

I have developed a MSMQ management tool called IMQT together with a colleauge Tomas Wallin. It all started when I developed another software and I needed some kind of test tool to send, read and manipulate messages in MSMQ. I thought that if I wanted this tool other developers/testers also wanted one. So I involved Tomas and we used our nights and weekends to write this software. The tool started to grow and then we wanted to try to make a more complete MSQM management product. All most needed functionality for MSMQ management is implemented. You can manage queues and messages. Search for text in messages and compare XML. Try it for yourself. Download the software here.

The tool is free to use. The only constraint we have is that you give us feedback if there are any functionality you need/want, if there are any changes you need/want and if there are any bugs.

So try it out. We hope you enjoy it. Please contact me if there is anyting...

The tool only works on Windows XP and above and we use .NET 2.0. You got a help-file included in the tool but it need some updates.

Standard system

This post is in swedish.

Det är intressant att höra vissa personer prata om standardsystem som en lösning då den egna systemutvecklingen inte fungerar. Nästan som en silver-bullit som ska lösa alla problem som man haft hittills. Det går snabbare och blir billigare säger man. Alla problemen försvinner. Jag tror att standardsystem fungerar jättebra i vissa organisationer och för vissa verksamheter. Det som måste göras före ett införande av vilket system som helst är att fixa till problemen i den egna organisationen först. Samma problem kommer annars dyka upp med den enda skillnad att man har mindre kontroll över projektet och har därför mindre chans att rätta till det som gått snett när man inför ett standardsystem. Det handlar nästan alltid om ledningsproblem när projekten går snett. Dålig styrning och planering mm.

Jag läste en intressant artikel i Computer Sweden idag om Ericssons implementering av SAP. Efter 13 år verkar det äntligen gå bra i projektet och idag är SAP infört på fler än 100 bolag i över 50 länder. Problemet verkar ha varit samma problem som i de flesta projekt som går dåligt, dålig ledning och styrning. Carl-Magnus Månsson som är CIO för Ericsson koncernen listar fem stora utmaningar med införandet av affärssystem.
  1. Effektivisera processerna på ett standardiserat sätt.
  2. Skapa en flexibel arkitektur så att det går att lyfta in och ur funktioner ur ett standardsystem.
  3. Minska antalet system som används och säkerställ kostnadsreduktion hela vägen ner till reducerad hårdvara.
  4. Skapa en gemensam informationsmodell.
  5. Leta efter verksamhetsnära it-kompetens både bland verksamhetsfolk och bland it-folk.

Jag tror att punkt ett, fyra och fem är väldigt kritiska. Jag skulle vilja säga att dessa fem punkter plus att projektledningen samt styrning och ledning högre upp i organisationen är stora utmaningar i alla systemutvecklingsprojekt och att de ofta är alltför underskattade.

Sista delen i artikeln handlar om andra organisationer som också haft stora problem med införandet av SAP. Tex så skickade AGA ut julkort ett år där de bad alla kunder om ursäkt för de problem de haft under året på grund av införandet av SAP. Artikeln avslutas med att säga att "det finns också företag som inte har problem med affärssystem. Särskilt de som inte satsar på stora affärssystem. Som exempel på sådana företag nämner en källa Scania, Ikea, H&M och Toyota".

Läs mer på Computer Sweden del 1, 2 och 3 här och del 4 här.

Cool site and pictures

I found a cool site. Nothing fancy or anything but I like it. It's http://www.world66.com/ where you can register and add the countries you have visited. I visited 13 countries and that is 5% of the countries in the world. Check out my visited countries here.

I really love to travel. I just been to 13 countries but my favourite country is South Africa. I have read that South Africa is voted for the most beautiful country in the world. Maybe it's true, I don't know but you should all go there. Check out these pictures Western Cape, Free State, Camps Bay... Check out this site and this site instead.

Another favourite place is New York City. I've just been there twice but every now and then a big craving for NYC then I go to this site to calm it with some pictures of the big apple.

Tuesday, March 27, 2007

Webcast about Service Factory

I just saw a great webcast about Service Factory. See it. It gives you a great overview over how a Software Factory works and especially Service Factory. It's called "MSDN Webcast: Using the Web Service Software Factory (Level 300)". Download it here.

What is MSMQT?

In one of my project we should send messages to a Biztalk queue. I thought Biztalk used the regular MSMQ with it's own interface but.... First of all it's called MSMQT and the T is for transport. The Biztalk solution was created to get around the 4 mb limit in the usual MSMQ. You can send the messages to MSMQT in the same way as via MSMQ the difference is in how the messages is stored. For MSMQT the messages are stored in the Biztalk message storage. This means that you cant see the queues and the messages in the MMC.

Here is a short description about what MSMQT is .

Monday, March 26, 2007

IASA Sweden

IASA (International Association of Software Architects) has just started a swedish chapter. On the first meeting about 200 architects came to listen to the interim commitee and a couple of other speakers. After the meeting there was mingle with food and drinks. It was a nice kick off for the swedish chapter.

Read more about the swedish chapter here (in swedish) and there are a link to join IASA. The fee are 50 dollar per year.

Policy injection Application Block

In the Enterprice Library 3.0 there are a new application block, Policy Injection Appliction Block (PIAB). This is very cool. Now you can write policies in your config file.

As David Hayden explains it "Put simply, the Policy Injection Application Block can save you from having to write all those boring validation, security, exception handling, and security-related code and instead allow you to write policies in your configuration file associated with them. These policies can then be mapped to classes in your application based on matching rules. The matching rules can match a policy to an entire assembly, a namespace, types, methods, method signatures, etc."

Read more about it in David Hayden's blog and in Tom Hollander's blog.