Debate on Groupism vs Individualism on the Yahoo Scrum Development Group.
©2005 Marc Adler - All Rights Reserved
Sunday, October 30, 2005
Scrum Puzzlement
After the first week at my new client, I have a burning desire to learn more about the Scrum world and apply it to the client. I found out that Yahoo Groups has a group called 'scrumdevelopment', and I have aggregated their feeds to RSSBandit.
I admit that I am new to Scrum. As a development manager, I had always practiced an XP-style of development. Fast iterations, constant feedback, daily meetings, etc. But never the kind of communistic approach that Scrum encourages.
There are two things that I heard about Scrum before coming to Finetix.
1) Scrum is having a hard time being adopted by Wall Street companies.
2) Scrum is much better suited to new development than to enhancing an existing project.
There are two reasons why I see an issue with Scrum and Wall Street companies. First, the inability to commit a team to a Scrum without distractions from anyone outside the team. It is difficult to dislodge a team from attending to daily production problems. It is difficult to tell a revenue-producing trader to leave a team alone while they are in the midst of a sprint. It is hard to tell a team member to skip all of the various classes that they are signed up for.
The second reason is more important. In case you have not heard, Wall Street gives amazing bonuses. And, bonuses are usually ties to individual accomplishments. The tenure of a developer at a Wall Street company is a relatively short stay, and you had better believe that a developer wants to load a resume up with as much individualism as possible.
As far as the issue of using Scrum for existing projects, how do you dislodge a team from support issues on the existing product? How can you have them concentrate on new development when a trader is calling you, screaming about a feature that is broken?
One nice thing is that our manager is very enthusiastic about Scrum. It has worked nicely for a Finetix team in London, but they have been doing new development.
I have a lot to learn about Scrum. The people at Finetix will be amazingly useful in helping adapt to this new way of thinking. I am all ears! And, if it is successful with my project, then perhaps it can be used on my wife's project as well, where she has run into the exact scenario as I have with my new client.
©2005 Marc Adler - All Rights Reserved
I admit that I am new to Scrum. As a development manager, I had always practiced an XP-style of development. Fast iterations, constant feedback, daily meetings, etc. But never the kind of communistic approach that Scrum encourages.
There are two things that I heard about Scrum before coming to Finetix.
1) Scrum is having a hard time being adopted by Wall Street companies.
2) Scrum is much better suited to new development than to enhancing an existing project.
There are two reasons why I see an issue with Scrum and Wall Street companies. First, the inability to commit a team to a Scrum without distractions from anyone outside the team. It is difficult to dislodge a team from attending to daily production problems. It is difficult to tell a revenue-producing trader to leave a team alone while they are in the midst of a sprint. It is hard to tell a team member to skip all of the various classes that they are signed up for.
The second reason is more important. In case you have not heard, Wall Street gives amazing bonuses. And, bonuses are usually ties to individual accomplishments. The tenure of a developer at a Wall Street company is a relatively short stay, and you had better believe that a developer wants to load a resume up with as much individualism as possible.
As far as the issue of using Scrum for existing projects, how do you dislodge a team from support issues on the existing product? How can you have them concentrate on new development when a trader is calling you, screaming about a feature that is broken?
One nice thing is that our manager is very enthusiastic about Scrum. It has worked nicely for a Finetix team in London, but they have been doing new development.
I have a lot to learn about Scrum. The people at Finetix will be amazingly useful in helping adapt to this new way of thinking. I am all ears! And, if it is successful with my project, then perhaps it can be used on my wife's project as well, where she has run into the exact scenario as I have with my new client.
©2005 Marc Adler - All Rights Reserved
Saturday, October 29, 2005
New Finetix Website
Finetix launched a new website. Lots of case studies on their.
We had a launch party at the Finetix NYC office. Steve brought out the good scotch.
Next time, boys, have some Guinness on hand! No more of this lite-beer crap! And have some Bailey's and Jameson's so we could indulge in a few Car Bombs.
(I was introduced to the Car Bomb in 2003 while playing at the annual Colorado MahlerFest, and the orchestra never sounded better!)
©2005 Marc Adler - All Rights Reserved
We had a launch party at the Finetix NYC office. Steve brought out the good scotch.
Next time, boys, have some Guinness on hand! No more of this lite-beer crap! And have some Bailey's and Jameson's so we could indulge in a few Car Bombs.
(I was introduced to the Car Bomb in 2003 while playing at the annual Colorado MahlerFest, and the orchestra never sounded better!)
©2005 Marc Adler - All Rights Reserved
Just Who Do You Think You Are! (Part 3)
In our last episode, Marc was left without a company to market his famed Unix-based word processor, WPScribe. The company who was in charge of marketing it had blown the company's monetary resources on the excesses of the mid-80's.
Marc was a Unix hack at that time.... even though he wrote a word processor (and, also, a spreadsheet for Unix, WPSpread), he loved ready through line upon line of the Unix kernel.
A small but growing company based on Long Island came a callin' .. their name was Computer Associates. Fresh off their buyout of SuperCalc, they were trying to come up with a window and application management system for all of their future applications. You see, CA envisioned themselves at the time as a software development company, even though very few things (if any) were developed by them. Marc was interested in the notion of working on this project, but he would have to do it all on the IBM PC and MS-DOS! (By the way, the window manager project was cancelled on the day that Microsoft announced Windows...)
Marc took the challenge.... and in the process, ported the word processor over to DOS. However, there was no marketing organization set up to sell the beast. At the time, a movement called Shareware had just gotten underway, and had some momentum. So, Marc decided to release the word processor as a shareware product, selling it for $35 a copy and renaming it "New York Word" (to give it sort of an urban feel).
The word processor did very well in the shareware marketplace, selling several thousand copies. The initial price was $35, but Marc, who was now doing Windows consulting on Wall Street, tried to dissuade people from buying it by raising the price to $47. That only convinced people that the product was now $12 better than it was before.
The largest shareware distributor at the time was an organization called PC-SIG. They decided to embark on a big marketing campaign by highlighting several shareware program. The gist of the ads was to draw a characterture of the author of the program, write a little blurb, and show off the ad in magazines like PC Magazine and PC World. So, if you have old copies around, you can find a drawing of Marc with an elongated face and a lot more hair than he has now!
Now that Marc had a word processor, he needed a nice text editor to go along with it. So, New York Word was stripped down, several programmer-friendly features were added, and since Marc was into compilers, he put together a C-like macro language with which you could program the editor. The editor was called ME, short for Magma Editor. The unique thing about this editor was that it came with full source code, the first commercial text editor to be marketed that way. Advertisements in magazines like Dr. Dobbs Journal and Computer Languages followed, and the editor was launched to an unsuspecting public.
So now, Magma Systems was born. It consisted of Marc doing his Goldman Sachs gig during the day, and packing boxes full of editors and word processors at night. And, occasionally fielding the tech support call from Europe at 3AM in the morning... people who had no idea that the clocks were different when you crossed over the Atlantic.
The best is yet to come....
©2005 Marc Adler - All Rights Reserved
Marc was a Unix hack at that time.... even though he wrote a word processor (and, also, a spreadsheet for Unix, WPSpread), he loved ready through line upon line of the Unix kernel.
A small but growing company based on Long Island came a callin' .. their name was Computer Associates. Fresh off their buyout of SuperCalc, they were trying to come up with a window and application management system for all of their future applications. You see, CA envisioned themselves at the time as a software development company, even though very few things (if any) were developed by them. Marc was interested in the notion of working on this project, but he would have to do it all on the IBM PC and MS-DOS! (By the way, the window manager project was cancelled on the day that Microsoft announced Windows...)
Marc took the challenge.... and in the process, ported the word processor over to DOS. However, there was no marketing organization set up to sell the beast. At the time, a movement called Shareware had just gotten underway, and had some momentum. So, Marc decided to release the word processor as a shareware product, selling it for $35 a copy and renaming it "New York Word" (to give it sort of an urban feel).
The word processor did very well in the shareware marketplace, selling several thousand copies. The initial price was $35, but Marc, who was now doing Windows consulting on Wall Street, tried to dissuade people from buying it by raising the price to $47. That only convinced people that the product was now $12 better than it was before.
The largest shareware distributor at the time was an organization called PC-SIG. They decided to embark on a big marketing campaign by highlighting several shareware program. The gist of the ads was to draw a characterture of the author of the program, write a little blurb, and show off the ad in magazines like PC Magazine and PC World. So, if you have old copies around, you can find a drawing of Marc with an elongated face and a lot more hair than he has now!
Now that Marc had a word processor, he needed a nice text editor to go along with it. So, New York Word was stripped down, several programmer-friendly features were added, and since Marc was into compilers, he put together a C-like macro language with which you could program the editor. The editor was called ME, short for Magma Editor. The unique thing about this editor was that it came with full source code, the first commercial text editor to be marketed that way. Advertisements in magazines like Dr. Dobbs Journal and Computer Languages followed, and the editor was launched to an unsuspecting public.
So now, Magma Systems was born. It consisted of Marc doing his Goldman Sachs gig during the day, and packing boxes full of editors and word processors at night. And, occasionally fielding the tech support call from Europe at 3AM in the morning... people who had no idea that the clocks were different when you crossed over the Atlantic.
The best is yet to come....
©2005 Marc Adler - All Rights Reserved
Friday, October 28, 2005
Flying to BTV
Supposed to be a beautiful day on Saturday. Taking the Cessena 172 up to Burlington, Vermont. I think it's too late in the year to experience the full Vermont foliage from the air, but nevertheless, a beautfil flight up the Hudson! Coming back at night, so I get to put in some required nighttime flying hours.
©2005 Marc Adler - All Rights Reserved
©2005 Marc Adler - All Rights Reserved
Tuesday, October 25, 2005
Dueling Household
My wife, the superstar Wharton grad who walks on water, started at a new client yesterday. She is managing a large team doing a rewrite of an existing credit derivatives system for a Tier-1 financial powerhouse who is not the same Tier-1 that I am currently consulting for.
Their technology is 100% Java.... not surprising, since all of the architecture has been done by a very Java-centric major consulting firm.
Dinner conversation should be very interesting for the next few months.....
©2005 Marc Adler - All Rights Reserved
Their technology is 100% Java.... not surprising, since all of the architecture has been done by a very Java-centric major consulting firm.
Dinner conversation should be very interesting for the next few months.....
©2005 Marc Adler - All Rights Reserved
Monday, October 24, 2005
A Scrumptous Meal
Finetix is holding a Breakfast Seminar on Scrum. This is from my colleague's blog:
In association with Ken Schwaber, we are holding a Breakfast Seminar on Nov 30th 2005 in mid town Manhattan, This 2-hour session is targeted to business and IT professionals working in Wall Street. The team of the breakfast is introduction to Scrum with examples and Case Studies of client projects and experiences. If you are interested in attending, please register by sending an email to: marketing@finetix.com
©2005 Marc Adler - All Rights Reserved
In association with Ken Schwaber, we are holding a Breakfast Seminar on Nov 30th 2005 in mid town Manhattan, This 2-hour session is targeted to business and IT professionals working in Wall Street. The team of the breakfast is introduction to Scrum with examples and Case Studies of client projects and experiences. If you are interested in attending, please register by sending an email to: marketing@finetix.com
©2005 Marc Adler - All Rights Reserved
Sunday, October 23, 2005
New Project Starts
Monday, Oct 24 is the start of a new project. The reengineering of a credit derivatives workstation for a tier-one bank.
We will try to introduce Scrum to the New York office of this bank. I think that they will be receptive towards it, given the success of our counterparts in the London office.
.NET front-end, Java middle-tier, Sybase database. Web Services between the tiers.
This is the second major project that I will be involved with that involves a Java middle tier. At least .NET seems to be getting some major traction within financial services. I just hope that Microsoft doesn't mess things up too badly when they introduce Visual Studio .NET 2005. I have read internal reports from Microsoft employees that claim that VS 2005 is a dog.
Too bad that WCF has not been back-ported to .NET 1.1. We could probably use it on this project for some of the workflow components. We are probably going to look at NxBRE and JxBRE for a cross-platform rules engine.
Wish us luck.
©2005 Marc Adler - All Rights Reserved
We will try to introduce Scrum to the New York office of this bank. I think that they will be receptive towards it, given the success of our counterparts in the London office.
.NET front-end, Java middle-tier, Sybase database. Web Services between the tiers.
This is the second major project that I will be involved with that involves a Java middle tier. At least .NET seems to be getting some major traction within financial services. I just hope that Microsoft doesn't mess things up too badly when they introduce Visual Studio .NET 2005. I have read internal reports from Microsoft employees that claim that VS 2005 is a dog.
Too bad that WCF has not been back-ported to .NET 1.1. We could probably use it on this project for some of the workflow components. We are probably going to look at NxBRE and JxBRE for a cross-platform rules engine.
Wish us luck.
©2005 Marc Adler - All Rights Reserved
Friday, October 21, 2005
My favorite new tool - RSS Aggregator
This is going to make it a lot easier to keep abreast of all of the blogs.....
RSS Bandit
Curse you, Finetix, for getting me into the blogsphere!!!
©2005 Marc Adler - All Rights Reserved
RSS Bandit
Curse you, Finetix, for getting me into the blogsphere!!!
©2005 Marc Adler - All Rights Reserved
Smart Meat Escapes
Ward Cunningham has left Microsoft for the Open Source world. He is moving over to Eclipse.org. This is certainly going to be felt in Microsoft's Patterns and Practices group.
©2005 Marc Adler - All Rights Reserved
©2005 Marc Adler - All Rights Reserved
Wednesday, October 19, 2005
Pair Programming
There is a camp at Finetix that advocates the concept of Pair Programming. I am not convinced, having seen it fail miserably at a former client. However, with a number of people at Finetix having been successful at PP, I am willing to give it another try.
I wonder how much PP has taken hold at CapMarkets companies. Not much, I would think. If you have experience with PP, both positive and negative, I would love to hear it.
All I know is that my programming partner had better use spaces and an indentation level of 2 :-)
©2005 Marc Adler - All Rights Reserved
I wonder how much PP has taken hold at CapMarkets companies. Not much, I would think. If you have experience with PP, both positive and negative, I would love to hear it.
All I know is that my programming partner had better use spaces and an indentation level of 2 :-)
©2005 Marc Adler - All Rights Reserved
Pair Interviewing
We have started to do pair interviewing in my current job. One of the best interviews that I ever had was a CSFB, where I was in a room with 6 people for a 2 hour grilling. One person would ask a question, I would answer, then another person would pick up on that thread and delve deeper.
I am certainly an advocate of team interviews... for some reason, I think that it is less stressful for a candidate to be in a room with several people, realizing that he does not have to bounce from person to person, giving the same recap of his career over and over again. It also gives the interviewers a chance to feed off of eachother, and to see how the other person conducted interviewing at other jobs. Between my colleague and I, we have probably interviewed 500 .NET candidates over the past few years.
Interviewing hint of the day - If you are a .NET developer, please know what a ViewState is.
©2005 Marc Adler - All Rights Reserved
I am certainly an advocate of team interviews... for some reason, I think that it is less stressful for a candidate to be in a room with several people, realizing that he does not have to bounce from person to person, giving the same recap of his career over and over again. It also gives the interviewers a chance to feed off of eachother, and to see how the other person conducted interviewing at other jobs. Between my colleague and I, we have probably interviewed 500 .NET candidates over the past few years.
Interviewing hint of the day - If you are a .NET developer, please know what a ViewState is.
©2005 Marc Adler - All Rights Reserved
Just who do you think you are! (Part 2)
While doing my PHD studies at NYU, I was teaching computer science at Baruch College (part of the City University of New York system). I bumped into one of my old college buddies in the halls.... he was going for his MBA at Baruch. He told me that he and two friends were going to quit ValueLine and form their own company. He wanted to know if I might be interested in writing one of the first word processors for Unix.... I would write it, they would market it, and we would share the profits. Sounds good.
So, after about 7 months of slaving over my dining room table with my trusty Zenith CRT and 300 baud modem, I managed to crank out a respectable word processor.... Initially named WPScribe. We showed the product at the very first Unix Expo in New York in October of 1984.
The newly formed company did not last long. The profits that we made were consumed by the founders on the excesses of the 1980's. This left me without a marketing arm for my word processor (which, thankfully, I had the foresight to copyright in my name).
What would become of Marc and his word processor? Stay tuned for more...
Copyright ©2005 Marc Adler - All Rights Reserved
So, after about 7 months of slaving over my dining room table with my trusty Zenith CRT and 300 baud modem, I managed to crank out a respectable word processor.... Initially named WPScribe. We showed the product at the very first Unix Expo in New York in October of 1984.
The newly formed company did not last long. The profits that we made were consumed by the founders on the excesses of the 1980's. This left me without a marketing arm for my word processor (which, thankfully, I had the foresight to copyright in my name).
What would become of Marc and his word processor? Stay tuned for more...
Copyright ©2005 Marc Adler - All Rights Reserved
Tuesday, October 18, 2005
I am playing marimba on November 26
If you are around Maplewood, New Jersey on November 26....
I will be playing marimba on Mark Asch's Rondo for 13 Musicians on this concert:
November 26, 2005 at 8PM
Music Composed by Mark Asch and Joseph Trapanese
MACS is a new series that celebrates local composers. Each evening will present music composed (and in some cases performed) by 2 composers, who will be in attendance at the performance to discuss the pieces being peformed. MACS is funded in part through Meet the Composer’s Creative Connections Program.
©2005 Marc Adler - All Rights Reserved
I will be playing marimba on Mark Asch's Rondo for 13 Musicians on this concert:
November 26, 2005 at 8PM
Music Composed by Mark Asch and Joseph Trapanese
MACS is a new series that celebrates local composers. Each evening will present music composed (and in some cases performed) by 2 composers, who will be in attendance at the performance to discuss the pieces being peformed. MACS is funded in part through Meet the Composer’s Creative Connections Program.
©2005 Marc Adler - All Rights Reserved
Just who do you think you are!
My trip through the world of IT has been a long and strange one. Some of you have wondered about the man behind the curtain. I will attempt to give some of the bullet points of my 20 year career in IT, a tiny bit at a time.
Here we go.. first installment....
1) Education
PS 117 - Briarwood, Queens
JHS 217 - Briarwood, Queens
Stuyvesant High School - NYC
(BS) State Univ of New York at Albany - double major in CompSci and Music
(MS) University of Arizona - Tucson, Az
(post grad work) - Courant Institute of Mathematics, New York University
The post-grad work was actually an attempt to get my doctorate in Computer Science, but NYU turned out to be a terribly wrong choice of schools. I was saddled with an advisor who had not published in 20 years. I saw that most of the PHD students had been there for 5 years or more, and I did not want to be free labor for a non-publishing professor. So, I bolted...
...Part 2 next
Here we go.. first installment....
1) Education
PS 117 - Briarwood, Queens
JHS 217 - Briarwood, Queens
Stuyvesant High School - NYC
(BS) State Univ of New York at Albany - double major in CompSci and Music
(MS) University of Arizona - Tucson, Az
(post grad work) - Courant Institute of Mathematics, New York University
The post-grad work was actually an attempt to get my doctorate in Computer Science, but NYU turned out to be a terribly wrong choice of schools. I was saddled with an advisor who had not published in 20 years. I saw that most of the PHD students had been there for 5 years or more, and I did not want to be free labor for a non-publishing professor. So, I bolted...
...Part 2 next
Friday, October 14, 2005
Thoughts on the Interview Process
I have probably interviewed about 200 people alone in the past year for positions.
Since I usually join a company at a technical manager/team lead level, and hence, I am in a position to hire people for various positions within my teams, here are my thoughts about how I envision the ideal interviewing process:
1) Make sure that candidates are adequately screened. I spent the other day interviewing a candidate who could not write an event handler for me. Candidates should be given a test before speaking to a technical resource within my company.
a) Regarding tests: Multiple-choice questions that deal with nuances of syntax are usually a poor indicator of a candidate's analytical and interpersonal skills. That being said, it takes time to grade each test. A multiple choice test is easy for our recruiters to grade, whereas giving a test with more subjective questions can consume time for our technical resources to grade.
We can certainly use a combination of the two.
Each of the senior .NET resources in a company should decide on the 10 questions that we would most like to see a candidate answer. Every candidate knows how to write a singleton by now. We need to test their experience with real-world coding situations.
2) Once a person has performed adequately on the test, he should be given a going-over by the HR staff for interpersonal skills. If I have a person on my team, I want that person to be articulate in a meeting... if a person cannot be understood easily, then he will be tuned out by other people in the meeting. I don't want any shrinking violets on my team. I want someone who can defend his ideas in front of a committee. I would like a person who will tell me to bugger off if I am completely wrong in my architecture. I would also like to be able to take a person out for a martini after work to unwind!
3) After passing through this step, then they should be passed on to a junior .NET technical resource for a perfunctory interview. This would be a test of the candidate's knowledge of .NET and C# syntax and concepts. I want all questions to reflect real-world experience.
4) After passing through the junior resource, the candidate should then be given to the senior .NET resource who is likely to manage the candidate on his first project. When I was hiring .NET resources in my previous job, I mandated that the candidate should be checked out by two .NET resources before getting to me.
5) The candidate should then be given to one of the senior business managers for a final fitness check.
We are all exhausted after a day of work, and none of us are in the mood to interview. We get easily irritated when we interview candidates who have no business being there. We get easily irritated if we have to work hard to understand what the candidate is saying.
What I want to ensure is that any company that I work for has the highest caliber to people in its employ.
©2005 Marc Adler - All Rights Reserved
Since I usually join a company at a technical manager/team lead level, and hence, I am in a position to hire people for various positions within my teams, here are my thoughts about how I envision the ideal interviewing process:
1) Make sure that candidates are adequately screened. I spent the other day interviewing a candidate who could not write an event handler for me. Candidates should be given a test before speaking to a technical resource within my company.
a) Regarding tests: Multiple-choice questions that deal with nuances of syntax are usually a poor indicator of a candidate's analytical and interpersonal skills. That being said, it takes time to grade each test. A multiple choice test is easy for our recruiters to grade, whereas giving a test with more subjective questions can consume time for our technical resources to grade.
We can certainly use a combination of the two.
Each of the senior .NET resources in a company should decide on the 10 questions that we would most like to see a candidate answer. Every candidate knows how to write a singleton by now. We need to test their experience with real-world coding situations.
2) Once a person has performed adequately on the test, he should be given a going-over by the HR staff for interpersonal skills. If I have a person on my team, I want that person to be articulate in a meeting... if a person cannot be understood easily, then he will be tuned out by other people in the meeting. I don't want any shrinking violets on my team. I want someone who can defend his ideas in front of a committee. I would like a person who will tell me to bugger off if I am completely wrong in my architecture. I would also like to be able to take a person out for a martini after work to unwind!
3) After passing through this step, then they should be passed on to a junior .NET technical resource for a perfunctory interview. This would be a test of the candidate's knowledge of .NET and C# syntax and concepts. I want all questions to reflect real-world experience.
4) After passing through the junior resource, the candidate should then be given to the senior .NET resource who is likely to manage the candidate on his first project. When I was hiring .NET resources in my previous job, I mandated that the candidate should be checked out by two .NET resources before getting to me.
5) The candidate should then be given to one of the senior business managers for a final fitness check.
We are all exhausted after a day of work, and none of us are in the mood to interview. We get easily irritated when we interview candidates who have no business being there. We get easily irritated if we have to work hard to understand what the candidate is saying.
What I want to ensure is that any company that I work for has the highest caliber to people in its employ.
©2005 Marc Adler - All Rights Reserved
Tuesday, October 11, 2005
The Night of the Living Config Files
My colleague Pinakin blogged today about config file hell in his project.
This brought a chuckle to me. We went through precisely the same thing at the last project. For one part of our system, we were forced to use a framework that was built by an outside consulting firm that had done some work for my client, a big financial powerhouse. This framework used the service locator paradigm to manage services. Each service had its own XML-based config file, complete with the absolute paths to all of the various DLLs encoded. This outside company also had the nasty habit of changing the namespaces of the various assemblies with each major release of the framework. Needless to say, every major release brought some headaches on our side as we scrambled to find all of the various assemblies that were no longer loading.
We saw some mistakes in the implementation of this outside framework. If you are writing systems that use the service locator pattern, there are some things that you need to be aware of.
1) Sequencing. Certain services must be loaded before others if there are dependencies between services. For example, if you have a logging service, and this logging service uses an exception-handling service if the log file cannot be created, then the exception handling service must be loaded in prior. A mistake that this framework made was to read all of the service agent configuration info into a hashtable and then iterate through the hashtable to instantiate each service. Well, hashtables are iterated in a quasi-random fashion, so you can certainly run into sequencing issues as you instantiate each service.
2) Default behavior. If a "non-crucial" service cannot be loaded, do you abort the program? For example, if the logging service cannot be loaded, just turn off logging (unless the business requirements are such that logging must be always functional due to auditing rules). Do something reasonable if as service cannot be loaded. Don't just come back with a cryptic error message. I have spent more time tracing Assembly.Load() errors than I care to imagine.
This brought a chuckle to me. We went through precisely the same thing at the last project. For one part of our system, we were forced to use a framework that was built by an outside consulting firm that had done some work for my client, a big financial powerhouse. This framework used the service locator paradigm to manage services. Each service had its own XML-based config file, complete with the absolute paths to all of the various DLLs encoded. This outside company also had the nasty habit of changing the namespaces of the various assemblies with each major release of the framework. Needless to say, every major release brought some headaches on our side as we scrambled to find all of the various assemblies that were no longer loading.
We saw some mistakes in the implementation of this outside framework. If you are writing systems that use the service locator pattern, there are some things that you need to be aware of.
1) Sequencing. Certain services must be loaded before others if there are dependencies between services. For example, if you have a logging service, and this logging service uses an exception-handling service if the log file cannot be created, then the exception handling service must be loaded in prior. A mistake that this framework made was to read all of the service agent configuration info into a hashtable and then iterate through the hashtable to instantiate each service. Well, hashtables are iterated in a quasi-random fashion, so you can certainly run into sequencing issues as you instantiate each service.
2) Default behavior. If a "non-crucial" service cannot be loaded, do you abort the program? For example, if the logging service cannot be loaded, just turn off logging (unless the business requirements are such that logging must be always functional due to auditing rules). Do something reasonable if as service cannot be loaded. Don't just come back with a cryptic error message. I have spent more time tracing Assembly.Load() errors than I care to imagine.
Finally ... Bought a Laptop
Finally ordered by laptop. I was originally going for the Asus Z71V, but got talked into the Z70VA. It's a half-pound lighter that the Z71V, and has that fantastic-looking chasis. Here is what the configuration looks like:
Star (Asus) Z70VA
System + Carrying Case + AC Adapter
Z70Va CARBON FIBER COMPOSITE CHASSIS W/ 15.4in. WSXGA+ / 128MB ATI X700
Optical Drive Z70VA DVD/RW
Intel Pentium M 760 Processor 2.00 GHz W/ 2MB CACHE/ 533fsb
2GB DDR2 533MHz SO-DIMM
Mobile 100G 5400rpm hard drive
XP PRO
Intel 2915ABG Wireless Mini PCI NIC
This model got some great reviews on www.notebookreview.com.
Monday, October 10, 2005
Koders.Com
Interesting site... searches through .25 TB of source code (in a variety of languages).
http://www.koders.com/
http://www.koders.com/
Sunday, October 09, 2005
Laptop Redux - Asus
The Dell D810 that I am looking at wil cost me $2674, including $150 for sales tax and $24 for "handling".
A former colleage has been using and recommending laptops built by a company called Asus. These are strinkingly beautiful notebooks, and according to my friend, are fairly rugged road warriors.
Asus are only sold through resellers. I priced out a system that is similar to the Dell D810, but with an upgrade to an Intel 760 M processor (the D810 that I chose comes with a 750). It was only $1950. Shipping is $14, and they do not charge tax.
I think I will get the Asus Z71V. It seems to be a popular model, and comes recommended on www.notebookreview.com.
A former colleage has been using and recommending laptops built by a company called Asus. These are strinkingly beautiful notebooks, and according to my friend, are fairly rugged road warriors.
Asus are only sold through resellers. I priced out a system that is similar to the Dell D810, but with an upgrade to an Intel 760 M processor (the D810 that I chose comes with a 750). It was only $1950. Shipping is $14, and they do not charge tax.
I think I will get the Asus Z71V. It seems to be a popular model, and comes recommended on www.notebookreview.com.
Friday, October 07, 2005
NHibernate
I am reading docs on NHibernate, an O/R mapper for .NET (it comes from Hibernate in the Java world). This is one of many O/R mappers available for .NET. The main impetus for learning NHibernate is that Hibernate seems to be the defacto standard on the other side of the fence. Since Finetix is a hybrid .NET/Java shop, I figure that I will come up against Hibernate eventually on our projects in the financial space.
I have been using a home-grown O/R layer for the past 2 years on all of my .NET projects. It uses custom attributes (as opposed to NHibernate's use of XML files) on classes and properties in order to generate calls for a back-end data provider. The providers can be SQL Server, Oracle, ODBC, OLE DB, and Tibco/JMS messaging.
The last project that I architected used an O/R mapper called Castor on WebLogic 8.1. It was recommended that I use Castor, as some people had trouble getting JaxB to work with WebLogic. And, I am happy to say that Castor worked out just fine on this project.
(What happened to Microsoft's ObjectSpaces?)
I have been using a home-grown O/R layer for the past 2 years on all of my .NET projects. It uses custom attributes (as opposed to NHibernate's use of XML files) on classes and properties in order to generate calls for a back-end data provider. The providers can be SQL Server, Oracle, ODBC, OLE DB, and Tibco/JMS messaging.
The last project that I architected used an O/R mapper called Castor on WebLogic 8.1. It was recommended that I use Castor, as some people had trouble getting JaxB to work with WebLogic. And, I am happy to say that Castor worked out just fine on this project.
(What happened to Microsoft's ObjectSpaces?)
Mini-Microsoft
I must have my head up my rectum to have not noticed the Mini-Microsoft blog that is causing such a sensation. My Finetix colleague, Matt, keeps me on my toes with all of the great sites that he mentions in his blog. I had no idea of all of the negative feelings about MS from within its ranks.
For the record, I did consulting for Microsoft back in the late 1980's and early 90's, even being a contributing editor for their MSJ magazine for a while. Even back then, Microsoft was fairly cheap with the buck. They liked to work off of fixed-price contracts, and tried to get me to put in more functionality under the radar screen (ie: more features for no money). However, it was great to be involved with Microsoft during the salad days.
However, writing for MSJ was a different story. Great rates for articles. Plus, Tony Rizzo and Eric Maffei used to treat the NYC-based writers like royalty. I even got to have dinner with Bill Gates (more on that in a later posting). What a great crew of people! Charles Petzold, Ross Greenberg, and Greg Comeau. Miss you guys!
For the record, I did consulting for Microsoft back in the late 1980's and early 90's, even being a contributing editor for their MSJ magazine for a while. Even back then, Microsoft was fairly cheap with the buck. They liked to work off of fixed-price contracts, and tried to get me to put in more functionality under the radar screen (ie: more features for no money). However, it was great to be involved with Microsoft during the salad days.
However, writing for MSJ was a different story. Great rates for articles. Plus, Tony Rizzo and Eric Maffei used to treat the NYC-based writers like royalty. I even got to have dinner with Bill Gates (more on that in a later posting). What a great crew of people! Charles Petzold, Ross Greenberg, and Greg Comeau. Miss you guys!
Wednesday, October 05, 2005
Free FIX Message Engine for .NET
Anyone doing FIX messaging? Need a free FIX engine for .NET? Need source? Then look at QuickFix.
(Looks like the boys from ThoughtWorks are involved to some degree with QuickFix.)
If you are involved in FIX or building ECNs, you may be interested in the free FIX Journal. All of the back issues are archives online in PDF format.
(Looks like the boys from ThoughtWorks are involved to some degree with QuickFix.)
If you are involved in FIX or building ECNs, you may be interested in the free FIX Journal. All of the back issues are archives online in PDF format.
Tuesday, October 04, 2005
SQL Server 2005 Service Broker
Yesterday, I watched an MSDN webcast on the new Service Broker in SQL Server 2005. Sounds like an interesting feature which could possibly take some business away from Tibco for small to medium sized apps. Here is how Microsoft describes it:
With Service Broker, a feature in Microsoft SQL Server 2005, internal or external processes can send and receive guaranteed, asynchronous messages by using extensions to Transact-SQL Data Manipulation Language (DML). Messages can be sent to a queue in the same database as the sender, to another database in the same SQL Server instance, or to another SQL Server instance either on the same server or on a remote server.
Previously, in order to get notifications from SQL Server, you had to rely on something like SQL Notification Services. I am glad to see that async messaging has been promoted to a first class citizen within SQL Server.
Where can you use something like the Service Broker?
Assume that, in an organization, your Windows Smart Client app needs to be informed when certain reference data has changed in a legacy database. For example, let's say that your desktop app needs to be informed when PeopleSoft adds a new employee to the HR database. If the backend database is SQL Server 2005, then you can use the Service Broker to push async messages out to a message broker on the server. The server can then transform the message and broadcast it to interested clients.
This kind of architecture is ideal for applications that rely on server-push technology and smart caching on each client. With this kind of system, each client maintains its own cache of reference data and only gets notified of deltas to the reference data.
With Service Broker, a feature in Microsoft SQL Server 2005, internal or external processes can send and receive guaranteed, asynchronous messages by using extensions to Transact-SQL Data Manipulation Language (DML). Messages can be sent to a queue in the same database as the sender, to another database in the same SQL Server instance, or to another SQL Server instance either on the same server or on a remote server.
Previously, in order to get notifications from SQL Server, you had to rely on something like SQL Notification Services. I am glad to see that async messaging has been promoted to a first class citizen within SQL Server.
Where can you use something like the Service Broker?
Assume that, in an organization, your Windows Smart Client app needs to be informed when certain reference data has changed in a legacy database. For example, let's say that your desktop app needs to be informed when PeopleSoft adds a new employee to the HR database. If the backend database is SQL Server 2005, then you can use the Service Broker to push async messages out to a message broker on the server. The server can then transform the message and broadcast it to interested clients.
This kind of architecture is ideal for applications that rely on server-push technology and smart caching on each client. With this kind of system, each client maintains its own cache of reference data and only gets notified of deltas to the reference data.
Dell Laptop Reduction
About two weeks ago, I was shopping around for a laptop that I could use for development. I settled on the powerhouse Dell Latitude D810. With all of the options that I wanted for the system, the price tag came out to a whopping $2680.
I left the item in my cart for a few weeks, hoping for a discount to appear on the system.
Lo and behold... when I checked my cart this morning, Dell gave me a $180 discount off of my laptop.
Which got me to thinking....
If you price out a system from Dell and leave it in your shopping cart for a while, will Dell automatically discount it after a few weeks in order to motivate you to buy? Or, is it just coincidence that they gave me a $180 discount to round down my final cost to an even $2500?
I left the item in my cart for a few weeks, hoping for a discount to appear on the system.
Lo and behold... when I checked my cart this morning, Dell gave me a $180 discount off of my laptop.
Which got me to thinking....
If you price out a system from Dell and leave it in your shopping cart for a while, will Dell automatically discount it after a few weeks in order to motivate you to buy? Or, is it just coincidence that they gave me a $180 discount to round down my final cost to an even $2500?
Aeroflex Airport
New Scams With Body Shops
Almost all of the independent consultants that I know go through brokers (aka "body shops") for their work. These places find you work, and take anywhere from 10% to 50% of your daily rate for their commission. In the times that I have contracted out through brokers, I have never had a problem getting paid. The best of the shops took 12% off the top for their commission, and they paid exactly on time.
From what I have been hearing, there is an alarming trend amongst bodyshops now, especially with the brokers that concentrate on workers with H1B visas. The trend is to not pay the final bill that the consultants submit.
Many H1B consultants do not have the facilities to persue these consulting firms. If the amount owed is undr $5000, then they can go to Small Claims Court, but the wait is at least several months. If the amount is large, then a lawyer will have to persue the claim in Civil Court, and usually the amount that the lawyer receives out of the deal (a 30% cut) will not justify the attorney's time.
My brother-in-law is a lawyer in New Jersey, and he told me that the frequency is increasing in the number of these type of cases. He advises one thing - do not sign an arbitration clause in your contract. It will cost you upwards of $10,000 to bring a matter before an arbitrator, and there is no provision in the law to recoup the money spent on arbitration. So, it is likely that you might spend more money on the arbitration process that the monies that you recoup from the consulting firm.
Another thing to be aware of --- be careful of brokers who only call you from cell phones. Make sure that the broker has an actual, physical office that you can visit. My guess is that some brokers are using commission-based freelancers to pour over resumes on Dice. Several times per day, I get a call from some lady named Smitha or Geeta who is on a cellphone and asking me if I want to work in Cleveland for $35 an hour. You can be sure that these people will take at least $5 an hour from your rate.
I am a full-time employee of my consulting firm. In these times, it feels safer that way!
From what I have been hearing, there is an alarming trend amongst bodyshops now, especially with the brokers that concentrate on workers with H1B visas. The trend is to not pay the final bill that the consultants submit.
Many H1B consultants do not have the facilities to persue these consulting firms. If the amount owed is undr $5000, then they can go to Small Claims Court, but the wait is at least several months. If the amount is large, then a lawyer will have to persue the claim in Civil Court, and usually the amount that the lawyer receives out of the deal (a 30% cut) will not justify the attorney's time.
My brother-in-law is a lawyer in New Jersey, and he told me that the frequency is increasing in the number of these type of cases. He advises one thing - do not sign an arbitration clause in your contract. It will cost you upwards of $10,000 to bring a matter before an arbitrator, and there is no provision in the law to recoup the money spent on arbitration. So, it is likely that you might spend more money on the arbitration process that the monies that you recoup from the consulting firm.
Another thing to be aware of --- be careful of brokers who only call you from cell phones. Make sure that the broker has an actual, physical office that you can visit. My guess is that some brokers are using commission-based freelancers to pour over resumes on Dice. Several times per day, I get a call from some lady named Smitha or Geeta who is on a cellphone and asking me if I want to work in Cleveland for $35 an hour. You can be sure that these people will take at least $5 an hour from your rate.
I am a full-time employee of my consulting firm. In these times, it feels safer that way!
Monday, October 03, 2005
ScrumWorks
Finetix is a major player in the Scrum community. Scrum is a methodology of software development that has its roots in Agile/XP. One thing that we are trying to do is promote the use of Scrum within the Wall Street community. It will be an uphill climb, given the extreme politcal nature of most financial shops.
My new team is going to use Scrum in order to develop the new system. Finetix colleague Matt posted about a tool called ScrumWorks that is used for tracking Scrum-based development.
http://danube.com/scrumworks/
They have a free evaluation license for 60 days, and you can request a free license after the 60 day period.
(Standard disclaimers apply .. no, I am not a shill for this company, merely an interested evaluator)
My new team is going to use Scrum in order to develop the new system. Finetix colleague Matt posted about a tool called ScrumWorks that is used for tracking Scrum-based development.
http://danube.com/scrumworks/
They have a free evaluation license for 60 days, and you can request a free license after the 60 day period.
(Standard disclaimers apply .. no, I am not a shill for this company, merely an interested evaluator)
New Jersey Code Camp
The very first New Jersey Code Camp is taking place on October 15, 2005 at the Microsoft and IBM Consulting offices in Edison. Complete and total geek-out for the entire day!
http://www.njcodecamp.org/
See you there?
http://www.njcodecamp.org/
See you there?
Sunday, October 02, 2005
Best WinForms Control Suite?
I have been dying to use the new Microsoft Composite Application Block (CAB) in my new architecture. Unfortunately, it's only geared for .NET 2.0.
While browsing the CAB forums, I came upon this thread:
http://www.gotdotnet.com/codegallery/messageboard/thread.aspx?id=22f72167-af95-44ce-a6ca-f2eafbf2653c&mbid=c09776ca-f94c-4c83-a80c-75d381cabdd6&threadid=c8c5f320-5d5f-4906-b727-afce8e724e62
It seems that the DevExpress suite of controls has a pretty enthusiatic following. I have only used Infragistics and Syncfusion in applications that I have architected. Looks like I will have to check out DevExpress as well.
While browsing the CAB forums, I came upon this thread:
http://www.gotdotnet.com/codegallery/messageboard/thread.aspx?id=22f72167-af95-44ce-a6ca-f2eafbf2653c&mbid=c09776ca-f94c-4c83-a80c-75d381cabdd6&threadid=c8c5f320-5d5f-4906-b727-afce8e724e62
It seems that the DevExpress suite of controls has a pretty enthusiatic following. I have only used Infragistics and Syncfusion in applications that I have architected. Looks like I will have to check out DevExpress as well.
Subscribe to:
Posts (Atom)