Under the Reigns of Security :: Tip O' The Day

Often when developing software the software developers just work on machines that are administrators in every aspect.  Very little consideration is given to this, as developers usually know what they’re doing.  In a larger corporate environment though we developers often end up pushed into a corner with security considerations.  Even at smaller companies sometimes they have things that need to be locked away from the developers.  In those cases, which recent scenarios have made me think of again, I’ve worked in security paradigms as follows.

The first thing you want to do is to setup a domain (of course, this is the Microsoftie world I live in).  With a domain you can really lock things down and still maintain some autonomy for the individual systems in the network if need be.

The second thing is to setup a box and assure admin access before adding one self to the domain.  Then after the local account is setup log off and add yourself to the domain.

Once that is done use the limited domain account to do work that requires membership to the domain (like Outlook, pushed software, etc) but use the local admin account to do all installations and other such things.

This way you work with a much higher level of security, you prevent a LOT of viruses, bugs, spyware, and other such things that commonly plague a user, but still all the benefits of admin are right there via the command prompt or “run as” on the context (right click) menus.

Technorati Tags: tip o’ the day,security

del.icio.us Tags: tip o’ the day,security

.NET Subversion Tips

I’ve never been the “repository guy” or “build manager” or anything of that nature, but have had a decent amount of experience working with the tools.

So a few simple tips…

Exclude Directories

The second you create a project in .NET, if it is one of the projects that have a obj and bin directory, set both to be excluded from commits.  There is no reason to include these directories.  Every time a project is built these will be recreated, which will cause file changes and a required commit, and if excluded they’ll just build without interrupting the flow of commits, updates, and adds.

While we’re on the topic.  If you use ReSharper, make SURE to exclude the ReSharper cache directory.  This sucker can get HUGE and bloat up the source repository.  If you don’t use ReSharper, GET IT!  Then exclude the cache directory.

Technorati Tags: ReSharper,Subversion

del.icio.us Tags: ReSharper,Subversion

Dumbest Thing EVER!

First day working on the new project and what do I do?  I do about the dumbest thing someone could ever do!  I managed to fat finger the password, WRONG, into the password and verification password when setting up Windows XP on a brand new Dell T3400 Workstation!

How did I do this?  I don’t really know, but it was one of those special moments, and I don’t mean that in a flattering way.  So there I set, barely an hour into the day and I’m floundering working to get my blasted machine reloaded.  I had no tools to crack the system, nothing to just do a default reload.  I’m talking a full fledged, every piece of software, every single driver reload.

I finally get it reloaded and about the 4th driver I install requests a reboot.  So I reboot.  When it comes back up I have no keyboard or mouse response.  ALL of the USB ports are not responding.  I, at this point, am amazed at my fortune and blunder.  So after about 15 minutes of trying various BIOS settings and other such adventures, I break down and call Dell.

What does Dell tell me to do after 30 minutes of troubleshooting?  They tell me to reload Windows XP!

Where they kidding?  No.

Here I am, about 3 hours down for the day now, and about to reload the system again.  So just before the big kick off meeting I leave the machine reloading.

Finally, as I leave for the day I manage to get the machine reloaded with the appropriate drivers.  At least, all of the drivers, except for the chipset drivers.  Those are the ones I loaded last time and then the keyboard and mouse became tethered paper weights.

Overall the kick off meeting went well and we covered a number of topics.  It appears, so far, that we’re definitely going to be going forward pretty hard core with the Agile style.  Minus the heavy handed pair development, we’re instead split into groups of two each, that are open to pair, but generally just working in teams.

I’m definitely looking forward to the effort, minus the fat fingered passwords and non-working drivers.  Once I get past that, then we’ll get to rocking!  So cheers to tomorrow, I’m going to have a Viso (health energy drink?) and start kicking out some proof of concept code I’ve been working on.

Nope, You'll Get Features When Features are Available

Ok, in eXtreme/Agile it states that you don’t set deadlines or you’re project is doomed (ok, so that is VERY paraphrased, but the point is there so read on…)  If project success is measured by success of achieving features by set dates than at least 99% of all projects fail, if not every single one to have existed.  Sadly, in many surveys this is proven to be true.

The first step towards setting a date is predetermining that a project will achieve X features, then setting arbitrary dates for the completion of those features.  The reason I write arbitrary dates is because anything further than a few minutes to a few hours is a HIGH RISK estimate.  No matter how many books, theories, facts, surveys, and other information is provided it seems this is still done.

What do we end up with?  We end up with projects that fail, over and over again, to achieve their stated goals.  Of course a lot of these projects do achieve some type of success, but rarely defined by their originally stated schedules and goals.

Microsoft Windows, everything from 2000 to XP, and now Vista have all done the same thing.  They’ve failed based on their original stated goals.  But seriously, could they be considered failures, really?  They’ve succeeded in generating billions upon billions of dollars for Microsoft, I would NOT call that failure.

So this perception though, regardless of the money made, is that scheduling is a failure.  The perception of Microsoft is that of failure after failure to deliver.  Meanwhile, we have another company who has not achieved anywhere near the level of revenue, Apple.  Does Apple have this dilemma of being seen as a failure?  Does Apple deliver on its respective promises?

No.  Apple is considered successful!

One of the main reasons is because they don’t over promise and then under deliver based on hyped feature lists and arbitrary schedule deadlines!  This practice is one of the most misunderstood yet probably the simplest approach to features and scheduling out there.

Either set a date and deliver something by then OR set certain features and then deliver them when they’re ready.  One or the other, anything else dictates failure, the perception of failure, or the cold hard reality of zero revenue failure!  There have been enough companies in the last decade, even more in the last two decades, that have proven this to be absolutely true.

So with that in mind, when I read Close Curtain Development at Microsoft, I thought immediately after reading, “Yes, this is absolutely a good policy!”  Microsoft shouldn’t be spilling their guts about every single little feature they “want” to get into an application as they have in the past.  It has done horrible things for their reputation and should stick to the approach as I’ve stated.  It will do better for the consumer, it will do better for Microsoft, and when the features are ready they can be released – gasp – WORKING!

Technorati Tags: Agile,Microsoft,Scheduling,Project,Management,Policy

del.icio.us Tags: Agile,Microsoft,Scheduling,Project,Management,Policy

Visual Studio.NET, C#, and Excel 2007…

…with a bit o’ Office 07′ thrown in for spice.

This is my accumulated link listing that I’ve gathered over the last few days during research of Office 2007, and Excel 2007 specifically.  There are some links on deployment and issues between developing to 2007 and 2003.  So if you’re working on some Office Apps, take a look, these are some links with good material.

On the ever important topics of actually deploying Office Solutions I dug up this information…

Technorati Tags: Office 2007,Office 2003,Office Apps,VSTO,VS.NET,Excel,Word,Outlook,Deployment

del.icio.us Tags: Office 2007,Office 2003,Office Apps,VSTO,VS.NET,Excel,Word,Outlook,Deployment