12 April 2010

5th WebUG meeting report

On the 8th of April 2010 I held a talk on the topic of "Software Engineering" at the 5th Web user group meeting which was a SQL/DEV user group meeting (since Windays 2010 are coming soon). The talk was held in the Microsoft offices on the top of business building in Zagreb in the Dante conference room.
The presentation went well. I was really nervous beforehand. I thought that there is for sure someone in the audience who will spot an error and point it out. Well no one did , or if he did he didn't point it out loud.
There were some technical difficulties at the beginning. The network was hard to get and the camera crew didn't come so the talk wasn't recorded. Bummer.
Everything else went just fine. The talk was well received by the audience, people came to me afterwards to congratulate me or to talk about some finer point in private.
The hosts were gracious enough to accommodate my special dietary habits so they ordered a vegetarian lasagna for me during the networking part of the event. Everybody else got "čevape" which went away pretty fast.
All in all it was a nice event. I meet some good people and I hope to have a chance to present again on a future WebUG meeting.
Here are some photos taken from the talk:


03 April 2010

WebUG Presentation: Software Engineering

Next week on the 8th of April 2010 I will present on the monthly Web User Group meeting in Zagreb, at the Microsoft Croatia offices on the topic of Software Engineering.
Software Engineering is something very dear to me. It is also a very hard topic to condense in an one hour presentation.
For those who want to attend you can find more here http://www.webug.com.hr/.

18 March 2010

Key principles of software architecture

Software architecture is the first and most important design step of software development project where are defined and indentified the key components of a product encompassing the logical structure of the product being built, the technologies used and how they are used and the definition of the key processes handled by the system both business and technological.

Software architecture is software design , but not all software design is software architecture. Architecture implies a high level overview of things. It set the boundaries and key guidelines of the development effort without going into a detailed specification of each implemented use case on the technological or business level.

Every developed system has an architecture. Most software architectures are incidental, matters of accident and small decisions made by different people at different times without accord or shared vision.

Software architecture is both easy and hard. It is easy because it doesn't get into every detail of the system being built, that is for the detailed design effort it is hard because it requires an encompassing vision of each key element of a system and the capability to set it in clear, concise and understandable writing.

As the product changes the architecture will change. Decisions are being made by each key stroke, by each library reference and each guideline not met - no matter how small or temporary.

The software architecture document must be therefore written in a short and concise way with pictures describing each key section of it in order to facilitate rapid understanding and ease of maintenance.

There are muliple way of doing software architecture. A good , and free book published by Microsofts Patterns and Practices covers all aspects of it, the Microsoft Application Architecture Guide, 2nd Edition. I would recommend it to everyone.


A dummy high-level model for a HRM system


When I approach and design a high level architecture document I generally cover the following sections:


  • Project overview

  • Project goals

  • High level architecture diagram

  • Technology platform

  • Technology platform - process and techniques used for specific problems

  • Key processes covered by the product

  • Other



Project overview. A short overview of the project, usually a project sales pitch describing what is the project, who is the client and what the project is really about. I do not go into great details since there are other documents which are generally built to elaborate on the topic further.

Project goals. Or the project high level requirements are the handful of key things the project must be able to accomplish. This is the basis on which the architecture is being designed on. The architecture must be able to fully satisfy these , generally around five, requirements in order to be successful.

High level architecture diagram. The highlevel architecture diagram is the corner stone of the document. This is actually the picture or the sets of pictures most architectural discussions are done between engineers and which will set the broad strokes of the project. The key goal of the high level diagram is to set the relationships and communication channels between each compoment of a system. It can be done by using a block diagram with squares and arrows indicating componets (applications, modules, databases and etc. ) or it can be done by using UML's component diagrams.

Technology platform. A list of technologies used for the product organized in logical sections describing the goals and reasons for the usage of the technology. It is important to correlate the chosen technologies interdependencies, e.g. all the technologies must work well together and if not the risks must be identified, documented and review by all the architectural key stakeholders of the project.

Technology platform - process and techniques used for specific problems. Description of key usages of each technology. Most modern technologies used for the development of modern systems and products can be used in several ways, buy applying several techniques at ones disposal. For example one can rely heavily on the ObjectDataSource object in ASP.NET for all grid operations or could choose to manually bind data or just to build a normal HTML table with data into it. This important for a data heavy application where data will be often presented in a tabular fashion and this will be the main way a user will interact with the system.

Key processes covered by the product. This correlates directly with the high level requirements set for the product, e.g. the project goals and other critical issues which can applied to the entire product and are critical for its proper functioning. Here we could specify how the system reporting solution will work, how the system will interact with other key systems ( for example with an old dos accounting application critical to the client who can only write to the file system plain text files), how the authentication and authorization system will work , how will the caching solution work etc. Apart from the high level diagram this is the most critical part of the architecture and more so for the client. Often to support a specific process implementation an architectural spike will be developed to prove and disprove a point to the key architectural stakeholders.

Other. Architecture is for the most part a technical discipline done for the product development team. It is purposefully ten thousand feet up from the detailed specification of the product in other to cover, restrict and keep up with the full product life cycle. Each product is a separate beast with its issues and pitfalls, risks and challenges and there a myriad characteristic who could be added to the software architecture for a specific project.

25 February 2010

My presentation of the fourth MSCOmmunity Istra


Last Tuesday I presented at the fourth Microsoft Community Istra meeting in Pula at the Student MMC club. I was the sole presenter due to the fact that my colleague Hrvoje couldn't make it.
I presented on the topic of UML. The presentation consisted of a short introdcution to UML, its origins and uses and then I covered the basics of Class, Package, Activity and Sequence diagrams.
I think the presentation went rather well. I wasn't nervous, the crowd was developers mostly and the ambient suited me just fine (dark, dunk walls, underground bar on the back and you female students searching for a higher insight in life, back room poker and a whole day on going LAN party in the next room).

12 February 2010

IT Showoff Zagreb

Winter came to Istra. Once again the snow fell and the cold came. In Labin, where I work at six a.m. the temperature was bellow zero. And today is the day I'm travelling to Zagreb to the IT showoff conference.
I took the company car, my trusted GPS, a two cd podcast collection and on I went. In Rijeka I picked my colleague and friend Hrvoje Hudoletnjak, who will sit on the evening panel “Web framework show down” at the conference.
And today we went.
As the trip progressed the temperature got progressively worse. Bellow zero, bellow five – oh my god please do not look at the thermometer. The snow, let me tell you about the snow. The highway was deep covered in it. On some parts only one way was opened on each side. The snow was stacked up taller then me, and I’m tall.
But, thanks to my superb driving skills and to a little bit of help from the window unfreezing spray we made it to FER where the conference is being held.
Luck was still on our side. We found a free parking space really fast and really close to the university.
A small part of the university was reserved for the conference. When Hrvoje and I arrived there we where greeted by a long waiting line of people waiting to be registered.
The registration proceeded pretty smoothly. The conference boast with pretty looking hostesses ( a bit sexist , but you know) and it proved true. The girls were pretty and competent and Hrvoje and I were registered quickly.
I got a cd, a pool and a conference program. Well, so much for smack. But it is a free conference. I’m not going to complain.
The conference is organized in two university auditoriums and a hall. The hall is where to social aspect of the conference is being held. Lost of drinks and pretzels are served there as nourishment which is cool.
Of the two tracks I attended the right , “development” track. And I was astounded by the quality of content and presenters. They were really good, fun, instructive and furthermore they freely gave promotional t-shirts to those who asked questions, which in three instances was me.
Yep, I won three t-shirts which of course I will give to my beautiful wife. She is already an Ubuntu user. She looks really nice in geek-wear.

30 January 2010

After all is done, the enemy comes to pick the honored fallen bodies

This week I presented on the two events announced on my previous post. Both were real amazing and great opportunity for me to meet new people and practice my presenting skills (which really needed practice).
The first was the MS Community meeting held on the 26th of January in the Konoba “Idila” in Rakovi near Baderna. For those of you who aren’t from these parts a “konoba” is a local tavern type. If you ever played Dungeons and Dragons or watched a fantasy movie it is the place where the shady old man gives you the quest of your life time (or week in case of my gaming group back at college). It was a real nice place. Cold, dark and mysterious where the mysteries of the Windows XP mode of Windows 7 and the arts of Unit-testing were explained in a dark , dunk room, lit only by the ancient fire place in the center of the dining, drinking, area. The walls were of made of hand chipped stones, rugged and hard, cold from the outside winter.
A place was cleared for us. Twenty chairs, a table and a presentation pod. The ceiling was short, wooden planks running back and forth. I was afraid I was going to hurt my head. I’m tall you see. But no such issues were encountered.
Viktor Ezgeta, presented first on the Windows XP mode in Windows 7. He started first with several slides showing the basics of the Windows XP mode and then continued on a live presentation. Viktor is a fun presenter to have, and it showed in this presentation also. I think everyone got the point there. No missing content for Viktor.






I continued next with my habitual “Unit-Testing: A grease monkey introduction” presentation. It took me longer than agreed but no one objected (well my wife number one had several well meaning objections on my presentational style, which isn’t unusual given her background in journalism and her current work as a researcher in communicology). It went well. I first presented on unit-testing theory and then I showed how unit-testing is done in practice with NUnit.



Afterwards it was the social hour of the evening. We all gathered around an old wooden table, really nice, really cool and rustic and the food was served. Fuži with wild animal meat, and njoki with lambs meat. Of course I got my vegetarian meal which was really nice and animal friendly.
The food was good and so was the talk. As a result me and my colleague Hrvoje Hudoletnjak will present on the next Microsoft user community meeting which will be held in Pula on the 23rd of February 2010.
The second event I present on was the recruitment run held by Novatec New Technologies ( the company I work for) and Systec Automation (the parent company I work for ) in Osijek at the Faculty of Electrical Engineering as part of our new campaign of opening Novatec and Systec offices in Osijek. I presented with a colleague. He covered the Systec side of the presentation and I covered Novatec and the recruitment process.
The presentation was held in the new faculty campus which previously was one of the Osijek’s military bases. The base itself is very ominous, during the opening days of the last war the enemy held the base and opened fire on the city from there and the city hospital which is just on the other side of the street.
It is nice to see such a building disbanded from military use and converted to something which will benefit so many people.
The presentation hall was full with students. Some had to event stand, such was the interest. We really got their attention, so I’m sure many will apply for the position.
Osijek is wonderful city. It was my first time there. I have some friends living there, but haven’t had the time to meet with them. I took a short walk through the city the first night I was there and was impressed with its architecture, the Drava river and parks. The people are really nice and friendly, and didn’t hesitate with instructions where to go when I asked them to. I would really like to go back there and see more of the city, its museums, its bars and theaters (well I am the guy who listens to baroque music when programming, really no surprises there).
In short, I think , both events were a real success and I really hope to present some more in the near future.

22 January 2010

Events, events, events

Well, its conference time in Croatia this time of year. First , there was the second Web User Group meeting a Microsoft Croatia which I attended with two of my colleagues . You can watch the live stream here . It was the first WebUG meeting I attended and I was dazzled by the quality of organization , the presentation and the amount of benefits I got just by attending there (lower cost for attending several local conferences and of course the lower early entry cost for the Developer Bootcamp).
The presentation which I attended was titled “User experience on the web” by Vibor Cipan of FatDUX. The presentation was interesting, educational and all in all a good experience for me.
The pizza afterwards was great too.
There are two events I plan, wish to attend to. The first is the IT Show off conference which will be held on the 12th of February this year in Zagreb which is a free one day developer conference and the second is the above mentioned Developers Bootcamp.
I will held two presentations next week. The first will be held on Friday 29th of January at the Osijek Faculty of Electrical Engineering where I will present the company I work at Novatec New Technologies and our software engineering process. Attendance is of course free.
The second will be held on Tuesday 26th of January in the Tavern Idila in Rakovac near Baderna. I will be the second presenter. The first will be Viktor Ezgeta with “Windows XP mod of Windows 7”. I will present my usual introduction to unit –testing presentation. It will cover the basic unit-testing theory and practice by showing how to use NUnit for unit-testing .NET applications.
For the grand finale, I’m announcing my to WinDays 2010 presentation proposals:

  • F# : an introduction and,

  • Domain – driven design in .NET with Visual Studio 2010 modeling projects.


I hope one of the two is taken.