Showing posts with label learn. Show all posts
Showing posts with label learn. Show all posts

Wednesday, November 17, 2010

Hooray! TWU-Developed [Internal] Application Launches!

It feels like just last week I was headed to India for TWU XVIII. I remember being nervous for the flight and eager to start our internal project. The previous batch began development on our web application, which was built for chronicling the experiences of ThoughtWorkers all over the planet.

My batch took over in August and headed up another four weeks of development. The initial goal was to launch just before our departure. Ultimately the launch was pushed back and development work was handed off to the members of TWU XIX.

Today saw that application go live.

I'm extremely impressed with the work by the last batch. I'm extremely proud of these three new classes of ThoughtWorkers, and feel honored to have been a part of this project. To see something you've worked on go live is incredibly satisfying, to say the least.

Learnings

I learned more than I can count on this internal project. To be effective, we had to dive in deep to the following technologies.

My favorite technical accomplishment on this project was implementing flash scope (as in Rails) in the Spring MVC framework. Prior to this implementation, we were passing around query strings for absolutely everything; that simply didn't feel appropriate.

It took a lot of learning on my part along the way to flash scope -- including how to implement a listener, filter, and Java annotation. The end result was a far better solution for the application and one that was reused several times in places where query strings just didn't make sense. I'm so very happy to have had the opportunity to push my knowledge and contribute to a delivered product.

Thanks!

So many people are to thank for this moment of accomplishment. Sumeet Moghe has put together a truly world-class training program. The real-world experience has helped me in immeasurable ways on my current project and is a far more effective way of learning than solving small problems from textbooks. Our trainers were wonderful as well, bringing their global experience into the classroom and project setting. I had the opportunity to work with young developers like myself from Australia, China, India, and the US.

Fun Fact query strings are attached to the address of a webpage. If an error were to appear on this blog with a query string, it would be shown in the address bar. e.g. -

http://sghill.blogspot.com?error=CommentTooLong

Clarification The app is not public facing, which is why a link doesn't appear in the post.

Wednesday, November 3, 2010

Project 1 Lessons: Part 1

It's amazing how fast weeks go by on a project.

It feels like just yesterday I found out I was headed to California for my first project. Suddenly a month has passed and we've cruised through one-and-a-half iterations. A few general lessons have been learned along the way that I'll surely be applying in the future.

Be Uniquely Identifiable

I made an attempt early on in the project to go by SG Hill. This was a new venture in person that didn't quite pan out for a number of reasons. The need for a name other than Steve was obvious and pressing. As is so often the case, I have a teammate named Steve. Ultimately the problem has been solved with the kind of class and style only software developers could pull off.

I'm now new Steve(); whilst my elder teammate has become known as Steve.Instance();

Learn Over Lunch

One of the great things about bringing together so many people of different backgrounds and experience levels is the knowledge transfer that could potentially happen. Getting it to actually happen requires some effort. Three weeks ago we made the effort to have lunch in the office one day a week for a little thing we're calling Lunch & Learn.

The response to L&L has been better than anticipated, and we've covered some varying topics so far over pizza and sandwiches.

  1. ASP.NET MVC - Testable software designs
  2. Feature Toggling (nToggle) - turning features of software on and off from a switch in the codebase
  3. Automated Functional Testing - Automated testing of web applications through a browser with Selenium

Perhaps the biggest benefit to giving these presentations over lunch is not the new ideas being shown, but the discussions generated around them from the questions being asked.

Quote of the Day as said in a Russian accent "Pizza without beer? This is...crime"