When I joined my first company waaaay back in the mists of time at the dawn of this millennium, I was a wet behind the years eager trainee, looking forward to my first project.
What I got was an internal project that was thought up on the back of a napkin by the division head. It was a timesheet management system and some of us trainees were supposed to work on it, gaining some skills till we could be put on billable projects. There were no real requirements and we were too green to ask for any. There was an experienced guy who was the informal lead on the project and a project manager who had newly joined the company. I wasn’t really impressed by the software development lifecycle process (this was supposed to be a SEI CMM Level 5 company) but I was eager to learn and I picked a place close to the experienced guy and dug in.
We decided that we wanted to do it in ASP because that was what was being used everywhere else and seemed to be the thing to use. We began easily enough and it was relatively plain sailing. I thought I did a really nice job (created a few nice DHTML features etc) for the 3 months that I spent there. We had a release and then I was rolled off onto another project.
Fast forward 3 years, and I have had some solid coding time under my belt. I have had a few releases and done a few 48hr coding sessions. I happened to come upon my timesheet project. I was appalled at my code!! No stored procedures, no architecture, and no consistency. Even the DHTML was specific to IE 5.0 and would break the page if loaded in another browser. It sure showed me, and I was extra nice to all the newbies for the next couple of weeks :)
Another 3 years and its 2006; ASP.NET is in its second iteration. The .NET platform is firmly established as the platform of the future for Microsoft and Visual Studio .NET is considered the de-facto standard for developer productivity tools. I am in between projects and my manager decides to put me on an internal project. The project is introduced and I can see the business need being articulated. Several pointed questions about scope, time and priorities later we come down to a bare-bones design for the project. I have a friend of mine from my previous company on this project. We have seen all of this before, we got this… The platform (ASP.NET and SQL Server) and the development environment (Visual Studio .NET) is quickly decided on and we start on the design. Two days later and we have the beginnings of a database model, a class structure (after a fashion) and a whole bunch of unknowns and variables. Our bare-bones project is looking more and more complex – its deja-vu, but this time I am the experienced guy…