As systems become more complex, software developers must rely upon more abstractions. Each abstraction tries to hide complexity, letting a developer write software that "handles" the many variations of modern computing.
However, the "leaky abstraction" law claims that developers of reliable software must learn the abstraction's underlying details anyway.
Example:
The SQL language abstracts away the procedural steps for querying a database, allowing one to merely define what one wants. But certain SQL queries are thousands of times slower than other logically equivalent queries. On an even higher level of abstraction, ORM systems, which isolate object-oriented code from the implementation of object persistence using a relational database, still force the programmer to think in terms of databases, tables, and native SQL queries as soon as performance of ORM-generated queries becomes a concern.
If you find this useful, you are welcome to press one of the ads in this page.. Thanks!
Showing posts with label Team Lead. Show all posts
Showing posts with label Team Lead. Show all posts
Friday, December 5, 2014
Sunday, September 29, 2013
What is a Product Owner?
PROBLEM:
What is a Product Owner?
SOLUTION:
Here is a short animated video on the role of the product owner. I thought it was pretty cool so I figured I’d share it. It’s only a few minutes. It’s worth checking out…
http://tv.ssw.com/3244/what-is-a-product-owner
If you find this useful, you are welcome to press one of the ads in this page.. Thanks!
What is a Product Owner?
SOLUTION:
Here is a short animated video on the role of the product owner. I thought it was pretty cool so I figured I’d share it. It’s only a few minutes. It’s worth checking out…
http://tv.ssw.com/3244/what-is-a-product-owner
If you find this useful, you are welcome to press one of the ads in this page.. Thanks!
Thursday, February 28, 2013
The Reality of Developer’s Life
PROBLEM:
You want to be a developer
SOLUTION:
Read this first
If you find this solution useful, you are welcome to press one of the ads in this page.. Thanks!
You want to be a developer
SOLUTION:
Read this first
If you find this solution useful, you are welcome to press one of the ads in this page.. Thanks!
Tuesday, December 11, 2012
Microsoft pulls the plug from Silverlight?
PROBLEM:
Does Microsoft pulls the plug on its Silverlight?
SOLUTION:
"..We released Silverlight 5 in December 2011 and we’ve committed to supporting Silverlight into the year 2021."
8 years left..
Read more here: http://www.zdnet.com/microsoft-pulls-the-plug-on-its-silverlight-net-site-7000008494
If you find this solution useful, you are welcome to press one of the ads in this page.. Thanks!
Does Microsoft pulls the plug on its Silverlight?
SOLUTION:
"..We released Silverlight 5 in December 2011 and we’ve committed to supporting Silverlight into the year 2021."
8 years left..
Read more here: http://www.zdnet.com/microsoft-pulls-the-plug-on-its-silverlight-net-site-7000008494
If you find this solution useful, you are welcome to press one of the ads in this page.. Thanks!
Thursday, June 30, 2011
SCRUM Wedding
PROBLEM:
You plan a wedding
SOLUTION:
You can use the following instruction guide
http://gregoryheller.com/blog/2010-12/video-scrum-wedding-planning-ignite-talk
You plan a wedding
SOLUTION:
You can use the following instruction guide
http://gregoryheller.com/blog/2010-12/video-scrum-wedding-planning-ignite-talk
If you find this solution useful, you are welcome to press one of the ads in this page.. Thanks!
Monday, January 10, 2011
6 Phases of a big project
Monday, October 25, 2010
.NET Code Review Checklist
PROBLEM:
How do you know your team's .NET code is well written?
SOLUTION:
Use the following checklist in your code reviews
Inline Documentation
- Module Headers
- Standard Routine Headers
- Routine parameters, return values, assumptions
- Constants, Module and Global variables
- Routines primary path
- Tricky code, special cases, exception handlers
Standards and guidelines
- Project Name and description
- Standard designs – message handling, clipboard, settings, etc
- Namespaces:
- CompanyName.TechnologyName[.Feature][.Design]
- Class Naming – (Pascal Case, do not use _ or prefix)
- Interface Naming – (I prefix, Pascal Case)
- Attributes Naming – (use attribute suffix)
- Interface Naming – (I prefix, Pascal Case)
- Enum Naming – (no suffix, Pascal Case)
- Static Field Naming – (Pascal Case)
- Parameter Naming – (Camel Case)
- Method Naming – (Pascal Case)
- Property Naming – (Pascal Case)
- Event Handler– (EventHandler suffix)
Change Control
- Amendment history included
- Marked changed code
- Implementation of new/changed Interfaces
Requirements/Design
- All specification features implemented
- Verification of the requirements - Unit Test
- Implementation of all interfaces defined
- Design document updated, according design changes in the implementation
Performance/Optimization
- File I/O optimized for efficiency
- File opened only once to process (unless a random-access file)
- DB - operations implemented for efficiency
- DB – correct cursor and location specified for the type of use
- DB – Use of indexed, record pointers, bookmarks
- DB – Extra records (unused) in recordsets
- Loops optimization
- Recursive routines optimization
Robustness
- Error Handling – avoid application crash
- Error Handling – meaningful defined error messages
- Error Handling – raise different error messages, according to the exceptions to provide appropriate automated response or indication to the user
- Error Handling – use of event log (to be isolated and reproduced later)
- Error Handling – catch blocks for all type of exceptions
- Transaction – group related executions and protect against failures (Commit, Rollback)
Data Use and Control
- Minimize use of global variables
- Module variables use
- Variables – declarations with the smallest scope possible
- Variables – declared with a specific type (the smallest type appropriate for the data)
- Variables – clear names to identify the use
- Variables - Data comparisons of the same type
- Variables (module and global) – initialized to default values
- Magic numbers avoided using constants and macros
- Use of Multiple-individual variables – group related data instead
Execution Control
- Functions – return proper value
- Recursive functions – boundary safeguards
- Modularization use – remove deep nesting of control statements.
- Comparisons – proper bracketed evaluations (ensure right order of priority)
Portability
- External OS related components testing – ensure compliance with requirements
- Platform specific code – clearly identified
Localization (if supported)
- Component integrations with the OS regional settings or any application settings
- Code implemented to account for user localization issues
- Presenting data – user specified date, currency formats, font, color selections, sort orders etc.
- Application correct respond to region changes
- Use of Resource file or language library – to enable easy deploy in multiple languages
Style and Layout
- Consistent use of style elements
- Code easy to read
Reusable
- Common code identified for inclusion in a common library
- Duplicated common code
Testable
- Driver program for independent test of the component
- Unit test plans used and applied – to identify critical test elements
Data Access
- General configurations (connection string)
- Proper use of Data objects
- Error Handle – use try – catch – finally blocks (close connection object)
Assemblies
- Naming Conventions (namespace)
- Assembly location (local, GAC)
- Multi File / Single File assembly
- Versioning
ASP.NET
- State Management (State object, Session / Application)
- Configuration
- Controls
- Security
- Caching
- Error Message Handle
- UI – CSS, Page Templates
Remoting Configurations
- Activation Type (Client, Singlecall, Singleton)
- Registration
- Appropriate use - (synchronous, asynchronous)
If you find this solution useful, you are welcome to press one of the ads in this page.. Thanks!
Tuesday, May 11, 2010
8 Habits Of Highly Effective Manager
PROBLEM:
How do you know you are a good manager?
SOLUTION:
1. Be a good coach - Provide specific, constructive feedback, balancing negative and positive. Have regular one-on-ones, presenting solutions to problems tailored to the employee's strengths.
2. Empower your team and don't micro-manage - Balance giving freedom to your employees while still being available for advice. Make "stretch" assignments to help them tackle big problems.
3. Express interest in employees' success and well-being - Get to know your employees as people, with lives outside of work. Make new folks feel welcome, help ease the transition.
4. Be productive and results-oriented - Focus on what you want the team to achieve and how employees can help achieve it. Help the team prioritize work, and make decisions to remove roadblocks.
5. Be a good communicator and listen to your team - Communication is two-way: Both listen and share. Hold all-hands meetings and be specific about the team's goals. Encourage open dialogue and listen to the questions and concerns of your employees.
6. Help your employees with career development
7. Have a clear vision and strategy for the team - Even amid turmoil, keep the team focused on goals and strategy. Involve the team in setting and evolving the team's vision, goals, and progress.
8. Have key technical skills, so you can help advise the team - Roll up sleeves and work side-by-side with team, when needed. Understand the specific challenges of the work.
THREE PITFALLS
1. Have trouble making transition to team leader - Fantastic individual performers are often promoted to manager without the necessary skills to lead. People hired from outside often don't understand the specific ways of the company.
2. Lack a consistent approach to performance management and career development. Doesn't help employees understand what company wants. Doesn't coach employees on how they can develop and stretch. Not proactive: Waits for the employees to come to them.
3. Spend too little time on managing and communicating
Reference:http://www.businessinsider.com/8-habits-of-highly-effective-google-managers-2011-3#ixzz1HJQnYZms
1. Be a good coach - Provide specific, constructive feedback, balancing negative and positive. Have regular one-on-ones, presenting solutions to problems tailored to the employee's strengths.
2. Empower your team and don't micro-manage - Balance giving freedom to your employees while still being available for advice. Make "stretch" assignments to help them tackle big problems.
3. Express interest in employees' success and well-being - Get to know your employees as people, with lives outside of work. Make new folks feel welcome, help ease the transition.
4. Be productive and results-oriented - Focus on what you want the team to achieve and how employees can help achieve it. Help the team prioritize work, and make decisions to remove roadblocks.
5. Be a good communicator and listen to your team - Communication is two-way: Both listen and share. Hold all-hands meetings and be specific about the team's goals. Encourage open dialogue and listen to the questions and concerns of your employees.
6. Help your employees with career development
7. Have a clear vision and strategy for the team - Even amid turmoil, keep the team focused on goals and strategy. Involve the team in setting and evolving the team's vision, goals, and progress.
8. Have key technical skills, so you can help advise the team - Roll up sleeves and work side-by-side with team, when needed. Understand the specific challenges of the work.
THREE PITFALLS
1. Have trouble making transition to team leader - Fantastic individual performers are often promoted to manager without the necessary skills to lead. People hired from outside often don't understand the specific ways of the company.
2. Lack a consistent approach to performance management and career development. Doesn't help employees understand what company wants. Doesn't coach employees on how they can develop and stretch. Not proactive: Waits for the employees to come to them.
3. Spend too little time on managing and communicating
Reference:http://www.businessinsider.com/8-habits-of-highly-effective-google-managers-2011-3#ixzz1HJQnYZms
If you find this solution useful, you are welcome to press one of the ads in this page.. Thanks!
Sunday, January 10, 2010
SCRUM in under 10 minutes
PROBLEM:
You have only 10 minutes to decide if you are going to use Scrum in your next project
SOLUTION:
http://www.youtube.com/watch?v=Q5k7a9YEoUI&hl=iw
If you have more than 10 minutes, you can start with this must read document "Scrum and XP - Beyond the trenches"
You have only 10 minutes to decide if you are going to use Scrum in your next project
SOLUTION:
http://www.youtube.com/watch?v=Q5k7a9YEoUI&hl=iw
If you have more than 10 minutes, you can start with this must read document "Scrum and XP - Beyond the trenches"
If you find this solution useful, you are welcome to press one of the ads in this page.. Thanks!
Friday, January 1, 2010
System Quality Description
PROBLEM:
You need a short list of system quality issues
SOLUTION:
You need a short list of system quality issues
SOLUTION:
- Security - Ability of a system to protect itself and its resources from unauthorized use – including access, disclosure, modification, and destruction.
- Availability - Ability of a service to remain operational, with minimal interruption or degradation, based on a service level. In the event of a failure of one or more of its parts, a service should remain operational. The level of tolerance for faults will vary, so one or more parts has a bound that is influenced by other business conditions.
- Reliability - Ability of a system component to repeatedly produce the same results in accordance with its specifications.
- Performance - Refers to a combined measurement of response time and throughput that meets established, service-level agreements. This may include network performance or latency between two network end points or, more importantly, how it effects a client application and end user.
- Scalability - Ability of an architecture to accommodate greater intermittent or sustained demands for service without reducing performance or availability. The network provides scalability by being able to handle additional traffic, services, and service instances (hosts, switches, and so on).
- Manageability - Ease with which a system can be managed, monitored, and maintained.
If you find this solution useful, you are welcome to press one of the ads in this page.. Thanks!
Subscribe to:
Posts (Atom)