So once again it has been a while since the last post. I was out at a client for a few days and on my return to the office I was asked to help out on a website, so had to show everyone how to create a site through the Drupal CMS. Which as usual was simple to get 90% of the site correct, but then the last bit took forever with styling issues between IE and Firefox.
Anyway, that’s now out of the way and I am back onto the job in hand of trying to get some better processes and practices in place.
The first thing I managed to achieve was getting all of the developers and manager together for the first Software Design/Review meeting that they had had in about 3 years. We discussed the way forward for all of our 4 applications, 2 of which have deadlines to complete the new versions in the next few months. I don’t think there is really much we can do on an Architecture or Design point of view for those, but I do feel we can move forward with the processes. For example there is no automated build process at the moment, and no integration between the different modules of the project, or even ANY form of testing full-stop.
So one of the first things to do is at least get a build server together that can build up the project and test the integration every night to give us some confidence in the quality of the build. Then some testing is going to be needed, it is going to have to be some general “smoke tests” at this late stage, to make sure all the major components actually appear to work.
There is one design issue we are going to try and get in though which is a unified Error Handling and Logging strategy across all of our apps, including the ones due in the next couple of months. To this end I have looked into some options and after our meeting we decided to go with the Microsoft Enterprise Library Application Block, as we get this implemented I will blog how it all works and how to set it up.
After these imminent releases things are looking a lot more interesting. We have agreed to move our apps from the .NET 2.0 (which was meant to be the purpose of the tech refreshes that are going on currently) to .NET 3.5. The main reason for this was to make use of LINQ for the Data Access Layer (DAL). We currently use some code that was hacked together by a developer that has now left the company to generate the DAL, and even after the code is generated we have to fix bugs in it, so it is just not worth the effort to keep that up.
The fact that we are moving to .NET 3.5 also opens up the opportunity to do some work on the UI’s of the apps; namely using Windows Presentation Foundation (WPF). This is very exciting for me, as currently the UI’s all contain most of the business logic, so really we only have 2 tier applications with a DAL and then the UI which has the business objects mixed in. Another advantage of moving to WPF is that it will hopefully make it that bit easier to move the applications to web-based interfaces in the future as that is the long term goal.
With all of these new features and ideas there is certainly a sense of optimism within the group, so I feel I have achieved something. The plan is for me to get the error handling in place ASAP for the fast approaching deadlines. After that the 2 applications I am solely in charge of will become the “sandbox” for the new ideas and concepts as I work through them, and will also act as learning material for the other developers in the group as we roll them into the next versions of everything.
As usual with software engineering I now have a mountain of new technologies to learn and master, but as I have heard said about this field of work “If it was any different we wouldn’t be here.”. Which is so true.