Sunday, October 24, 2010

Intentional and Accidental Managers

There are two kind of managers, intentional and accidental managers. 

Intentional managers are educated to be managers. They start their carriers as managers. Usually, besides huge knowledge of by-the-book management rules, they also have a strong theoretical background on psychology. Also, these people are very self-organized and they are able to organize people to do some work in a way that’s easy to monitor and control. Most of all, they have generalization approach to managing work, especially at the beginning of their carriers. Generalization approach means that they use general rule for management regardless of the business domain. They follow the very same rules whether they run a shoe factory line or a software development team. 

Accidental managers are, first of all, craftsmen. Being extremely good in their everyday work got them to management in the first place. This kind of managers know their business domain very well, they have working knowledge on the matter and they earned the manager’s position by saving several problematic projects. They manage work through specialization. While working on the project, they go down to all the little details and seek to know every single thing that’s related to the project’s result.

So, which kind of managers is better?

As with everything in life, there’s no silver bullet.

Speaking of bullets, here are few on the diversity of these two types to conclude:
  • Intentional managers tend to delegate all of the work, accidental managers do (too) much of the work themselves.
  • Intentional managers lead larger teams in a very organized way. Accidental managers have problems managing large teams.
  • Intentional managers write great reports and present them to the satisfaction of stakeholders. Accidental managers have problems writing reports at all, and when writing,  they produce reports focused on problems and rarely mentioning good things they and team has done.
  • Accidental managers work great in time of crisis. They are great cost-cutters. Mainly, they are appointed at the time of crisis. Intentional managers much easier surrender to the crisis and flee from the battlefield.  
  • Accidental managers got bored easily when business is stable. In the day of crisis they are troubleshooter, in stable business they, as managers, are troublemakers. Intentional managers work best while in stable business. Reports are clear, regular and everyone can celebrate good results.

Monday, October 18, 2010

the dead parrot

It seems that Microsoft has dropped Oslo and it's focusing on OData and EDM as a more loosely coupled approach to modeling. I was really interested in "M" and creating DSL's in the language, was impressed with Don Box and Doug Perdy at PDC2008 but it seems that we'll have to wait for another fad to occupy our dsl-thirsty minds. Weirdest of all, it seems that Doug also vanished with the Oslo.

Nevertheless, after a few posts on SQL Server Modeling, Oslo, and "M" and a long pause posting, I'm here to write about the next technology I'm trying to learn and apply.
This time it's Python with Google App Engine.This should be a big change after years of using C# and Java in my everyday work. This is somehow weird, because actually I'll still continue to use MS technologies at work, but examining the Google side of development world is like a new hobby.

Right now I'm going through the tutorials and docs on Google code and I really like the language and the approach. Provided services give a lot of power instantly to your applications. You don't have to worry about authentication - authenticate users with Google account, don't worry about the database details and query optimization - just use the easy-to-use Datastore service. Emails, cron jobs, XMPP, Google Apps, all together gives a great platform for development and enable you to focus on your.... Idea!

If you don't have an idea for the next I believe you should try developing an application that you need and you would like to see available. Taken this approach what I miss really is an application to easily organize and track my tasks. I get and assign tasks through several tools, Outlook, issue tracking tools at work, Google tasks, and of course RTM. At the end of day, each application is missing some feature that I think I really need. Thus, I'll try - as an exercise - to start with a task tracking application. Not a great idea, but at least - it could be a real enough project to learn Python and development for Google App Engine.

Friday, November 20, 2009

SQL Server Modeling November CTP Installation Problems

I had problems installing the "Oslo" November 2009 CTP, some of the Domains were not installed correctly.


First problem was due to the fact that I was using local SQL Server Express 2008.
I fixed this by manually installing domains after the installation.

  1. Open the "Microsoft SQL Server Modeling CTP Command Prompt" (Start -> Programs -> Microsoft SQL Server Modeling CTP)
  2. Install each of the missing domains by using mx tool. Type mx install Microsoft.Uml2.mx /server:.\sqlexpress /database:Repository /property:RepositoryChangeTracking=+ 
  3. It helped to explicitly use "/server:.\sqlexpress" for database server name
  4. Use this to install all of the missing domains by replacing the above "Microsoft.Uml2.mx" with appropriate .mx file. I've installed System.Runtime.mx, System.Identity.mx, and Microsoft.Uml2.mx this way.
Also, I received timeout while trying to run these commands. It was due to problems with login. In my case, it helped to add /t:Integrated as a final option in the above commands.


And, while trying to install the UML domain (Microsoft.Uml2.mx), I received error that is also mentioned in the Readme.htm file:




catalogentries.sql(43837,1): error M6040: Sql Exception: There is insufficient system memory in resource pool 'internal' to run this query.


This was caused by the fact that my machine (virtual machine) had 1GB RAM. Increasing RAM to 2GB on the machine helped to solve the problem.


Hope some of this will be helpful to you.

Wednesday, November 11, 2009

Journey ended, a new one begins

Few days ago I wrote in my previous post that my impression from the PDC2008, especially while talking with development team, that Microsoft is not quite sure what to do with "Oslo".
In yesterday's post on his blog, Douglas Purdy writes that "Oslo" will be shipped as "SQL Server Modeling", as part of the releases of SQL Server.
Here's a quote:

"The components of the SQL Server Modeling CTP are:
  • “M” is a highly productive, developer friendly, textual language for defining schemas, queries, values, functions and DSLs for SQL Server databases
  • “Quadrant” is a customizable tool for interacting with large datasets stored in SQL Server databases
  • “Repository” is a SQL Server role for the the secure sharing of models between applications and systems
We will announce the official names for these components as we land them, but the key thing is that all of these components are now part of SQL Server and will ship with a future release of that product."


So, it seems that journey to "Oslo" as a "homeless", "general purpose" modeling platform has ended and it has found its "foster home" in MS SQL Server product. Nevertheless, I still like it.

Sunday, November 08, 2009

Journey to "Oslo"

First time I heard of Microsoft's "Oslo" was last year while making final arrangements with my colleagues for attending the PDC 2008. My two colleagues and I were strongly recommended the "Oslo": Building textual DSLs session by our company's Chief Software Architect. Before that, I've learned a little bit about DSLs by reading some of the chapters of Martin Fowler's DSL Book WIP (work in progress). I liked the idea of DSLs very much and was eager to see and attend all of the PDC 2008 "Oslo" sessions.
I attended three of the "Oslo" sessions then and also talked with development team at "Ask-the-experts" night (Chris Andersen and Doug Purdy were present, too). My strong impression was that it is definitely a powerful concept and it is worth learning, but I didn't not get a clear idea of how to put all this into a working business application. I also asked some of the "Oslo" team members during "Ask-the-experts" nights about intended use and whether Microsoft will build some DSLs for common domains like finance, insurance, etc., but answer I got was that "developer's community" is expected to build DSLs. All in all, I left L.A. a bit confused about "M" and "Oslo", but still with strong interest in the technology.
A year had passed since and I didn't follow "Oslo" related news really, until yesterday I read this article by Kraig Brockschmidt. After reading the article I've finally decided to try and learn "Oslo", build a simple DSL, build a runtime for it and execute an application.

The aspects I'm really interested with "Oslo" are:
  • Ease of model use in .NET applications
  • Ease of reuse of models/DSLs
  • Flexibility, change management, model extensions, etc.
  • How will this increase developer productivity?