I gave a talk yesterday on using MOSS 2007 as an Application Delivery Platform. My contention is that delivering application functionality to your users is essentially the same thing as Enterprise Content Management (ECM).
Think about it...ECM is all about delivering the right information at the right time to the right people. If you simply exchange the word 'information' in the sentence above with 'functionality' you get my point.
If you work in the enterprise space you know the demands of a diverse user base can be overwhelming. Every day a new group springs up that needs a specialized application to do their job. Rough specs are developed and thrown over the wall to the development team with a budget and end date already fixed.
Often the application gets built somewhere near on-time but deploying the application is another story. Provisioning server resources, network resources, firewall rules, security review, change control, multi-level approvals, etc. takes almost as much time as developing the software!
Why can't we build an application delivery platform that utilizes the same semantics as ECM? Using MOSS 2007 as an enabler, you can.
Over the next few weeks I will be posting about our experiences making this vision come to fruition. It has been an exciting and (sometimes) painful ride...but the results have been very exciting!
More to come...
Is it just me or is this latest round of product releases from Microsoft overwhelming? I mean, just look at some of what has released:
- WIndows Workflow Foundation
- Windows Presentation Foundation
- WIndows Communication Foundation
- Vista
- Office 2007
- ASP.NET Ajax 1.0
- Microsoft Office Sharepoint Server (MOSS) 2007
- Web Service Software Factory
- Smart Client Software Factory
- Web Client Software Factory
And some of what is coming in the not too distant future:
- WPF/E
- ORCAS
- Longhorn Server
- MOM 2007
- The dotted releases of everything in the first list
It is enough to make your head spin!
It has taken a while for me to realize but at this point in my career, I have to make some hard choices. I believe I need to have a fundamental understanding of each of the products and platforms that may be in the mix, but I can no longer expect to be an expert in more than one or two.
My personal choice has been to choose MOSS 2007 and the whole Software Factory space. I am really excited about both of these and hope to blog about my experiences with them in the days ahead.
So what about all of you? If you had to choose only two technologies or platforms to truly be a master of, which ones would you choose? Why? I would love to hear about the choices you make and how they affect your career path.
Until next time...
One of the most common defenses I hear when questioning the architecture, design or implementation of a given solution is "Well, Microsoft reviewed it and they said it was fine". I like to refer to this as the MRI (Microsoft Reviewed It) Defense. For the most part, this effectively ends any probing on my part. I mean, how do you respond to that without sounding like a total jerk?
A couple of things bug me about this...first is that the MRI lacks an actual explanation for why your solution does what it does. If you can't explain it to me in a couple of minutes, how could you have designed it properly? When the MRI hand is played, it is usually pretty early in the conversation and most commonly right after my first "So are you sure that doing XYZ here will scale well?".
The second thing that bugs me is that Microsoft didn't review it...someone who worked for Microsoft did. And this is the real rub. I have been lucky enough to work with some great people at Microsoft over the years...and some that were not so great. The bad news is that the ones who were not so great are usually in customer facing positions. These are the people that lower tier companies get when they ask Microsoft for help on a technology solution. Many times these people don't have a lot of enterprise experience, and often recommend some outright horrid things. Their recommendations often fly in the face of best practices as well as run counter to the recommendations of the actual technology experts inside Microsoft.
Have any of you run into this? If so, please share some of your tried and true responses...
I am in desperate need of solid C# developers in the Buffalo, NY area. I have several contract positions open with the expectation that the contracts will last from eight months to one year. The company is a large, multi-billion dollar international company and the project has a lot of visibility. If there is any interest, please send your resume to jeff@[nospamplease]solidapproachconsulting.com (remove the [nospamplease] before sending).
I became an architect through the developer career track. I was a developer, development lead, development manager and eventually became an architect. I felt drawn to architecture and as I trained found that my instincts were good as was my ability to grasp and apply concepts (I feel a kindred bond to this writer and his Mort bio very closely mirrors my path http://pluralsight.com/blogs/johncj/archive/2005/08/12/14077.aspx).
I still love to develop (I wrote about 90% of my current project due to resource problems) and am considered a solid C# coder. However, I don't think my development skills have any direct relation to my architecture skills. In my opinion, they are two distinctly different skillsets. In fact, I would say there are times when my ability to implement a concept gets in the way of my ability to properly design a complete solution. My inner developer often conflicts with my architect self...
What is your opinion? Does a strong developer naturally become an architect? Can architects be good developers? Is there a natural and necessary tension between the two?
In an attempt to foil my plans at becoming a prolific blogger, my day job has gotten in the way! If it weren't for those darned bills, I would just blog and not worry about my other commitments...
June was a blur...my team is part of a team that is helping the company I am currently engaged at build synergy between it's US and Europe operations. There is an enormous amount of potential in this and it has become relatively high profile. We went to Paris for a week (which was also a blur) and are just now winding down.
In a nutshell, we are going to take line-of-business applications that have been developed on the various continents and streamline them into a single strategy...a lot of work, but very challenging.
I suppose my question here would be to ask if any of you have similar projects in the past? If so, I would love to hear about your experiences with culture differences, .NET localization and remote development.
Your feedback would be very much appreciated!
I recently bought the Samsung i600 SmartPhone. It is very cool, but I must admit I am challenged by what to do with it now that the newness has faded.
It is a passable as just a phone…although it lacks many of the features I would expect in a much cheaper device (distinctive rings for different callers, graphic caller-id, decent headset volume, etc).
Beyond the obvious (email) I tried using it as a portable MP3 device. It wasn’t bad but I couldn’t get enough volume into my Shure earbuds…so I bought a cheap Creative Labs device (under $100) that works great.
I am also embarrassingly challenged by how to manage the device. It runs Windows Mobile 2003, but I there are very few things that are configurable. I can’t specify where to save voice recordings, ring-tones, etc. I have a 1 meg SD ram card that sits empty because I can’t figure out how to make things store there automatically.
Is a user training issue or am I missing something?
One of the things that most IT shops try to get a handle on is the use of Access databases or Excel spreadsheets masquerading as a database. I did a project for a large bank a couple of years ago and we audited this very thing. It turns out this ONE bank had over 450 individual MS Access databases in use. Worse, several of them were instrumental to various processes!
So what’s the problem? Well, let’s start with lack of controls and auditibility…in light of the recent hysteria over Sarbanes/Oxley, this is no small concern. Then what about the quality of the data? I would say that more than 70% of these types of apps import data from some corporate resource parse it into the shape they want it and use the resultant data as the basis for decision making. Do these users *really* understand the subtleties of the data? Do they really get the model? What about change control? I could go on, but you get my point.
Unfortunately, when you take the time to talk to these renegade users, it turns out that we are to blame!
People just want to get there jobs done. Many times these domain experts have great ideas and go to the IT group for help. More often than not, they are met with either sneers and contempt or false promises. When the solution doesn’t get delivered or doesn’t get delivered correctly, they take matters into their own hands. And before long, you have 450 small databases in the wild.
How do we fix it? We have to embrace the needs of the users. If your IT shop can’t deliver an app or tool quickly enough for the users needs, let them do it…but control the tools and control the data. Provide standards for end –user tools and provide documented services that the user can consume in order to get accurate, auditable data. In the end, let go of what doesn’t matter and control what does.
In no specific order:
X1
NAnt
FXCop
DebugView
Virtual PC
Araxis Merge
MemProfiler
NewsGator
What are your favorites?
Virtual PC, Virtual Server or VM Ware...pick your poison...but I honestly don't know how anyone working in the IT space can live without these tools. To say that setting up a virtual environment is life changing is not far from the truth...