Software Engineering

1. Design and Development: Building Software
A. N-Tier Design: N-Tier Architecture versus Pipe Design
B. More Organization: MVC Design and MV-VM Design
C. Iterative Development: Software Evolves, Not Written
D. Functional Based Software: Data Driven Software -- No Hard-Coded-Identifiers
2. Programming: Creating A Program
A. Code Reuse: Single-Source-of-Failure versus the Copy-And-Paste School
B. Code Reviews That Work: Catch 50% of Bugs
C. Defensive Programming: Promote Errors, Don't Bury Them
D. Loosely Coupled Yet Highly Cohesive:  Where Change Does Not Mean Broken
3. Service Oriented Architecture: SOA Defined and SOA Graphic
A. Web Services: A Design Outline and Program Flow Graphic
B. The Interface: Request - Response
4. Qualtiy Assurance: Testing Defined
A. Test Driven Development: A Quantitative Development Approach
B. Blackbox Tesing: Design A Test Plan
C. Testing Metrics: QA Measurements

Be Realistic

1. There is no "Silver Bullet", no perfect solution to a problem. Every solution presents new issues.
2. 80-20 Rule: 20% of the effort solves 80% of the problem
  On Analysis: 20% of the effort provides 80% of the infomration.  Start coding and get the rest later.
3. Software cannot think nor can it read minds:  Simplify the problem so it can be coded.
4. Every "rule" has an exception!
5. Building software is about dealing with "change".  Change happens, deal with it.

Microsoft Technologies

1. C-Sharp: .NET v4.0 Highlights
2. SQL-Server
3. Windows Communications Foundataion (WCF): Fundamentals of WCF
4. Windows Presentation Foundatiaon (WPF)
5. Silverlight: A Rich Internet Application (RIA)
6. Entity Framework: EF Outline
7. Application Blocks: Proven Practices from MS

Affiliations

Institute of Electrical and Electronics Engineers

Association for Computing Machinery

10 ways to be more productive

1. Clearly define work goals, with concrete outcomes. Otherwise your efforts will produce few tangible results
2. Prioritize every duty. Key question: What difference will this task make for my team or organization?
3. Consider whether you spend your time accomplishing thins, or navigating around them. Seek to eliminate the latter.
4. When a bottle neck occurs, seek to fix it rather than complain about it – then move on.
5. Avoid working with incessant consensus seekers. These human time drains value keeping everyone happy over results-driven action.
6. Procrastination cure: Think of approaching job tasks as you would a gym workout. Focus on how good you’ll feel when you finish.
7. Cut down on meeting time by encouraging only those directly involved to attend. Outside voices will only add noise.
8. Make sure everyone at the meeting is focused on the discussion. Mobile devices should be put aside.
9. When an e-mail interrupts you, close your in box. It will be there after you finish doing what’s important.
10. Open only the most recent e-mail in a long series; it likely contains the entire thread for quick reading. Don’t respond when no response is needed.