Last Community Day I did a short presentation to the Conchango .NET Development Community about all the .NET projects that we’re currently working on and some of the Web 2.0 / Windows Vista / .NET Framework 3.0 initiatives we’re involved with; we’re really busy at the moment and I know all of the developers are involved with making their own individual projects succeed, but it’s also important to ensure that they know what’s going on with other projects; what technologies, tools, patterns and practices are being implemented – so that when a particular problem arises with their own project, for example the need to set up and configure a Continuous Integration Server or having a problem breaking down requirements into a Product Backlog, people are aware that projects X,Y & Z have successfully tackled the same problem and will be able to offer advice.
A secondary aim of the presentation was to get the Community to realise that with the Vista wave, we are on the brink of a brave new world of technologies and it’s up to each individual to ensure that they are up-to-speed with what’s going on. I tried to emphasise this in two slides – the first shows my career at Conchango over the last 6 years in terms of the technologies used on the projects I've been involved with (which are named Project01, Project02 etc for client confidentiality reasons):
There are several interesting trends in this slide – firstly you can see that the projects I’ve been involved with have become more and more sophisticated – early Windows DNA style projects were simple (though non-trivial) n-tier affairs with x-copy style deployments, which then transition into Microsoft Server based projects with more traditional data access , which then transition into .NET 1.0 projects – which is where more advanced engineering practices start to come into play; automated builds (via the Microsoft SDC Build Tools), Unit Testing and Continuous Integration, they also have more complex data access strategies utilising an SOA approach to wrap legacy systems and expose them as web services rather than building new siloed data environments (which seemed to be the trend in DNA type projects). This strategy, could be related to the economic downturn experienced in the first part of this decade and the knock-on effect in shrinking IT budgets, where companies were forced to maximise return on their current infrastructure combined with trend that some companies running legacy systems, based on disparate technologies were attempting to make the transition to a unified development platform based on the .NET ecosystem.
The most recent projects have been the most sophisticated, with fully automated build, test and deployment processes and consolidation of source control, project management and reporting via Team Foundation Server. Also with the transition to the .NET space, came a change in methodological approach – I’ve already talked in detail about “Post-It Driven Development” in a previous post and you can find more information about Agile Software Development and Scrum by using the categories on my blog.
Being a developer on the first project meant having to know 4 separate technologies (ASP, COM+, Sql Server 7 and Data Mirror) but being a developer on my current project means having to know 10, plus being able to work in an Agile way using Scrum (which can be enough of a shock to the system for people who come from a waterfall background).
The second slide shows a list of development oriented Microsoft technologies (Stuart just reminded me that I've missed off all the new Operational Management tools) that are either going to be released in the next 12 months or tools and patterns that are going to enter the mainstream:
Enterprise Software Development, in the Microsoft world, is becoming more sophisticated and more complicated. This is in no way a bad thing – at last with .NET we have a platform where good Engineering Practices can be more easily integrated into everyday working cycles. I’m a firm believer in Continuous Education, which is why I enjoy being a .NET developer so much – there is always something new to learn and the development community is one of the most vibrant in existence. I’m well aware that within the next 12 months I’m going to have to do a whole lot of new learning – not only am I going to have to grok a new operating system, application suites, tools, patterns, programming languages and frameworks but I’m also going to have to alter the way I develop and interact with my team. With Windows Presentation Foundation the whole development story is going to change – developers are going to need to integrate much more tightly with their Design and User Experience counterparts - hopefully this shouldn't be too much of a problem as on my current project, we are taking the first steps towards a User Stories based approach to help facilitate better cross-functional cohesion - hopefully this will improve after I attend the internal User Stories course Mike Cohn's is running for Conchango in July.
If you take your career seriously, the next 12 months are very important – some of the technologies being released are brand new and because of that comes the opportunity for any developer to carve out a niche and become a guru in that area – with enough effort you could easily take any particular product space and make it your own – this has happened several times before – the best two examples that I can name are Ingo “.NET Remoting” Rammer and Conchango’s own Jamie “SSIS” Thompson - maybe now is the time to give your career a boost.