February 26th, 2010 / 2 Comments » / by Amir Barylko
Tomorrow I’ll be presenting at the Winnipeg Code Camp 2010!
I’m super excited! This year I have two presentations:
- Real World BDD for .NET developers
- Intro to TeamCity
I just finished the last changes to the presentations, enjoy!
2010-02-27 Code Camp
See u tomorrow!
Posted in: Development, TDD, Unit Testing
November 19th, 2009 / No Comments » / by Amir Barylko
Here is the source code and presentation I’m going to use tomorrow.
Presentation Automocking PPT
Source Code AutoMocking Src
Enjoy!
Posted in: Development, TDD, Unit Testing
Tags: Automocking, TDD, Unit Testing
November 4th, 2009 / 1 Comment » / by Amir Barylko
Just confirmed! On Nov 19th I’ll be the host of the .NET user group meeting.
This time we will talk about using StructureMap to generate our dependencies for our System Under Test (SUT).
We will go over writing base specification for testing and how to generate dependencies and use them to stub or setup expectations.
See u soon!
Posted in: Development, TDD, Unit Testing
Tags: Automocking, TDD, Unit Testing
September 16th, 2009 / No Comments » / by Amir Barylko
I”ll be presenting this year at Microsoft TechDays Canada. I’m super excited!
Here is a brief description of my presentation:
SOLIDify Your Microsoft ASP.NET MVC Applications
Object-oriented programming makes it easier to manage complexity, but only if you do it right. The five SOLID principles of class design (one for each letter) help ensure that you’re writing applications that are flexible, comprehensible and maintainable, and we’ll explain and explore them in this session. We’ll start with a brittle ASP.NET MVC application that’s badly in need of refactoring and fix it by applying the SOLID principles. This session is a good follow-up for Introducing ASP.NET MVC, but it’s also good for developers of ASP.NET MVC looking to improve their code – or even if you’re not planning to use ASP.NET MVC. The SOLID principles apply to programming in any object-oriented language or framework.
December 15-16 at the Winnipeg Convention Centre
Hope u can make it!
Posted in: Development, Presentations
Tags: MVC, Presentations, SOLID
June 8th, 2009 / No Comments » / by Amir Barylko
I updated the code I used for the mocking presentation at the code camp to use AAA syntax focusing on keeping the test simple and testing just one functionality per test.
AAA syntax is part of the additions to Rhino Mocks 3.5. Here is a link with the explanation.
Here is the complete source code with all the tests. Mock The Mock Source Code with AAA Syntax
Enjoy.
Posted in: Development, TDD, Unit Testing
March 15th, 2009 / No Comments » / by Amir Barylko
Wow! What a day!
We started around 8 AM with breakfast and at 9 started the presentations.
I did mine around 10:30, I think it was pretty good (no one faint, or run from the room screaming).
The audience was great, made great questions and laughed (utter kindness) at my bad jokes.
I want to thank everyone that was there, and D’arcy for inviting me.
Here is the presentation PDF presentation, the source code Demo Code (start) and the source code complete with all the tests Demo Code with all the tests.
The video is still to come
!
Comments are welcome!
Posted in: Development, Presentations, TDD, Unit Testing
Tags: Mocking, Presentations, TDD, Unit Testing
March 14th, 2009 / No Comments » / by Amir Barylko
I’m getting ready for the presentation tomorrow at the Winnipeg Code Camp!
I’m going to talk about mocking using Rhino Mocks.
Here is the presentation: PDF presentation download.
I’ll try to make a video later this week.
See you there!
Posted in: Presentations, TDD, Unit Testing
Tags: Mocking, Presentations, TDD, Unit Testing
March 3rd, 2009 / 1 Comment » / by Amir Barylko
After the TDD presentation someone asked me about what should he do in order to become a Software Architect. Here is what I think.
First of all, I would say that you have to be sure that you would like to be an architect, and for that we have to agree on an architect definition.
An architecture in software development can be considered a collection of different components, each one with a particular role, and the interaction between them through interfaces.
Therefore, an architect is responsible for defining the best architecture in order to solve the problem at hand. In order to do that the architect should have technical roots and technical acuity to grasp technical issues and collaborate with the team to solve them. The architect will have the global view of the system and would be responsible of identifying the major issues that have to be addressed to avoid failure.
An architect has to be close the developers and able to answer questions and provide guidance to the rest of the team. He has to be fond of writing code and familiar with the technology the team is using. A good architect will be a combination of being a excellent technologist, strategist and politician.
The difference between the team leader (or lead developer) and the architect is the scope and the responsibility. The architect has a broader scope that includes interaction between different components, security, response time, etc.
Many times the architect role is considered a “promotion” or the next step in the hierarchy for a lead developer. But that may be a mistake because unfortunately not all the great developers or leads have the broad talents required to be an architect.
So, what should we do to achieve such a worthy goal?
Here is a (mixed) list of subjects to learn and practice (not exclusive, just a starting point):
- Different architectures: Which well known architectures are available?
- Security: How to secure applications and systems, which options are available, benefits, etc.
- Concurrency: How to run process in parallel? Implementation, Benefits, drawbacks….
- Communication and Services: Why be service oriented? What kind of services are available?
- Testing: TDD, functional testing, how to write scripts to test web or desktop apps.
- Storage: Which databases or alternative methods of storage are available?
- Development methodologies: Which ones are available? Why should I use one instead of the other?
- Agile planning and management: How does it work? What is the difference with classic management?
- Source Control Management: SVN, CVS, GIT…
- Continuous Integration: What? Why? When
- Development platforms: Rails? J2EE? .NET? GWT?
- Politics: How to be politically correct and identify managers and customer needs.
- Communication: How to communicate with your team, managers and customers effectively.
- Requirements: What should they look like? When is enough?
Sometimes, architects specialize in one technology or framework (i.e: Web Services Architect, .NET Architect, Testing Architect). I think is natural to have more experience in a particular technology than other but that doesn’t mean that you should ignore the rest. Not always the job you are working on will help you to develop or to grow towards being and architect. That, I’m afraid to say is up to each of us.
As any software professional you have to research, read books, blogs and try to meet others with the same goals. Keep your information up to date, find tendencies, success stories, antipatterns (patterns to identify failure) and guidelines.
Here are some books I like (see the link for the full information) and think can be helpful:
And here some blogs that I like:
There is no certified recipe, you will find all kind of architects with many strengths and weaknesses. As with any other role, try to find architects that inspire you, people that you respect that will help you to keep your spark alive. Follow them in their blogs, books and conferences. They would lead you to other great professionals for sure.
Here are some of mine:
As a closing remark, keep in mind that is very important to work supporting your team and whatever you do don’t become a “Seagull architect“.
Posted in: Development, Management
Tags: Architecture, Development, Management
February 19th, 2009 / No Comments » / by Amir Barylko
I did the presentation, was pretty good!
I hope everyone enjoyed it as much as I did. The questions were pretty good and we had a nice chat about Behavior Driven Development and factories to generate random values.
Here is a video I recorded with the presentation: TDD Presentation video.
Thanks to all the participants!
See you soon.
Posted in: Development, Presentations, TDD
Tags: TDD
February 17th, 2009 / 1 Comment » / by Amir Barylko
I’m about to do the presentation for the .NET User Group.
You can download the presentation with the following links.
PPT: TDD Presentation & TDD Movie Library Demo
PDF: TDD Presentation & TDD Movie Library Demo
Here is a video I made with the presentation.
Comments are welcome!
Posted in: News, Presentations, TDD
Tags: Presentation, TDD