March 4, 2009
For some reason I have been involved in a number of conversations lately about “how is .NET 3.5 different than .NET 2.0?”. There is an easy technical answer but I always struggle to quickly access that piece of memory and/or make it relatable to the person asking the question. I’ve resorted to off the cuff terms like “window dressing and not necessary to deliver a great application” or “nice features that extend the core .NET 2.0 Framework but….”. And on it goes, with little success I might add.
I might benefit from carrying some flash cards, huh? Perhaps some graphics on those cards? Let’s take a look at what’s available…

This one is not bad, but there is no mention of LINQ, AJAX and REST. No chance!

This one is closer, but what exactly are Additional Enhancements? This one also does not relate very well that 3.0 contains 2.0 and 3.5 contains 3.0 and 2.0.

This one is really bland! Did someone draw this up in MSPaint? Glad to see the Entity Framework get a shout out here. Sad to see no representation of the containment (as mentioned earlier).

My personal favorite and not because it is part of the poster I stare at nearly every day. It’s so simple and it’s structured perfectly (i.e. round!). .NET 2.0 contains the core, 3.0 added WCF, WF, WPF and CardSpace, then .NET 3.5 added LINQ, AJAX and REST on top of those. Winner, winner, winner, hands down.
Leave a Comment » |
Software |
Permalink
Posted by Scott Kersey
March 3, 2009
As I market my services to various clients from various backgrounds, I’m always trying to come up with a unique value proposition that communicates to them. It’s not that I want to appear superior to their alternatives, but I do want them to understand what makes me unique. Sometimes I use
“Hiring an experienced software developer who knows what their doing before they start is much more cost effective than paying someone else to learn”
which works well if a customer is interested in completing a project and are not making an investment in someone else’s capabilities. Sometimes I use
“I know how to go straight from point A to point B while some are good at talking about going from A to B and others are like to start on the path from A, get distracted and take twice as long to get to B. I have a laser like focus on the task at hand”
which works well if a customer has been disappointed in capabilities of another developer or development team. Sometimes I use
“My experience with 50+ projects in 10+ industries has given me insights about how those businesses are run that might provide value in unexpected ways to your project”
which works well if a client is unsure that I can complete the project using a new toolset or technology.
I see now that you cannot have one unique value proposition. Every situation, every project and every client is different. Not only are they different, they are unique. I also see now that I am not a salesperson applying a closing method. I’m there to listen, learn and offer something of value. If that means I have to be honest with someone, rather than packaged, so be it.
Leave a Comment » |
Software |
Permalink
Posted by Scott Kersey
February 8, 2009
There are probably many different thoughts on when you should introduce certain concepts to a new (or junior) software developer. Before they start coding, during the coding (see pair programming) or after some coding. You can’t introduce them to message queueing, standards compliance or layered architecture in the same day or week. Their head will explode.
Before they start coding, every developer should read Code Complete by Steve McConnell. That’s a given. Currently in it’s second edition (note: I prefer the first edition), the information here is so fundamental and so common sense. I might even argue that a good hire would already have this book on their bookshelf.
To be honest, during the coding, a junior software developer should rely on their tools, their team lead AND the documentation. Learning to rely on documentation, understand it and question it will improve their code. Learning to trust your tools, i.e. understand what they are telling you, will make you into a craftsman. Learning to ask for help from your team lead will keep a junior member on the team. No kidding.
After some coding, I would recommend reading this excerpt of Chapter 29 of Pattern Languages Of Program Design by Harrison, Foote and Rohnert. Probably the most entertaining chapter of the book, it is chock full of descriptive examples of systems with little to no design, such as:
often takes on a life of its own, despite casual structure and poor or non-existent documentation…
Systems and their constituent elements evolve at different rates…
The class of systems that we can build at all may be larger than the class of systems we can build elegantly, at least at first…
architecture frequently takes a back seat to more mundane concerns such as cost, time-to-market, and programmer skill…
Individual portions of the system grow unchecked, and the lack of infrastructure and architecture allows problems in one part of the system to erode and pollute adjacent portions….
some engineers are particularly skilled at learning to navigate these quagmires, and guiding others through them. Over time, this symbiosis between architecture and skills can change the character of the organization itself, as swamp guides become more valuable than architects…
Maintenance needs have accumulated, but an overhaul is unwise, since you might break the system…
Leave a Comment » |
Software |
Permalink
Posted by Scott Kersey
January 24, 2009
Given my complete disdain for creating help files (see HTMLHelp, MAML, RoboHelp) and Microsoft’s own wavering over CHM files and MAML, I needed to make the conversion to a wiki based solution for my projects. Wow, where does one start? With the last wiki tool I used and hated or the one before that I despised. You see, wiki authoring tools are clunky. Clunky to install, clunky to edit and nearly impossible to get configuration support for.
Luckily, I stumbled across WikiMatrix. They have a Wiki Choice Wizard that will guide you through the decision process. Want page history? Click here. Want support vendors? Want localization? Click here and here. After 6 or so questions, voila, here is a list of a wikis that meet your criteria. As you click on each one of the wikis for a closer look, you get a complete list of features. Even syntax examples! Thank you WikiMatrix and thank you CosmoCode for creating it!
Leave a Comment » |
Small business, Software |
Permalink
Posted by Scott Kersey
January 16, 2009
I attend a number of networking events each month to build relationships with other professionals and entrepreneurs. I NEVER have a hard time explaining why I am good at what I do. It’s simple. No one in the room will meet someone as dedicated as I am to learning everything I can about software development and small business. I have an addiction and it’s hard to compete with someone with such focus.
If you are considering going out on your own, because of a recent layoff or an impending one, you should know exactly why you are doing it. You should be doing it because you are the best at what you do. You’ll offer dedication, knowledge and service that clients cannot imagine today. It takes that to win new clients. It’s not luck, it’s dogged persistence and demonstrable proof that you are better at what you do than most. This point is well illustrated by this article, ala
… there is always room at the top applies everywhere. If you are good at what you do (meaning if you are in the top 10% – 15%) there will always be a place for you and you will always do well. It doesn’t matter what field you’re in or what your place is in that field. There is always room for someone who’s great at what they do …
You’ve probably heard the adage “love what you do and success will come”, but I would add that you better be great at it too.
Leave a Comment » |
Small business, Software |
Permalink
Posted by Scott Kersey
January 15, 2009
Who needs custom software development?
The business owner likes to arrive at work at 10am to beat the traffic, roll out to lunch around 11:30am with key personnel, then leave the office around 2pm. Typically, this type of owner is not interested in the minutiae of their business operations because they already know the business inside and out (because they built it) and they have hired capable staff to run it. This type of owner is focused on the big picture, i.e. how to maintain yet grow the business beyond its current scale.
This company needs a software developer who can provide tools that allow the business to get as much or as little detail from their systems as needed. Hopefully, I will have the opportunity to use my experience in building dashboards that monitor the health of the business operations but can also provide data mining capabilities should the need arise.
Leave a Comment » |
Software |
Permalink
Posted by Scott Kersey