Software Factories - The developer gap

22 02 2008

In this post I’ll try to clarify one of the reasons why we (and the IT industry in general) need software factories. I’ll illustrate this by looking at the ongoing evolution of Microsoft .NET.


.NET Logo

The first .NET wave

During the first years of .NET (2002-2004), it was new for every developer so we all started at the same level and had to learn the same concepts to get started. We all used the basic .NET features and the Visual Studio IDE. There wasn’t much guidance available at that time, let alone best practices and frameworks. We were just glad that we could deliver working software with this new technologie on time.

Present situation

Since the arrival of .NET 2.0 in 2005, new tools and frameworks began popping up rapidly. And now, it has become an avalanche with new stuff being released on a daily basis. It has become nearly impossible to track everything that’s going on in the .NET community. Only a limited group of ‘extreme’ developers are willing to sacrifice extra time to keep up with this. The gap between ‘regular’ developers and ‘extreme’ developers is widening very fast. Since technology doesn’t stop evolving we need to find ways to increase the productivity of ‘regular’ developers to cope with more complex software requirements. Coding horror has a fun article  (and a follow-up which is even funnier :) ) on the different types of developers.

Automate best practices

From here on, I’ll use our Domain Driven Design factory idea to illustrate the problem.

DDD concepts aren’t known by many developers and the learning curve is pretty steap. So how can we make it easier for developers to start building DDD applications? By automating best practices and providing guidance in context. Imagine starting a new DDD project in Visual Studio and the solution structure is rolled out for you with every reference in place. Imagine a context-bound help window guiding you through each step. Imagine a Visual Studio environment that doesn’t only give you compilation errors and warnings, but also warnings on a higher level (ex architecture-wise). And best of all, you can choose to just use the factory without knowing into detail which technologies and patterns lie underneath.

I’ve included a screenshot of the EFx factory (from Jezz Santos) to show how far you can go in customizing Visual Studio.

Efx factory

How to bridge the gap

You don’t need a full-blown software factory to start bridging the gap. Just start gathering all internal best practices in your company and bundle them in a document, write code snippets, save project templates, write fxcop rules (link to Dutch article), … These are all already small but rewarding steps that’ll bring you closer to working as a factory.

Greetz,
Bart


Actions

Information

3 responses to “Software Factories - The developer gap”

23 02 2008
27 02 2008
Alexander Nowak (13:30:51) :

Hello,

I fully argee that you should harvest best practices. And if you can translate them into “automate-able” things in your IDE…by all means. Like you said : the pace of technology advancement and the time you need to invest to keep up with things is not eveyone’s cup of tea. So it is good to “break” the dependence of code heroes a little bit … but let him or her look over your shoulder (as a figure of speak).

But technology (and I mean it in broadest sense of the word) can take you only that far. There are also the “Process” and “People” pillars that need equal attention. Don’t forget to close the “gap” there also: software methodology (light or formal) , training developers, quality assurance , Testing, configuration management, release management , etc.

Also Software development is only one part in the lifecycle of an application; don’t forget operations , the maintenance of applications and most important the business case of the application. The “Business” doesn’t care which which design pattern you used as long as they can do their job with the application you’ve build (and earn money for the company).

You see , there are many “gaps” to close. Microsoft Software factories (guidance, abstraction,code generation) are only one facet that can help us delivering applications to the business that are cost-efficient, reliable and effective.

Best regards,

Alexander

29 02 2008
The role of Team System in a Software Factory « IntoFactories.NET (19:30:00) :

[...] a few actually master most of the available technologies or as Bart calls them in his article ‘The developer gap’, expert and regular [...]

Leave a comment

You can use these tags : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



Circuit Training for a Change of Pace


Try circuit training to get or keep you fit when you’re short of workout time. Circuit training consists of going quickly from one exercise to another for an extended period of time, say 20 minutes. It is promoted as giving both strength and aerobic training in the same workout. It does that, but you compromise both. [..]


Decreasing the Incidence of Work-Related Back Injury


Many of us spend many a long hour each day sitting at a desk and working on a computer. Do you sit in the right position? Think about how you sit. It’s common that the longer you sit, the more you will find that you are slumping in the chair. This causes the bottom of [..]


Leave Men Alone


Some men should not be left alone. Not because we don’t trust them. Not because they can’t find anything when you are gone. There is another reason. If you do, what happens is this: bad things happen. At least, this is what my wonderful husband says when I go off on a plane somewhere. He’s not the [..]


Does a Positive Outlook Reduce Stroke Risk?


Are happy people healthier because they participate in wholesome activities or does depression somehow contribute biochemically to stroke? This study doesn’t begin to answer any of these questions, but it is something to think about. It’s difficult to say that a bad attitude can give you a stroke but one study of almost 2,500 persons 65 [..]


Taking Care of Your Teeth. Dangerous Food


A lot of people don’t think of the harm that they are doing to their teeth when they gobble down chocolate, candy, or chips. It might shock you to learn what food is terrible for your teeth and what food is even more terrible for your tooth. It is a problem when tooth decay happens [..]


All News