Blog dedicated to Distributed Development on .NET, other .NET related technologies and developer issues.
Friday, April 09, 2010
Optional Parameters in C#
Technological Pedigree.
http://weblogs.asp.net/scottgu/archive/2010/04/02/optional-parameters-and-named-arguments-in-c-4-and-a-cool-scenario-w-asp-net-mvc-2.aspx
Welcome C# snobs!
Delly
Rugby Scrum vs Agile SCRUM
The goal of a Rugby team (15 players) is to move a ball from one end of the pitch to the other end (similar to American Football) and plant the ball in the end zone to score. Individualism isn't a big theme in that game. It requires all players working together to move the ball down the pitch. What is a Rugby Scrum?
There's one particular part of the game called a Scrum where 7 players bind together, put the ball in the midst of them, push the opposing teams back whilst advancing the ball forward between their legs. The stronger scrum team would win that battle and would be one of the main contributors to a successful match.
I thought this was about computers? Whilst the origins of the concept of Scrum for Agile is debatable the similarities between the concept in Rugby is eerily similar.
Agile Scrum teams must be Self Organizing. Similar to their counterparts on the Rugby pitch, the clock doesn't stop, there are no time outs, if the coach has some advice he can shout it from the sideline or hand gestures but that's it, the players need to figure out how to adjust to the situation on the ground. What are some attributes of a good Self Organizing team?
1. Communication - teams need to be able to share ideas, concerns or general feelings in a free and easy way. A member of a scrum team should not be afraid to say what they need to say.
2. Everyone's contribution is critical - decisions are made via collaboration with all team members, generally decisions are a consensus from team members.
3. Everyone must see the vision of the project and focus - if the team members don't get where we're going and focus then we won't get there well, people need to have that focus and determination to get the job done and doing it well.
4. Must be co-located - having all these guys in the same room is critical and having lots of whiteboards too. Self organizing teams talk a lot, the need to have a space where they probably won't disrupt other teams. It's also critical that these team members bond, I don't think it can be stressed enough, after a while, strong bonds will develop among the team and you'll have a solid gelled team!
There are probably more I could think of, but this is from my experience.
Delly
Saturday, April 03, 2010
Linq Queries with optional parameters
So here's what I did
IQueryable
personQuery = from obj in ObjectScope.Extent
select obj;
if (firstName != null)
personQuery = personQuery.Where(person => person.FirstName == firstName);
if (lastName != null)
personQuery = personQuery.Where(person => person.LastName == lastName);
if (middleName != null)
personQuery = personQuery.Where(person => person.MiddleName == middleName);
if (ssn != null)
personQuery = personQuery.Where(person => person.SSN == ssn);
if (city != null)
personQuery = personQuery.Where(person => person.CurrentAddress.City == city);
IList
This is the easy way to do it. I'll show you more advanced ways later.
Saturday, May 30, 2009
Tuesday, December 30, 2008
Depends on whose hands it's in - Technological Pedigree
So for this post it's all about the movers and changers in technology, the people who's word matters and with one speech can transform/shape the thoughts of others.
During my years as a developer and growing into other roles such as Snr Developer and team lead, I've been faced with many technical challenges and have proposed many solutions to solving complex business problems, many solutions sad to say have been rejected by peers and superiors who wouldn't support them because of my technological pedigree. What I would always find interesting is that a rep from Microsoft could call, propose the very same thing (without much details) and management would buy in. Why is this? What is this pedigree I refer to?
In my mind, this Pedigree comes from, being there and doing that at the highest level. Many times you really can't earn the adoration and respect from your management teams with emerging technologies and concepts unless you've had a track record with those technologies and/or concepts. In my case it was the Service Oriented Architecture I had proposed to implement in the business to encourage consumption by different business applications. I had conceptualized a subscriber model managed my the support services department which would allow different applications to subscribe to services in this architecture and consume same.
So what are some of the things I've learn't to develop this "pedigree"
1. Study to shew thyself approved, a workman needeth not to be ashamed, rightly dividing the word of truth. - You have to know your stuff and know it well. Know the other guy's stuff too and it'll serve you well. :)
2. Incline thine ear unto wisdom, and apply thine heart to understanding - knowing alone won't do it but understanding how to apply your knowledge is more important. WCF is really cool technology, but what does it mean for businesses?
3. For by wise counsel thou shalt make thy war: and in multitude of counselors there is safety - Seek guidance from those who have been there, done that and have the "pedigree". Don't be too anxious to go it alone.
4. A man's gift maketh room for him, and bringeth him before great men - Don't be a butt kisser! No one can keep down a rising star.
Oh, how did this come up...Anders Hejlsberg added optional parameters to C# and there was a big discussion as to the importance or necessity to have optional parameters. Now the thought is, if someone from our team had suggested it, everyone would have said "Naw...don't neeed it..." but Anders said it...again... depends on whose hand it's in or in this case mouth :)
Delton
Tuesday, April 01, 2008
Talking to the Next Generation
We spoke about the SDLC and variations thereof, it was pretty interesting interacting with these bright, beautiful young ladies. Oh to be young again :-).
In one of our discussions, we spoke about agile software development methodology. That was interesting for me as I realised that as students working in a lab, they do practice alot of the agile methods of development e.g. peer programming.
We went on to talk about the advantages of object oriented over procedural while touching on the benefits of runtime environments such as Microsoft's .NET Framework and Sun's Java Runtime Environment.
At the end, these students gave me a nice fruit basket. I'm enthused and would really love to go back there and hopefully this time help them with their Java assigments.
Monday, April 30, 2007
Microsoft Developer Day April-27-2007
Friday last was Microsoft's official Visual Studio developer day. It was a very interesting event covering topics such as VSTS, WPF, WF, Atlas and WCF.
I must first big up Reeza Ali - Architect Evangelist for the Caribbean for putting on this show. Please check out his blog, he has alot of goodies from the show there. http://reezaali.spaces.live.com/
It was a great turn out and i'm hoping that enough was done to spark their interests.
For all who were promised DVDs from MCSystems, i'm working on it (if you don't get it, torch me not my company). Many of you should receive it, if not this week next week :).
Also, we'll be sending our slides, code examples and links to Reeza so hopefully in a few days it'll be up on his blog for free download. Check out his blog now, he has some good stuff going on. I'll put up some links to our stuff soon. For those deep divers in the CLR and the .NET Framework check out Deveroux Martin's blog, there's a link on here to his, he's the technical guy @ MCS.
I'm hoping that we'll have the privelege of working with MS again on a seminar like this.
Let's not talk about cricket world cup....empty seats for a final and semi-final???
Dellendinho.
Thursday, November 16, 2006
Novell and Microsoft going out
Remember those days as a youngun when almost everyone had a girlfriend (gents) and everyone had a boyfriend (ladies). Oh youthful bliss when we'd go to the park and hold hands, or play in the maze...(awwwwww...the nice good old days).
Remember when Jason and Samantha the two guys who used to call each other ugly face and stinky pants became sweethearts and they were holding hands in the park and you're like "WHAT IN THE WORLD IS THIS!!??!!". It's like Materazzi and Zidane becoming bestfriends, George W. Bush and Hugo Chavez.
Well come forward 15 years and it's now Microsoft and Novell. Microsoft has agreed that they'll be promoting Novell's version of Linux, Suse, to enterprise customers who wish to have Linux in their environment. This came about after both parties agreed to make their OS' work together for the betterment of their enterprise customers such as HP and other big guys. They agreed this after being forced to do this by some of these said customers. What does all this mean, well for one Microsoft and Novell have vowed to share physical lab space with each company getting some of their best engineers collaborating to make the two OSs' work well together, reports from the Novell camp is that their engineers are excited at this venture, i'll have to check Channel9 to find out about the MS ones. Microsoft will actually be handing out coupons for SuSe Linux to their customers who want to have Linux in their environ!!!
On both the Novell and Microsoft sites you can see content of the agreement and some of the FAQ about this new relationship...
Novell and Microsoft have been batting eyelids at each other for sometime now. Novell has ported much of Microsoft's application development framework, the .NET Framework, thus creating a platform called Mono which allows developers to write .NET code to run on open-source platforms. Interestingly enough Microsoft wants nothing to do with Mono at this point in time or is it that they're just playing like they don't like the nerdy girl because they're afraid of what the rest of the team will say. Well even though they say they don't like her, she was at Microsoft's TechEd in Barcelona and in the limelight at that. Check out mono's homepage to find out more about mono.
For all you .NET junkies out there, suppose I told you Mono has covered more than 66% of Microsoft's .NET Framework. There are even implementations being worked on for .NET Framework 3.0. So they're not far behind.
WHERE WILL THIS LOVE AFFAIR END!!??!!??
(Sing with me)
Micro & Novvy sitting in a tree, K-I-S-S-I-N-G, first comes love, then comes marriage, then comes Novvy with a MS-Carriage. Normally when a man marries a woman, the woman loses her name...Mrs Novell-Microsoft??? Or just Mrs. Microsoft? What will the future hold???
HOLLER BACK!!!
Dellendinho
Saturday, October 28, 2006
Measuring Developer Productivity
This might be the cry of CIOs in many places, so they send their subordinates like India Jones searching for the "holy grail" to measure developer productivity or to find a way to do it. Is this a myth??? Is there really a grail? Can there really be a way to measure!!!?? (ta da da dahhh [that's like a movie sound when they find out the killer was really the sheriff and not the father]).
Well according maybe to some CIOs they have found it!!! (Drum roll please) (Drum Rolling) (Drum still rolling)...it is....
COUNTING LINES OF CODE (Scream, run for your lives...it's ABACUSZILLA [you better get a bigger ABACUS]). Oh wow, counting code... hmmm...sounds like something from the early days and IT IS!
Source Lines of COde (SLOC) came about during the time when the most common languages available were like FORTAN and assembler, they were all line based. It was during the time of puncha cards (main way to enter data for programming). One punch card usually represented one line of code, so naturally managers wanting to see then what the productivity was like for the day for emlployee joe was to count the number of lines. For this time, this was fine.
For CIOs chasing this dream still, they're raiding a lost ark, this methodlogy was lost along with the punch cards, so if you're interested in that, by a puhch card machine and let us cut the code there...(I wonder if I could get a webservice to run on a punch card).
COME INTO THE LIGHT
There are new better ways to measure developer productivity, for example using Visual Studio Team System (VSTS). VSTS allows CIOs, team leads, BAs etc to view developer productivity in many ways. VSTS allows the BA or Team Lead (depending on your structure) to put the software requirements in spreadsheet with budgeted times for EACH requirement and then assign it to a developer, this is ELECTRONICALLY done. At the end of the day, we measure task given vs completion or non completion. Here are some other items vSTS provides.
•My Work Items: This report provides a list of the work items that are assigned to the team member's alias. By using this report, each team member can quickly locate their work item assignments instead of trying to locate their assignments in either e-mail messages or through a team communication meeting.
•Active Bugs: This report provides a list of the bug type work items that are not yet closed. By using this report, project leads, testers, and developers have a real-time status of bugs as the bugs are resolved. This report provides a more efficient and collaborative platform for the bug workflow process.
•All Work Items: This report provides a list of all the work item types and provides the project manager with a complete listing of the work items that have been created in the project.
•Remaining Work: This report provides a chart that displays the remaining work sorted by date. This report is used by the project manager to perform resource leveling on remaining work items and to report the project status to stakeholders.
•Bug Rates: This report provides a chart that displays new, active, and resolved bug work items sorted by date. This report is used to provide metrics data for the consolidated status reports and to see if there are any patterns in bug occurrences.
•Work Items by Owner: This report provides information about each team member's work items sorted by owner. The project manager also uses this report to help perform resource leveling to distribute work item tasks evenly within the team.
These are just some of the benefits of new technology to not only measure productivity but also manage the development process.
So the next time someone wants to see your SLOC tell them to go to VSTS!
"Measuring programming progress by lines of code is like measuring aircraft building progress by weight." ~ Bill Gates.
Additional Links
http://en.wikipedia.org/wiki/Source_lines_of_code
Overview of Team System - http://msdn.microsoft.com/vstudio/teamsystem/reference/default.aspx
So what say you...VSTS or SLOC?
Dellendinho
Friday, October 20, 2006
Microsoft Certification for Project Managers
So what's the new name??? Ahh...It hasn't been decided yet but they will know pretty soon to coincide with an upcoming PMI conference.
So what do you all think, is microsoft certification in PM going to hold any water? Will it have the same requirements like PMI (x hours experience etc) before doing exams or will the dump trucks come in and mess up the exams...feedback people. Check out some links on the Microsoft and MCPMag website.
http://www.microsoft.com/presspass/features/2006/oct06/10-20project2007.mspx
http://www.mcpmag.com/news/article.asp?EditorialsID=1084
Dell
Monday, October 16, 2006
MSDN Solution Architecture for Banking Industry
http://msdn.microsoft.com/architecture/industry/finservs/banking/ has quite a bit that alot of banking architects would be interested in. The ones I found interesting are
- The Global Bank scenario - about designing, developing service oriented application. This gaves a strong overview of why you need a SOA to move forward. (There is also a video on the front page)
- IFX service orientation Study for payment processing (this one even comes with a demo) - financial interexchange standard. I would advise any banking solutions architect serious about SOA to read this document.
These both will have immediate impact on any adapting organization. Bon Apetite!
Dellendinho
Saturday, October 14, 2006
Keeping up with the Frameworks!
For the last 6 years of so, Microsoft have launched 3 different framework versions (1) .NET Framework 1 (2) .NET Framework 2 and (3) .NET Framework 3 (to be released soon) . http://en.wikipedia.org/wiki/.NET_Framework
The advice would be to get certified on all, as they're released, learn about them and get certified as early as possible. Makes sense right. That's if you were around when it just came out, but what if you've fallen behind (i.e. still coding in version 1.1 and haven't started on 2.0 yet) can that approach really work?
There's an issue circulating among my peers and that is, going forward, which frameworks and their supported technologies do I get certified on to be a marketable developer. In my opinion, get certified on all of them!
The logic for backward certification
Currently our company is pushing to do some new developments and this will be done on .NET Framework 3.0 (WCF) and some done in .NET Framework 2.0 whilst still maintaining tonnes of code we have currently in .NET Framework 1.1.
Companies may not have the funding to upgrade their stable applications to target different frameworks, so v1.1 might be around for a very long time and someone has to maintain it.
Microsoft has made the certification track clear for everyone. After completing the 3 exams required to become a Microsoft Certified Application Developer (MCAD) a developer can easily upgrade to the Microsft Certified Professional Developer (MCPD) by doing two additional exams.
In my opinion it's a quick path to the new versions whilst being very much in touch with the previous version. The key is to complete these ASAP and then be ready for the release of the new Microsoft exams on the newest framework.
Dellendinho