Part 2

So its the second week in. I have managed to create a console application that was originally extremely haxor. Slowly it is getting there.

DONE:

  • Pull messages off Exchange server at regular intervals
  • Download attachments to byte[]s
  • Parse mail body for key words.
TODO:
  • Further test the mail body parser
  • Change the Poll() to a search in the service application
  • Test mail collector using the mocking frame work
  • Start wiring together a working exe
Im totally loving it, but am so fucking tired!!

Posted byShitwolf at 1:02 AM 0 comments  

First Job part1

This is my first job out of uni and Im writing a windows service using .NET. The service regularly contacts the exchange server, checks for mail at 2 different mailboxes, possibly over a different domain. It picks up the mail in a mail box and possible attachments. Then it does some mail parsing and decides what to do with the content of the mail and possible attachments ( and then possibly alert another user program ). It then may or may not send a return email to the sender with various information.

So I have set up 3 users on the exchange server, mailbox1 ,mailbox2 and the test user. I will use the test user in my unit tests to test the service. Also I am having trouble debugging the service, I think its a little hard and I dont want to waste time not producing in my first job, therefore i will create a consol application, then once im satisfied with the state of it I will change it to a service application.

Posted byShitwolf at 3:02 PM 0 comments  

Reflection on first team project

The following is a reflection of the first and final large team project undertaken at Massey University in 2008, before entering the workforce.

This semester as a student enrolled in the paper Software Engineering C, I have undertaken a group project. The project was to develop an online carpooling website which mediates the advertisement and searching of rides for which people would like to carpool. Our team, the ‘.NET’ team was made up of 6 students. Initially we discussed which aspects of the project most interested each of the members. I made a choice to work on the user management and account authentication.
As the project progressed, I became aware of several personal weaknesses that I had not planed for. As this was my first ever .NET experience, I found that it took a large amount of time to move from the lower level thinking required in languages like JAVA, to the out of the box mentality of .NET development. Previously I have solved problems from the ground up, for example designing a user login system would require you to think about all the components necessary, such as user input sanitization, session management, persistence modeling and the overall interface components. When designing a web application in .NET most of this is actually taken care of for you. Therefore many man hours were used doing one of the following, a) trying to design a component when you were unaware that .NET had already done better, and b) pouring through the extensive libraries to work out what the best practices were, and how best to implement their solution. But for all the risk that this introduced into the project, it was the entire point of choosing to develop in .NET technologies.
We as a team made key business decisions, which was extremely important. This project had many ethical issues to consider, as it was to be used by the public, and to store sensitive information about the public. Although we designed our application to contain as little sensitive information as possible, I was never entirely happy with the level of protection of our session data. As a group, we lacked the skill and the time to fix, what was in my opinion a major flaw in our final product. The planning of our project was too high-level and functionally based. We often missed key requirements such as security measures, testing, and stress testing, but on a positive note we did not suffer from feature bloat. I feel that this was an important aspect of the design of our final product, that it was simple and easy to use.
Working as a team provides many challenges, while working in a team of people you had never meet before provides extra challenges. I was well aware that because the team had no interpersonal dynamic before the project began that we would have to work hard to create one. I feel that I contributed to the development of our team dynamic in a positive way.
We all struggled to further develop personal and professional relationships with one member of our team. Thomas S (!=Darcy) initially was one of the louder voices in the decision to undertake an agile scrum like methodology, but lacked to ability to commit to this. Thomas did not like coming to meetings, initially due to a large a workload. He agreed to take on the interface design with Michelle. As Thomas began to become more and more distant from the group, I made extra effort to make him feel included, such as messaging to remind him that meetings were on, asking how he was, or what he thought of an idea that had been put forward. I feel that one interpersonal skill that I excel at is helping members feel more part of the group. In the last week of our project our some members of our team overheard Thomas in the lab talking to other class members. He told them that his team had excluded him, and the ringleaders of the exclusion were Adrian and I. I was firstly hurt by such comments, and secondly very disappointed. At our next meeting I did something very unprofessional, which was to confront him on this fact, which he admitted. I told him that he needed to grow up and accept responsibility for his own actions, and that I did not appreciate him blaming others for his exclusion when I especially had tried my best to include him. He spent 24 hours drawing up a mock user interface, where he did not consult us in the process. We had been working on our own interface because past experience told us that he would likely not deliver on time. He said he was angry that we did not use his final product. My less than polite reply to this was “Why would we want to help you get some marks when all semester you have chosen not to help us, your failure is no longer our responsibility”. From this experience I have learnt two things, one being that some people cannot work in teams no matter how hard you try, and two, that maintaining a professional manor at all times with your colleges is important. In all projects you develop a sense of ownership and pride. It is important to not let your personal feelings about this get in the way of maintaining the team dynamic. I was lucky that this occurred at the end of the project( after the final group presentation) ; else such actions on my part would have had serious implications for the team dynamic.
I learnt that, at this stage of my personal development, one thing I could really benefit from is learning when to ask for help. Often times it is easy to become too proud to ask. This is something that I am aware I need to work on out in the work force. Employers do not expect you to be an instant guru, but to learn through out your career. Projects are structured in such away that should benefit the learning and development of all. Such an environment as this is a primary opportunity to learn such things with little consequence.
If I had the chance to do this over, I would first seek out a crash course in web technologies. Such a thing would have been a luxury at the beginning of the course, due to commitments with other papers. We never had problems with meeting deadlines, but this was due to excellent teamwork at the beginning of the semester, which was maintained through out the course. Continuous integration is a critical feature of the development of such a project. We achieved this via using the development tools available to us, and through weekly team coding nights. This was also aided by removing some of the less ‘fun’ overhead of documentation, and delegating this to other team members who excelled in this area. I would not deal with our issues with Thomas any differently as we all literally tried our best to include him.
This project was a lot of fun, but also demanded a high level of commitment. I know that those of us who were able to balance our other commitments contributed to the project excellently, while others either over committed them selves due to excessive work habits at the exclusion of all else, and others under committed them selves through lack of motivation and personal responsibility. Personally I am very proud of my effort and the learning journey I have undertaken in this project, while my pride for our team swells. We did a great job. Finally I would like to say that there is no ‘I’ in ‘team’, and if future students remember this they will succeed also.

Posted byShitwolf at 5:18 PM 0 comments