Thursday, December 2, 2010

Game Development Degree vs Computer Science Degree

Abouth to have or not to have a Degree I found a very interesting question to look at Game Development. I keep on thinking that in my personal point of view, well is needed to have a way to do things properly and save time instead on finding by your self. This is were a degree is useful, but there is nothing like experience, this makes academy a bit slower than real life issues on the frontdesk or de back office.

Friday, August 6, 2010

File.Copy method in C#



this is a quick example of how to use the copy method of the System.IO namespace

using System;
using System.IO;

class Test
{
public static void Main()
{
string path = @"c:\temp\MyTest.txt";
string path2 = path + "temp";

try
{
// Create the file and clean up handles.
using (FileStream fs = File.Create(path)) {}

// Ensure that the target does not exist.
File.Delete(path2);

// Copy the file.
File.Copy(path, path2);
Console.WriteLine("{0} copied to {1}", path, path2);

so try it for the common use of files..

Friday, July 23, 2010

Developer Productivity Mean vs. Median

Let’s debunk some of the myths about developer skills for project managers who have been assigned for the first time to software projects. Understand that really good software developers are much more productive than average ones. In fact, some statistics say that really good developers are multiple orders of magnitude better than poor ones. One order of magnitude is the same as multiplying a quantity by 10. The point is, a skilled programmer isn’t just a little better than an average one, the difference is huge.

What should this mean to our newly minted software project managers as they plan the development of this product? Managers erroneously think that even if you can't get the best and brightest, you still get some usefulness out of mediocre developers. But building software isn't like digging a ditch, where even the poorest ditch diggers can make a hole.

In software development, what is programmed today becomes the foundation for tomorrow. If you have mediocre developers building your foundation, the really good developers have to go back and fix the flaws before they can move on. Hiring mediocre or average developers slows project velocity*. Frequently, taking a poor performer off the team is more beneficial than adding a good one.

Couple this with the fact that adding people to a late project makes it even later, and you can understand why most enterprise development moves at a glacial pace. The non-experienced software project manager might reason that if adding more warehouse men allows a truck to be loaded faster, hiring additional programmers would shorten the time necessary to complete a software project.

That won’t work. It will take time, and pull other programmers off-task, to get the new guys/gals up-to-date. In addition, the communication channels increase with each addition to the team. With a team of 2, there is one channel - Betsy Sue to Bill. Add Mike, you jump to three channels. The number of channels continues to grow exponentially.

Here’s the formula: n(n-1)/2. With 12 people on the team you have 12(12-1)/2 channels, or 66 relationships you must maintain as the project manager. Add one more person and you now have 78 communication channels to oversee.

Building software with average developers exposes two project myths: 1)that you can shorten a project by adding people and, 2) that its OK to have average developers produce average (buggy/off-task) code at an average pace. In truth, average developers drag overall productivity down and the project takes longer than necessary to complete.

The solution? Give good developers powerful tools. You'll get higher quality software faster. Second, having warm bodies doesn't help projects, and having to baby-sit poor developers cuts the productivity of your good developers, who are craftsmen. Software is too complex to turn into an assembly line manufacturing process.

Want faster software development? Spend the extra money to hire and nurture excellent software developers. It will pay off in both the short term, and in the long term when it’s time to maintain the code.

  • Velocity - A term used in agile software development to show the rate of progress for a team or a team member. How much can an individual programmer be able to produce in a given time period.

Tuesday, June 15, 2010

Example WebSiteMap



                                                       //close the node                                //close the node                                          //close the node

Tuesday, April 6, 2010

On meeting for developers

A few decades ago, "Datamation" magazine ran a short article on "how to hold good meetings".

Three points they hit are extremely important.

1.

Have a WRITTEN agenda, circulated to everyone well in advance of the meeting, and KEEP to it.
2.

The meeting must be chaired (run) by the highest-ranking line manager present. Reason: He/she will run it anyway, so you might as well make it official.
3.

Whenever possible, limit the time to NOT MORE THAN ONE HOUR. If, as the one hour mark approaches, it is clear that more time is needed, the only topic you should be discussing is when and where you will reconvene, and what action items must be accomplished before then.

There has been a HUGE amount of research on optimum meeting lengths. Every study has shown, very clearly, that people's attention and energy drops DRAMATICALLY after about fifty minutes.

Another point should be mentioned. If Joe doesn't need to be there, DON'T MAKE HIM ATTEND. Send him a convenience copy of the agenda, send him a summary if he needs to know the results, but, if he isn't an active participant, don't waste his time.

join to remove values in tsql

I was looking at this post at stackoverflow. I found it interesting for those of us who are in to the tsql madness. well newbie sometime and a pro on the next..

Tuesday, March 16, 2010

Polymorphism in C#

so here's a basic question on Polymorphism in C#, i found at SO. looking for the basics these days.

class A {
public virtual void Method1(){}

public void Method2() {
Method1();
}
}

class B:A {
public override void Method1() { }
}

class main {
A myobject
= new B();
myobject.Method2();
}

So which function gets called?
B.Method1();

gets called because it properly overrides the virtual method A.Method1();