Add to Technorati Favorites

« August 2007 | Main | November 2007 »

September 26, 2007

Automated Software Testing Tools

improve quality today

Automated software testing is getting more and more popular.  If you are on a Quality Assurance team, you know it can be difficult to get enough quality testers to test multiple growing applications that are constantly evolving and adding new features.  As the software grows, you are pressured more and more to ensure a quality software application is released!  If you face any of these issues, time, resources, need better quality, then the answer is using an automates software testing tool.  Take some time to review some of these applications, and you will never go back.

expensive but an easy sell

The only downside to a lot of these applications is the fact that they can cost a fair amount of money, however the return on investment is extremely good.  You should have no trouble selling one of these tools to your software development manager, and if you are a manager yourself, what are you waiting for!  Please add any other tools you have used or prefer in the comments below.

Automated Software Testing Tools

TestComplete
TestComplete is a full-featured environment for automated testing of Windows, .NET, Java, WPF (XAML) applications and web pages and servers. It has been designed to free developers and QA departments from the massive drain on time and energy required by manual testing.

Seapine QA Wizard Pro
QA Wizard Pro automates the functional and regression testing of Web and Windows applications, helping your quality assurance team test more of an application in less time.

SilkTest
Intuitive GUI record-and-play capabilities, coupled with a stable, easy-to-use testing language, enables you to build functional and regression tests that do not break with minor changes to the application—a problem that makes most functional testing tools too costly to implement.

QEngine
AdventNet QEngine for Load Testing helps ensure, your 'N' Tier enterprise applications can meet heavy user loads during peak hours and have high uptime in production. It helps meet end user service levels and empowers you to successfully roll out business applications in to production by proactively load testing the application.

Vermont High Test Plus
Vermont HighTest Plus is a Windows-based software regression-testing tool for testing stand-alone and browser-based applications. It gives you all of the features and power you need for extensive software testing in a tool that is straightforward, logical, and easier to use than any other product of its kind.

SymbioTest
Code-free, automated testing solution that delivers a full-featured Software Quality Assurance platform right to your Web browser.  Allows you to deploy our rich automated testing solution to one user or one thousand - Instantly. Create, track, and run robust automated tests anywhere without installing any expensive and bloated desktop software. Manage multiple projects, share test assets, and publish detailed repots to team members around the country or the globe, all using our unique Web-based testing portal.

Testing Master
Testing Master is an easy-to-use and affordable website testing tool. It tests the performance of web sites or intranet applications by load and stress testing and helps you to find bottlenecks of your web site. Web site testing tool Testing Master can simulate thousands of users, came from the same quantity of IPs and analyze, how many concurrent users can handle your web site. Website testing tool Testing Master has many useful features, such as IP spoofing, multiple simultaneous test cases and website testing features for sites with dynamic content and secure HTTPS pages. And this is not the whole story.

 

September 24, 2007

10 Reasons Why It's Better to Be a Software Tester

Being a software developer is fun, however here are some reasons that might help you convince a software developer, to join the Quality Assurance Team!

  1. You get to break the software developer's code.
  2. You can create software to test code however you want!  Use your imagination.
  3. You get to touch more areas of the application than the developer.
  4. You have a lot of creative freedom!  Anything you think of that helps increase quality and reduce bugs is put in place!
  5. You can still be a software developer and write code, just the code you write is to break code and increase quality.
  6. You don't need to deal with marketing gurus changing requirements, in fact, its fun to watch the programmers scramble.
  7. You get to think outside the box
  8. You get to get super excited when you break software, instead of crying.
  9. If you do make the switch to software developer, you will be 10 times better than the software developers that have not been testers.
  10. you get to break the software developers code!  Come on that one deserves two listings!

 

September 15, 2007

You Don't Know What You Don't Know

A classic software development speech given by Jim McCarthy when he was in charge of Visual C++, which later become Visual Studio.  Some of you may not know but Jim McCarthy became an inspiration to me.  I love his presentation style!  That is one guy that is super pumped about software and breaths the passion of software development.  Check it out!

 

 

Technorati Tags:

September 12, 2007

10 Free Software Development Tools That Rock!

That's Right! Free Software Development Tools!

As a software developer, you require the best tools to do your job effectively!  Here are some tools you can use right now absolutely free!  The tools range from applications that will speed up your software development time, to graphics design tools, all at no cost to you!  Enjoy the software!

  1. ConTEXT
    A small, fast and powerful freeware text editor, developed mainly to serve as secondary tool for software developers. This tool will easily replace notepad.
    Visit Site | Download
  2. AutoHotkey
    This tool sends several tools into retirement. It unites hotkey and text macros and offers a scripting-language, which is more powerful than every batch-file and easier to learn than the Windows-Scripting-Host. Beginners are able to start fast because of the scripting-language, similar to BASIC, contains a macro-recorder and syntax-checker.
    Visit Site | Download
  3. Aptana
    The Aptana IDE is a free, open-source, cross-platform, JavaScript-focused editor and development environment for building Ajax applications. It features code assist on JavaScript, HTML, and CSS languages, FTP/SFTP support and a JavaScript debugger to troubleshoot your code.
    Visit Site | Download
  4. CSS Tab Designer
    CSS Tab Designer is a unique and easy to use software to help you design CSS-based lists and tabs visually and without any programming knowledge required!
    Visit Site | Download
  5. Paint.net
    Paint.NET is free image and photo editing software for computers that run Windows. It  features an intuitive and innovative user interface with support for layers, unlimited undo, special effects, and a wide variety of useful and powerful tools. An active and growing online community provides friendly help,  tutorials, and plugins.
    Visit Site | Download
  6. Gimp
    GIMP is the GNU Image Manipulation Program. It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
    Visit Site | Download
  7. Adsen Software
    Adsen FavIcon is a simple favicon editor that lets people make a favicon ico for their website, which shows up in IE's favorites. It can use either bmp or jpg files, and will convert them to ico format using the size and color quality you choose. Not only can you create fav icons, but it can also be used for creating icons for programs. Adsen FavIcon comes with notes on what settings to use for making fav icons and how to install them.
    Visit Site | Download
  8. WebLog Expert Lite
    WebLog Expert is a fast and powerful access log analyzer. It will give you information about your site's visitors: activity statistics, accessed files, paths through the site, information about referring pages, search engines, browsers, operating systems, and more. The program produces easy-to-read HTML reports that include both text information (tables) and charts. View the WebLog Expert sample report to get the general idea of the variety of information about your site's usage it can provide.
    Visit Site | Download
  9. FileZilla
    FileZilla Client is a fast and reliable cross-platform FTP, FTPS and SFTP client with lots of useful features and an intuitive interface.
    Visit Site | Download
  10. PSPad
    This tool rocks is all I can say! If you work in different software development environments, and want a simple tool that will highlight source code and give you powerful features usually reserved for expensive software development applications, this tool is for you!  It handles VB, PHP, Python, you name it!  All in one editor!  Never use notepad again!
    Visit Site | Download

 

September 09, 2007

10 Must Have Web Development Firefox Extensions

FireFox

Firefox is the web developers browser of choice.  It allows you to add extensions extremely easily that make the browser its an extremely powerful development tool!  We have scrounged the web and found the 10 must have web development Firefox extensions. 

If you have not installed these tools, and you are a serious web developer, you need to install them right now!  Trust us, you will love these tools, and shave hours off of your web development time a week!

Web Development Tools You Must Have

Web Developer Extension
The Web Developer extension adds a menu and a toolbar to the browser with various web developer tools. It is designed for Firefox, Flock, Mozilla and Seamonkey, and will run on any platform that these browsers support including Windows, Mac OS X and Linux.

ColorZilla
With ColorZilla you can get a color reading from any point in your browser, quickly adjust this color and paste it into another program. You can Zoom the page you are viewing and measure distances between any two points on the page. The built-in palette browser allows choosing colors from pre-defined color sets and saving the most used colors in custom palettes. DOM spying features allow getting various information about DOM elements quickly and easily.

Greasmonkey
Greasemonkey is a Firefox extension that allows you to customize the way web pages look and function. Hundreds of scripts are already available for free. And if you're the tinkerer sort, you can also write your own.

HTML Validator
HTML Validator is a Mozilla extension that adds HTML validation inside Firefox and Mozilla. The number of errors of a HTML page is seen on the form of an icon in the status bar when browsing. The details of the errors are seen when looking the HTML source of the page.

FireBug
Firebug integrates with Firefox to put a wealth of web development tools at your fingertips while you browse. You can edit, debug, and monitor CSS, HTML, and JavaScript live in any web page.

CSSViewer
CSSViewer is a simple Firefox extension used to get the CSS properties of an element in a web page. Made with XUL, JavaScript and CSS.

Aardvark Firefox Extensions
Aardvark is a CSS debugger with keyboard modifiers. It displays items on the page such as the element name and id or class name of a selected element.

Link Checker
Check web page links at a glance with simple color coding. Ditch those massive listings of bad links that provide no context and add LinkChecker to your arsenal of web development tools today.

MeasureIt
Draw a ruler across any web page to check the width, height, or alignment of page elements in pixels.

IETab
This extension is derived from the famous extension IE View but much different.
While IE View always open IE-only pages in a separate Internet Explorer window, IE Tab can view them in a Mozilla/Firefox tab.

Bonus Search Engine Optimization Extensions

SEOQuake
Seoquake is a powerful, Mozilla Firefox and Internet Explorer compatible, tool aimed at helping web masters who deal with search engine optimization and Internet promotion of web sites. Seoquake allows to obtain and investigate many important SEO parameters of the Internet project under study on the fly.

Alexa Sparky
Alexa Sparky will show you at a quick glance what the current web sites trend in popularity is on the Internet.  It also gives you the option to view traffic details on any web site or web page, as well as viewing similar web sites to the one you are on at the click of a mouse.

 

September 08, 2007

Why SharePoint Portal Server is Terrible

I'm going to start a controversial section to my blog entitled Learning from Failures.  The idea here is the analysis of failed software projects, and how we can learn from them.  The other possible outcome would be that someone from these software development companies and their respective divisions will stumble across my blog or article, and make some changes!  I won’t hold my breath on the last point, but it should make for some interesting articles!

It should be noted (and should be obvious), that the reason I chose to talk about SharePoint is Microsoft HAS learned from their failures/mistakes, and has now shipped a pretty decent version of SharePoint!  The problem I still have with it is the marketing behind it, but hey, marketing is marketing.  That said, the thoughts below are mostly around the first few versions of SharePoint.  SharePoint 2007 rocks!  Try it!

What Went Wrong With This Idea?

First let me say that I think SharePoint is a fantastic idea.  That said, I think it's a fantastic idea that has failed because of four key reasons:

  1. Far too complex to install, configure, and customize.  It is not agile.
  2. It is being sold as a solution to organize unorganized companies.  It is being sold as a system to add process's to organizations that don't have them.
  3. It's rendered HTML is brutal, along with the CSS files.
  4. It is one of the most unflexable applications I have ever used.

Have you ever heard the "KISS" theory?  Keep it simple stupid.  Well unfortunately nobody on the Microsoft SharePoint Portal Server team seems to have heard about it.  First off, let me say that SharePoint Portal Server is an awesome tool, in theory!  However, it seems to have been designed by people that thought they were rocket scientists, and expected some massive adoption.  I mean it’s super easy to configure, all you have to do is become a master in:

Technologies You Must Master

  1. SharePoint
  2. SQL Server
  3. Internet Information Server
  4. Active Directory
  5. File Stores
  6. Indexing
  7. Software Development
  8. Search Engines (To help customize the brutal search built into it)
  9. Database Design and Development
  10. XML
  11. .NET 2.0
  12. ISA Server
  13. Master Pages

Sure Microsoft will tell you its super simple to configure and set up, but it’s simply not true, which is why hardly anyone to any kind of mass uses SharePoint.

Basic Design Flaws

Another basic rule in Microsoft has again royally broken, is the "Less is more" rule.  Especially when you are dealing with non power users.

All you've managed to do now is install it by the way.  What is next?  Well setting up a process for document management. 

Document Management Process

Why do most SharePoint Implementations fail?  Does it eventually get setup?  Of course, Microsoft will bend over backwards to get someone up and running rather than say their technology doesn't work.  But what happens after?  Nobody uses it?  Why?  Oh lack of training right?  Wrong!  Although, that is another reason it could fail. 

A major reason it fails is because of how they are trying to sell it!  They are basically saying "SharePoint will help bring happiness to your organization by organizing all your documents, enabling tracking of documents, indexing, searching, workflow, etc."  The reality is, this is completely untrue!  What will help you do all those things is good process!  If you do not have good process behind your current file structure even, or an idea of what you will be doing when you want to apply taxonomy, tagging, and other document management principals to your organization, you have no business even looking at software yet!  Especially one as complicated as Microsoft SharePoint Portal Server. 

Wiki's Rock!

This is why wiki's work so great, they are simple places to organize your thoughts and find things!  They are great for places with no processes in place.  Do you know what happens when you turn on workflow features like check in and out, approval paths, etc. in an organization that has trouble enough keeping up with email?  Disaster!

I mean, even if you somehow manage to find a great implementation partner, and convince Microsoft to give you money to use with their partner, what are the chances that the partner has any clue of how to manage documents in a large organization?  What are the chances they will help with the hard stuff, which is not (should not be) the technology? 

Just Try and Change!

So if for some miraculous reason you have made it this far in your SharePoint implementation, I'm impressed.  Now, what happens on patch Tuesday, or any time your IT team decides to upgrade anything that SharePoint talks to.  SharePoint issues galore! 

In Closing

SharePoint is a great idea; it was just built completely wrong.  It's a perfect example of trying to build something that does everything, making the software so complicated that it is so hard to use, that it is useless.  Have they learned from mistakes?  I don't think so!  Instead, they went and integrated Microsoft Content Management Server, which had great potential, and put it into SharePoint.  Ouch.

Will Microsoft ever get SharePoint right?  It's possible, if they start copying Wiki's and other great easy to use software like BaseCamp, Zoho.  If strip away the layers of junk and useless complexities in setting it up (it takes me about 5 minutes to set up MediaWiki, or 2 minutes to setup BaseCamp).   Yes they are vastly different and much less complex, however, the way the marketing is done on SharePoint, if you called your local Microsoft Partner and said "I want a site where I can share documents and edit web pages and have others contribute" the first thing out of their mouths would probably be SharePoint.

What they should do?

I know pro SharePoint people out there will say, SharePoint can't be compared to BaseCamp or MediaWiki, because it’s far more complex!  To which I say, "Exactly".

What should Microsoft do?  I would let SharePoint die, and start a whole new initiative of applications that are easy to use, fast, and efficient.  Applications that can tie into other existing applications that do things better!  Don't try and be everything to everybody.  Let's try and create an action item list for them:

  1. Fix your search, it must be better than Google's search, and it is not even close.
  2. Get rid of your hierarchy and start teaching people to use tagging.
  3. Make installation easier.
  4. Make Development easier.
  5. Make Training Easier (Better Training, and Easier Product).
  6. Create Clean XHTML standard code; fix your 4MB+ CSS files!
  7. Make it "Mashable".

What They Will Do?

Microsoft will continue to poor money at it, and put the marketing machine of Redmond behind this product.  Partners will continue to push it because some large corporations are paying huge licensing fees for the product. 

It is possible that one day, maybe in 5 to 10 years, SharePoint will finally be great a few years, since 2007 is actually really awesome! But for a company that has hundreds of thousands of developers at their disposal, thousands of partners, an insane amount of money, and has an operating that is installed on a large majority of the population, isn't it a little ridiculous how long it's taking?

What we learn from Microsoft

If you are trying to make life easier for users by organizing documents, and creating a central place to find things, you need to make software that is easy to use!  You cannot expect users to love something that is harder to use than what they already do!  You can't expect to turn legions of developers into pro SharePoint developers if you make it so complex to write simple search queries and add web parts that do anything besides display the weather.  Here is what we learn:

  1. Keep it simple.
  2. Your software needs to be easy to install.
  3. You need to listen to your users.
  4. Developers must be able to easily customize and extend your application.
  5. Your application should not rely on certain infrastructure being present, if possible, or at least, very minimal.
  6. If your application generates HTML, it better be proper XHTML and not Microsoft HTML.
  7. Ensure your application has a very low learning curve.  SharePoint should be included as an example in the dictionary for "Steep Learning Curve"
  8. If you have a lot of money, you can sell even the worst application.

Any other lessons to learn, more faults to SharePoint?  Please share below!

 

September 07, 2007

Software Development in the Real World Growth!

Whenever I visit popular blogs, I am always interested in their statistics.  Sometimes it's hard to find this information, so I thought I would share mine for the inquisitive type out there that wonder what kind of traffic this site is getting.

Over the last year Software Development in the Real World has experienced some phenomenal growth!  Are you a frequent reader of the site?  How many others like you read this blog on a daily basis?  It's hard to tell as sometimes as comments don't always get filled in.  Well, to share some of our statistics with you:

The Facts!

There are currently 169,344 sites linking to our web site!  That's a lot of sites!

We currently rank in the top 10,000 on Alexa for most visited site in North America.  Pretty good for a Software Development Blog!

Software Development in the Real World

We are a Top Mover and Shaker on Alexa!

We serve up about 25,000 page views a day!

We have about 9,000 readers a day, and 1300 RSS Subscribers!

We have 90 Fans on Technorati!  Right on Fans!

We have been on CNET and ZDNet, as well as the Future Tense radio show across North America!

Software Development in the Real World

Big Thanks!

Once again, a big thank you to all of you, the readers of this blog!  My passion is sharing knowledge, and without you, I would have nobody to share my knowledge and passion with!  Keep coming back!  Spread the word!  It will only get better and better at Software Development in the Real World!

How Can You Help? Get Involved!

There are a ton of ways you can get involved in the Software Development in the Real World community!  If everyone took 5 minutes right now and followed the steps below, the site would improve 10 fold nearly overnight!  The more readers, the better discussion, and the more personal growth, and better advice you will find!  So what should you do?

  1. Add us as a Technorati Favorite and enter to win an iPod!
  2. Post a message or reply on our new Software Development Forum!
  3. Add a comment to one of the posts!
  4. Subscribe to our RSS Feed!
  5. Tell a friend about Software Development in the Real Word!

I hope you take the time to help us spread the software development word!  The more readers, the more time I can spend on this blog, improving the content, and improving software development in the real world!

Make it a great day!

September 05, 2007

Creating Powerful PowerPoint Presentations

Creating Powerful PowerPoint Presentations

Did the above title stand out for you?  I hope so because this is going to be a fun article to read!  So grab some coffee, some tea, open your mind. Get ready to learn how to create a presentation that will blow people's socks off!

A word of caution for software developers that do not like presenting:  Do not read this article.  This article is meant to help the developers out there that have to deal with software presentations!  To those that get to go through the joys of presenting to large crowds, or small crowds, I really hope this guide helps you on your journey through creating a high impact PowerPoint presentation.

A Software Developer's Guide to Creating a Powerful PowerPoint Presentation

There is nothing hated more amongst people attending conferences or meetings than dreaded PowerPoint presentations.  They definitely serve their purpose, however they do tend to take away from a lot of the key elements of the presentations.  If you are thinking about putting together a PowerPoint presentation, you are probably thinking about the PowerPoint right now!  If you are, you are already off track!

Here is my quick explanation to how to put together a winning PowerPoint presentation.  I will be using a real world example in order to more clearly illustrate each step.

What is your key focus?

Your key focus is not your PowerPoint, it is your message, and how you will get it across to the people attending your presentation.  Remember, PowerPoint is just one of the many tools you will be drawing on while giving your presentation.  Although I will not be getting into presentation style (that is for a later posting), It is important you realize this as you create your PowerPoint presentation. 

Once you realize that your key focus is to get the message across, and not to have a PowerPoint presentation that has every detail on the topic in it, you are ready to start.  I know it sounds silly, but 90% of the people out there go wrong on this first key step!

Start the Journey

What are you really doing in your presentation is taking your audience on a journey, and you are their guide.  Your goal should be that your audience sits back, relaxes, and enjoys the story.  They should enjoy the story so much that they take notes if needed, and memorize and lock in a lot of the key points you are making.  By the end of the presentation, your audience should have a feeling that they have seen a great movie, and loved it!

Your communication style should be conversational, your slides should be simple and to the point, and the transitions between each slide should be simple and to the point.  Your words are what a narrator is to a documentary.  Make sure your words match the slides, and flow in perfect harmony from slide to slide, scene to scene.  Are you getting in the mood now?

Create a Title Page that Attracts and is clear

The title page should have a riveting and title, and draw attention of all to your presentation.  You should clearly define your role here as well, and take this time to explain your relevant experience in the subject area.  Have you ever been in a bookstore and just browsed through books or magazines?  Why do you pick up the book?  Yes sometimes you know the author so you pick it up and know it will be good, but in some cases, you read the title and go, "Oh, that sounds like a great book!" so you pick it up!  Make sure your titles are bang on!  They will get you to the next step.

Create your Agenda

This is critical, as it sets the expectation for the meeting, and gives everyone a heads up in terms of what you will be covering in your presentation.  It will give people something to look forward to as you continue through some less interesting sections of the presentation.  To continue on with the book analogy, you have now picked up the book, and want to see the index to see if the book covers what you want to read about.  If not, you might put the book down and go in a different direction, and choose a different book.

By the way, your agenda doesn't have to be one page, it can be multiple pages.  Remember, your PowerPoint is not the presentation, it is facilitating the presentation.

Use Simple Background Elements

Have you ever seen the busy Microsoft presentations?  A lot of times they over do the backgrounds and have so much going on that it really takes away from the actual message on the slide.  My tips here are to use white, or keep it really simple.  If you must use images, make sure that the images are relevant to the slide you are showing.  Have you ever seen Steve Jobs present?  His slide backgrounds are clear and crisp.  This is what really draws attention onto the message on each slide, and to his presentation.

Creating Powerful PowerPoint Presentations 
Figure 1 - Simple Gray Background

Use Large Font with Small Focused Points

While you might think putting a lot of points on your slide will make it seem like you know what you are talking about, there couldn't be anything further from the truth.  More is less with PowerPoint.  If you must have text, make sure it is bold, at least 30 point, and a nice easy to read font.  Make sure it contrasts with the background color you are using.

Creating Powerful PowerPoint Presentations
Figure 2 - Simple Bullets, Large Text, No Bullets

I love Apple's presentations that simply do not have any bullets at all.  They don't need them, as they are clear, and spaced out.

Creating Powerful PowerPoint Presentations
Figure 3 - Bad example of far too much information

Take a look for a second at the above Windows Vista Architecture example.  Seriously is anyone impressed by all the stuff?  It's just a pointless slide really, you would be better off to show a box with Windows Vista Architecture, and WinFX shown, and then to the right or left, show a few key points on what WinFX gives you.  Save the information overload for something people can download or view later.

Creating Powerful PowerPoint Presentations
Figure 4 - Bad example of too many bullet points.

Again, although this is much cleaner, the non bright white text on a dull background, with yellow headings makes this very hard to read.  The bullet points are also far too long and not very thought out.  If you ever have sub points within a PowerPoint presentation, this should be a warning flag to you to delete some information, or re-structure your slide.  The golden rule is: "Use Huge Font! Less is More!".

New Sections Should Have Title Pages

Whenever you watch a movie you see this effect.  Steve Jobs uses this allot.  He will clear his PowerPoint completely sometimes, and leave room for anticipation of the next portion, and it lets him talk, and all eyes are on him.  Alternatively, he will put a big message on the screen, in huge font, and put nothing else on the slide.

steve_perfect_slide4
Figure 5 - Simple yet extremely effective title. Less is more.

Close with an Overview

A fantastic way to close your PowerPoint is with an overview of everything you discussed during the slides!  This re-affirms everything you spoke about, while at the same time, it allows you to let your audience know "Hey, he covered everything, and my expectations were met!"

Practice like there is No Tomorrow

Steve Jobs presentations come so naturally, it's tempting to just say he is just natural at presentations.  You would be completely wrong!  Steve Jobs is obsessive about every detail in his presentations.  He spends an un imaginable amount of time planning every detail to the most minute detail.  He runs through it over and over again until it is completely natural to him.  Therefore when he presents, sure he gets nervous, but he has already presented it a hundred times, and it starts looking natural!

In Closing

We covered a lot in the first of a series of articles intended to help you create a powerful presentation, and blow peoples socks off!  Please remember to take the following rules into consideration whenever you load PowerPoint:

  • Create a Title that "Attracts"
  • Begin with An Agenda
  • Use Simple Background Elements
  • Use Large Fonts with Small Focused Points
  • New Sections Should have Title Pages
  • Close with An Overview

I hope you enjoyed our journey through creating a powerful PowerPoint presentation!  I enjoyed writing it, and hope it is beneficial to you!  Over the next few weeks we will take you through the rest of the important points in a presentation: Presentation Style, Handouts, and Software Demonstrations.

Please post your comments below!

 

September 04, 2007

ASP.net Performance Tips - A Follow Up

ASP.net Performance Tips

Great Response from Readers!

Hats off to all the great responses and discussion to this post on asp.net performance enhancements!  I wanted to take some time to clarify some comments to ensure you that I am indeed not crazy ;)  The unfortunate side of Blogging is that you can't go into too much detail in certain cases, otherwise every post would take days to write and explain every angle, and cause reader's (like you right now going, "get to the point!") to fall asleep and tune out. 

Hence we will be launching a Wiki in the next few days to go into more detail on topics, and leverage our awesome reader's knowledge!  We also have the forums up and running right now, so feel free to take your discussions there!

If you haven't read the original article, make sure you check it out, 20 Tips to Improve ASP.net Application Performance!

Tip Number 3: Avoid Server-Side Validation

By no means am suggesting we turn off server-side validation.  Some users have JavaScript turned off, and will not be able to use your site correctly if you rely heavily on JavaScript.  Without Server-Side Validation, bad data can get to the server!  A great approach to take here is use both.  By using both, you ensure that only correct data flows into your database! 

There are also certain situations where your validation requires database reads to find out if data is valid.  Here of course is another ideal use of Server-Side Validation.  Another side note by the way is if your database is structured correctly, it should hopefully not allow bad data to be entered into it.

The main point I was trying to make is educate a few people that purely use Server-Side Validation!  Put some resources on the client, and everyone will jump for joy!  If you have an application that relies on Server-Side Validation, and you add Client-Side, you will notice a dramatic speed improvement!  I hope this clears it up!

Tip Number 6: Server.Transfer vs. Server.Redirect

The reality here is the article was based on "Performance".  However to dive into more details, there are actually three distinct methods of transferring data in ASP.net.  Response.Redirect, Response.Transfer, and the new Cross-Page Posting available in ASP.net 2.0 and greater. All of these methods have positives and negatives.  Just like most things in life, you will need to decide the best approach for your given application.  Let's take a look quickly at some of these pro's and con's

Response.Redirect

Without getting into to much detail, this approach is heavy and "slower" because it requires a roundtrip to the server instead of just telling the user, "Go here".  It also has restrictions on the length of your query string, and gives a lot of "visibility" to the user either in the URL

It is the simplest approach however, with the least "hack" around needed (think back button issue that Mike Pope talked about, Thanks Mike!).

Response.Transfer

Some of you might not know this if have not completely read up on ASP.net 2.0, there are definitely some awesome improvements in 2.0!  Using the new PreviousPage.FindControl, you can actually sift through the data being received.  Works very well!  There are some "tricks" to this approach, but I will go into it in later articles, and possibly on the Wiki.

So Response.Transfer is no question faster!  It does not include the roundtrip, however, the browser thinks it is still on the same page or form, therefore, your back button wrecks havoc on this implementation, however it can be handled if your are careful/skilful.  So this approach is faster, but has some issues that you should be aware of!

Cross-Page PostBacks

A new feature in ASP.net 2.0 is Cross-Page PostBacks that work really nice with forms.  Just setting the button's PostBackUrl property to the new page makes the magic happen.  It's very easy to check to see if there was data sent by checking the PreviousPage.IsCrossPagePostBack

So what do you suggest?

Use what you are most comfortable with, and what best suits your environment.  However just remember that:

  1. Response.Redirect is slower and will show QueryString data in the URL.
  2. Response.Transfer is fast, however creates an "invalid" browser history.
  3. Cross-Page Postbacks work well, however do not work well with Server-Side only validation.

Anything else to mention on this topic?  Oh yes, SEO optimization.  I would use neither of these methods if I'm moving pages, servers, etc.  For those cases, use a 301!  What is a 301?  It's basically a way to tell search engines and other browsers that a resource has moved and the links should be updated.  Using this method, you will not lose the Google Juice (mostly), and can expect search engines to update their databases in a few days!

I love how the quiet ASP.net developers pitched in and brought their valued feedback, opinions, and criticisms!  That's what the Real World is all about!  Keep it coming!

 

Software Development in the Real World Forums!

Software Development Forum

The new Software Development in the Real World Forums have now launched!  Be one of the first to register.  Our hope is that the forum becomes one of the top destinations on the Internet to discuss software development and get help on any software development project.

Load the Software Development Forum here!

We look forward to seeing all of our readers at the forum!  Be one of the first few to join the forum and help spread the word!  The more developers we get in the forums, the faster our questions will be answered. Also, with more developers, we will generate much better quality software development conversations.

Join the Software Development Forum!

 

Technorati Tags: , ,

September 03, 2007

Big Changes at Real World Software Development

WordPress

Moving to WordPress

It's been a long weekend in Canada, so I took some time to finally start migrating my blog from TypePad to WordPress!  With the massive growth in traffic over the last few weeks, I have decided that this is a much needed step in order to add new features that I have been missing out on from TypePad

This transition will take a few days, so your patience while the upgrades occur is much appreciated.

Beta Launch September 7th, 2007

 

 MediaWiki

Software Development Wiki

Over the next few days we will be launching a brand new Software Development Wiki! This will allow all of our software developers, managers, architects, and more to begin adding their knowledge to a growing repository of on online software development knowledge.

Beta Launch September 6th, 2007

 

phpbb

Software Development Forum 

We now have some 3,000 daily readers!  In an effort to increase communication between members, we will be launching a brand new Software Development Forum!

Beta Launch September 4th, 2007

Anyway, that's what I'm up to these days.  It's giving me some time to brush up on my PHP, and learn some Ruby on Rails for another project that is in the works.  With some growing AdSense revenue, and a growing Technorati Rank, I have been able to invest more money into the Software Development in the Real World! 

Moving to a new server is awesome as it allows me to add some great community tools, and increase the page load speeds!  I'm looking forward to growing this software development community as far as it can possibly grow!  Thanks for all your support!

September 01, 2007

Software Developers Guide to Managing Your Boss

Manage Your Boss

Learn to Manage Your Boss and be Successful

The most important thing to your software development career is the ability to create great code right?  Wrong.  Although this is important, one of the single most important things to your career is your ability to manage your boss.  The relationship you have with your boss is critical to your success, and how far you will go at the company you're at.  Possessing the skills required to "Manage Your Boss" can put you further ahead than anyone else at your company, and in your role within the software development lifecycle.

Raises, promotions, training, books, expense accounts, travel, are all dictated mostly by your boss.  Make sure you have the proper skills to manage your software development boss!

5 Things you can do next week to improve your career!

This article will focus on 5 key areas that you can take to improve your career and quality of life by managing your boss better.  Managing your boss you say?  Yes, that's right, your boss also needs you to manage them.  Do this well and you will get the raise you wanted, the new position you deserve, and be much happier at work.  We will focus on:

  1. Managing your boss's time
  2. Keeping your boss in the loop
  3. Promoting yourself and your projects
  4. Getting others to promote you
  5. Never bring up problems without solutions

Manage Your Boss's Time

Although a good software development manager will always make you feel like you are number one, the reality is the software development manager has a hundred things going on at any given time.  If you are having an issue, get it dealt with fast, however do not act as if it is the number 1 issue for the entire company, when the reality might be its only 2% of your boss's concerns.

What does this mean?  Simply, if you have an issue that needs to be addressed, and it is a simple issue, do your homework before taking up a lot of their time.  Clearly find what the problem is, what options can be taken to resolve the problem, and your suggested approach.  Make sure not to appear scatterbrained and confused when you approach your boss.  Make it clear, and keep it to the point.

Complex Issues Require Meetings

If you have a relatively complex problem that needs more time than just a 5 minute conversation, book some time in his or her calendar.  A follow up email also works really well explaining "I have booked xxx meeting for xxxx date.  I would like to discuss xxx.  Below are my notes on the topic.  Looking forward to meeting with you.".

By following this approach, you are not just barging in and taking up 20 minutes, and possibly side tracking something more important, or worse, making something important get brushed off because they had something else already booked.  Sending the email with the details of the meeting (which should also go in the meeting request), enables the manager to review the reason for the meeting, and move the meeting up closer if they see it as critical.

Keep Your Boss in the Loop

Most software developers hate creating status reports.  This is really unfortunate as it is one of the best times to keep your boss in the loop, and inform them of your achievements.  One of the constant fears that flows through the minds of any software development manager is that there employees are falling behind, making mistakes, and not letting anyone know.

In order to manage this "fear", software development managers will tend to nitpick and ask questions at times on certain tasks.  This is done to gain more information, as well as see how quickly and efficiently the questions are answered.  An employee that is able to answer questions bang on, and to the point, is looked at as competent, and on track.  No further questioning is needed.  If an employee asks for questions to be clarified, answers in round about ways, and is unsure of himself and his answers, is seen as incompetent, and requires further follow up and micromanagement.

Another way to avoid the questioning and making yourself seem on the ball, is to send in fantastic status reports!  Those status reports are your boss's direct link into what accomplishments, and failures occurred for you during the week.  Take this time to be honest.  If things are slipping on the timeline, let your boss know, make suggestions to improve the time line.  If you are on track and made some great new technical innovations, show off, and tell the world what you have achieved!

What Does Your Billboard Advertisement Read

If you were a casino on the Las Vegas Strip, and you had a giant billboard, what would that giant billboard on the strip say to attract people to come to your casino over everyone else's?  Sometimes I ask this question in an interview to poll a few things from the candidates. Do they know what they bring to the table, what makes them different?

This is actually a very important point.  What does your manager see you as?  Your Software Development Boss has so many different things to worry about, you need to make sure that when he thinks of you, he thinks of "Your Billboard".  What makes you, you?  Are you the AJAX wizard?  Are you the relational database master?  Are you the walking dictionary when it comes to c#?

Be Your Own Marketing Machine

One of the most important things you can do to move ahead in your career is to be your own marketing machine.  Market yourself to your team and your boss!  Pick an area that you will be the expert in, and become the expert!  Let people know you are the expert!  Create lunch and learns, send out emails with ideas and articles from the Internet.  There are roles for everyone at your company, pick your focus, and shine bright!

Market your Tasks and Projects

Just like a good book has chapters, your career's "chapters" are your projects and assignments.  Make sure you have clear title for every chapter, and explain each project or assignment clearly.  Make sure that at every status report you report clearly on your projects, and clearly explain how your "area of expertise" assisted in pushing the task/project further.

Get Others to Promote You

Software Developers hardly ever thing of the things I am talking about, so stay with me here!  Another thing you must be extremely good at is to get other people that are around your boss, to like you, love you, and see your value.  Ideally if you have created a clear message as to who you are, and how you bring value to the company, your next step is to get your Software Development Manager's friends and meeting buddies to also value you and see you as "The Database Design Genius" for example.

For example, let's say you are the quality assurance team leader.  During your lunch breaks, and meetings, make sure you are always stressing quality issues.  Who has tested it, how many bugs are left, have we provided the correct amount of customer training.  When you are meeting with financial people such as the CFO or his team members, stress how quality is critical to the business, and explain your background.  

Explain how much happier your clients where that all orders are shipping on time now due to 99.9% availability of the new software!  Talk to the VP of Manufacturing and explain how the new QA standards you put in place should be helping the production line produce better products, and ask them for new ideas and input!

Never Bring up Problems without Solutions

I love the movie Madagascar, I don't know if you've seen it, but it's great!  My niece always loves to watch it whenever she comes over.  One of my favorite parts of the movie is when the penguins are trying to dig their way to China, and instead, only dig their way to another part of the Zoo.  The "Boss Penguin" says "Don't give me problems, give me solutions!".

Software Development Managers hate when people come to them with problems, and don't provide options for solutions.  You are hired to solve problems, and come up with solutions.  If you see a problem, take time to come up with possible solutions!  They could totally be wrong, but just make sure that you have put some thought into some possible solutions!  At the very least it gets discussion going, and helps you learn how to solve problems.  The more you do this, the better your proposed solutions will get, to the point where your possible solutions will start being correct!

A good exercise is to write out the problem, think of three possible solution, write down the pro's and con's to each solution, and then pick the one that you think might work, and list why.  If you just start doing this, you might be totally off with all your solutions, but as you continue to go through this process with your manager, you will start to learn how he comes up with the correct solutions.  One day you will be able to walk in there, and all three solutions will be great, and the one you picked will be the greatest solution!  What a feeling that will give you!

In Closing

A career in Software Development is, in my opinion, one of the best career choices you can make!  You get the ability to be a programmer, manager, mentor, team leader, architect, and even a self promoting marketing manager!  I hope the tips above help you propel your already successful career to the next level!

 

Add Us

  • Add to Technorati Favorites
    Add Miguel Carrasco's Feedburner

    Add Miguel Carrasco to Google

    Subscribe to MyMSN

    Subscribe to MyYahoo!

    Subscribe to Bloglines

    Subscribe to Newsgator

    Subscribe to Feedster

    Subscribe to NewsIsFree

Great Sites