Five Rules For Successful Conversations With Developers

By Joshua Feierman, 2014/02/07

As a DBA, though you would like very much to avoid it, sooner or later you will encounter the frightening creature known as The Developer. In the wilds of the development environments they often roam unfettered, with sysadmin level access for all and nary a stored procedure in sight (because they prefer the use of tools such as Hibernate and Entity Framework, rather than actually learning to write SQL and design databases). But, like it or not, these animals are actually the life blood of the companies you work for.

In my previous article, Five Rules For Effective Conversations With DBAs, I came at this seemingly never-ending conflict from the perspective of a developer trying his best to get along with the neighborhood DBA. Now, we are going to switch sides and see how DBAs can also work better with their counterparts on the development side. I've been in both seats, having moved from development to support and back again throughout my career in IT, so I can see both sides of the equation. And believe me, while I was harsh on the developers, I'm going to be equally harsh on those of us on the production front lines.

If you read my previous article, you will see some overlap here, because some of the principles apply both ways. But at the same time, there are some things that we as DBAs have the unique power to do that will help forge a mutually respectful relationship.

So, without any delay, and in no particular order, here are my top five rules for DBAs to follow when dealing with those who call themselves "Developers".

Rule number one: Be a teacher, not a bully
When developers come to you asking for things, there will probably be times when the things they are asking for are so blatantly wrong that you feel the overwhelming desire to yell (in your best Gunnery Sergeant Hartman impression) "What is your major malfunction?!". Do yourself a favor: take a deep breath, count to ten, punch a wall (okay, perhaps that one is not the best option), whatever you need to do to calm down.

Look, I get that you think that anyone who honestly thinks that an account needs sysadmin rights to execute a stored procedure deserves to never again see a keyboard. But remember, you probably have the benefit of years of focused time working with SQL Server, whereas developers are (at least in my experience) generally expected to be Jacks Of All Trades. Perhaps they haven't had the chance to experiment on their own, or this is their first time working with the platform. Either way, you have a unique opportunity to shape their skills and help them be better at their job.

Instead of bashing them and berating their every effort, offer to take them under your wing and teach them how to do things the right way. Maybe they will refuse and stubbornly insist that their way is the only correct way (in which case feel free to point them to point numbers three and four of my previous article), but you owe it to yourself and your company to give them ample chance to learn.

Rule number two: Build them a toolbox
One of the best ways to increase the communal SQL Server knowledge is via a shared script library, where the best and brightest SQL Server folks (which may often be the DBAs) in the company can put pre-written examples and templates for use by others. This can come in extremely handy when folks come to you asking for help completing some task related to the database layer of their applications, since you may well be able to hand them a pre-approved, efficient example of how to accomplish exactly what they are asking. It also can serve as an effective tool for enforcing best practices; if you think about it, it is far easier to say "No, you can't do it that way, but let me give you this script which shows how to do it correctly," versus "No, you can't do it."

Let's take a simple example: the need to convert a date/time to the effective beginning of the day. Maybe you see this in some code you are reviewing:
set @start_of_day = cast(cast(datepart('year',@date) as varchar) + '-' + cast(datepart('month',@date) as varchar) + '-' + cast(datepart('day',@date) as varchar) + ' 00:00:00' as datetime);
You simply point them do your nifty little script, where you use the much more manageable:

set @start_of_day = dateadd(day,datediff('day',0,@date),0); That's a simple example, but a powerful one. Over time, you can build up quite the library of commonly needed code. You can even include more complex things, like a set of standard scripts for setting up Service Broker connections between servers. I've seen this taken so far as giving developers a compiled program that will auto-generate standards compliant CRUD stored procedures when pointed at a database. This was received with great appreciation and went a long way towards helping folks write better code. So feel free to dust off your programming skills and go nuts. Not only will you be helping to make things easier for your developers, but you will also save the company time and money.

Rule number three: Don't include the world in your communications
This one is a complete repeat of the same point my previous article, and I am going to hold you to the same standard. I know that it really irks you when those pesky folks call you out in public, especially when they are completely wrong. And I know that you really want to illustrate to management how horrible that person's skills are, and how they should be instantly banished to the nether-world, never to code a line of T-SQL again. But, returning fire or initiating the first volley in the open will result in nothing but resentment and further the image of the Bully DBA. Be the bigger person and make it a point to (a) not respond in kind, (b) take all critical conversations off the public thread. Then, when the two of you have worked out your differences privately, you should feel free to respond to the group indicating that you have reached a mutual understanding.

You will end up looking like the mature and socially graceful individual you are (well, it's something to strive for at least, right?), and you may end up getting yourself some valuable credibility with your developer comrades for not humiliating them in public. "Why should I care about credibility with those [insert insulting name here]," you ask? That's easy: because that street cred will mean you have a better chance of getting them to follow your (come on, admit it, slightly anal retentive) rules without a full out battle.

Rule number four: Don't judge a book by its cover
Look, I know that you have had to deal with some truly incompetent developers in your time in IT. And over time, it's only natural to start assuming that every new developer you work with is a member of that bunch. But that's not fair to those individuals who truly care about the craft of engineering software. I have met some people who have incredible talents in making Transact-SQL sing, and take the database side of their work as seriously as any DBA. Equally important, I have dealt with folks who, when I first met them, seemed so totally clueless around SQL Server that I considered attempting to have them banned from doing any work in that area. But, given time and (a nod to my earlier rule number one) some coaching, they matured into very good SQL developers.

My point is this: don't go into every interaction you have with the mindset that the person opposite you is inherently incompetent and needs to be beaten into submission. This attitude will only serve to alienate the good developers and destroy any chance you have of finding a diamond in the rough. Outside of that, you'll likely come of as a condescending jerk, which, at least in my mind, is something we'd like to avoid.

On a related note, let's not forget that for every incompetent developer, there is probably a corresponding equally incompetent DBA out there. You are no more immune to laziness and apathy than our counterparts, so get rid of your righteous "better-than-thou" attitudes.

Rule number five: Remember what they are paid for
As I told the developers in the audience last time, you need to understand where your counterparts are coming from if you are going to get out of the cycle of endless war. And when it comes to developers, the answer is equally simple as with DBAs: developers are paid to deliver results. If they can figure out a way to meet their business requirements on time, but doing it your (standardized) way would result in them missing their timetable, expect an argument, and expect a passionate one. In some cases their pay may be directly tied to the product shipping on time or some other effort based metric, and by trying to make them follow the rules, you will be perceived as threatening their livelihood. They are not going to care about your law against using ORM tools because of how they cause plan cache bloat; they only care that writing all those stored procedures means many nights of late work if they are going to get their work out the door. And frankly, I think they have every right to be upset if you try and push arbitrary changes on them late in the game, especially if they did the right thing and involved you early on in the process.

So how can we overcome this difference? A good first step is to try and insert yourself as early in the development process as possible. Talk to the development managers to make sure that you are invited to their whiteboard sessions and have a chance to review all design documents before work begins. This way, you have a better chance of catching bad designs before work is done, thereby eliminating the classic "But we've already written it this way and it will take twice the time to re-do it" argument. When developers realize that they can follow your rules without greatly impacting their work, I've found they generally are pretty amicable to doing so.

Another simple action that will go a long way is to make sure that your guidelines are clearly published and accessible, so that teams can see them at all points during the process. Hold regular town hall meetings where people can come and propose new rules, and let people outside of the DBA realm have a vote on what changes get made versus what gets thrown out. Transparency and communication are key. And while I'm not going to go into a lot of detail on this last point (that is a whole separate article I'm writing), I think we need to be very conscious about the differences between something that is a truly worthy of being regulated, versus trying to force others to follow our own particular style. Suffice it so say, keep your standards as lean and simple as possible. Think of them as a basic "SQL 101", where as long as you follow these, you have at least a chance of avoiding the bane of poorly written database code. If your list of rules is starting to look like the federal tax code, you're definitely doing it wrong.

As I stated in the counter article to this one, the relationship between developers and DBAs will always be contentious. Whether you are deserving of the reputation or not, DBAs are often viewed as tyrannical and hard-headed. While a little of that nature is generally a good thing (do you really want someone who will fold under pressure protecting your critical systems?), thinking about some simple ideas such as those presented here will go a long way towards breaking down those perceptions. And once those barriers are removed, you might be pleasantly surprised at what can be accomplished when the two sides work together.
View original article

Microsoft Surface Family Grows as Surface Pro

Microsoft Corp. announced the Microsoft Surface family of PCs is growing with Surface Pro, the newest member of the Surface family, along with a number of new products and accessories available tomorrow. Surface Pro with Windows 8 Pro is perfect for customers and businesses looking for the power and performance of a PC in a tablet package, and, starting tomorrow, it will hit physical and virtual shelves in the United States and Canada at all Microsoft retail stores and and at Staples and Best Buy in the United States and Best Buy and Future Shop in Canada.

New Products

Also starting tomorrow, customers will be able to purchase several new Surface products and accessories, letting them further personalize their computing experiences and be more productive.

·         Surface RT with Windows RT will be available in a new 64GB(1) standalone version for an estimated retail price of US$599 to allow customers the option of selecting a cover of their choice.

·         Customers will be able to purchase a Wedge Touch Mouse Surface Edition for an estimated retail price of US$69.95 in all markets where Surface is currently sold,(2) with additional markets to follow in the coming weeks.(3)

·         Three new Touch Cover Limited Editions in red, magenta and cyan will be available for an estimated retail price of US$129.99 in all markets where Surface is currently sold.(2)

Samsung New Generation Of Screens

Samsung youm

New Samsung screen techonology named YOUM Flexible

Share with your friend

Like our page to keep you up-to-date with the latest news

Keyboard Shorcuts (Microsoft Windows)

1. CTRL+C (Copy)
2. CTRL+X (Cut)
...... 3. CTRL+V (Paste)
4. CTRL+Z (Undo)
5. DELETE (Delete)
6. SHIFT+DELETE (Delete the selected item permanently without placing the item in the Recycle Bin)
7. CTRL while dragging an item (Copy the selected item)
8. CTRL+SHIFT while dragging an item (Create a shortcut to the selected item)
9. F2 key (Rename the selected item)
10. CTRL+RIGHT ARROW (Move the insertion point to the beginning of the next word)
11. CTRL+LEFT ARROW (Move the insertion point to the beginning of the previous word)
12. CTRL+DOWN ARROW (Move the insertion point to the beginning of the next paragraph)
13. CTRL+UP ARROW (Move the insertion point to the beginning of the previous paragraph)
14. CTRL+SHIFT with any of the arrow keys (Highlight a block of text)
15. CTRL+A (Select all)
16. F3 key (Search for a file or a folder)
17. ALT+ENTER (View the properties for the selected item)
18. ALT+F4 (Close the active item, or quit the active program)
19. ALT+ENTER (Display the properties of the selected object)
20. ALT+SPACEBAR (Open the shortcut menu for the active window)
21. CTRL+F4 (Close the active document in programs that enable you to have multiple documents opensimultaneou sly)
22. ALT+TAB (Switch between the open items)
23. ALT+ESC (Cycle through items in the order that they had been opened)
24. F6 key (Cycle through the screen elements in a window or on the desktop)
25. F4 key (Display the Address bar list in My Computer or Windows Explorer)
26. SHIFT+F10 (Display the shortcut menu for the selected item)
27. ALT+SPACEBAR (Display the System menu for the active window)
28. CTRL+ESC (Display the Start menu)
29. ALT+Underlined letter in a menu name (Display the corresponding menu) Underlined letter in a command name on an open menu (Perform the corresponding command)
30. F10 key (Activate the menu bar in the active program)
31. RIGHT ARROW (Open the next menu to the right, or open a submenu)
32. LEFT ARROW (Open the next menu to the left, or close a submenu)
33. F5 key (Update the active window)
34. BACKSPACE (View the folder onelevel up in My Computer or Windows Explorer)
35. ESC (Cancel the current task)
36. SHIFT when you insert a CD-ROMinto the CD-ROM drive (Prevent the CD-ROM from automatically playing)
Dialog Box - Keyboard Shortcuts
1. CTRL+TAB (Move forward through the tabs)
2. CTRL+SHIFT+TAB (Move backward through the tabs)
3. TAB (Move forward through the options)
4. SHIFT+TAB (Move backward through the options)
5. ALT+Underlined letter (Perform the corresponding command or select the corresponding option)
6. ENTER (Perform the command for the active option or button)
7. SPACEBAR (Select or clear the check box if the active option is a check box)
8. Arrow keys (Select a button if the active option is a group of option buttons)
9. F1 key (Display Help)
10. F4 key (Display the items in the active list)
11. BACKSPACE (Open a folder one level up if a folder is selected in the Save As or Open dialog box)

Microsoft Natural Keyboard Shortcuts
1. Windows Logo (Display or hide the Start menu)
2. Windows Logo+BREAK (Display the System Properties dialog box)
3. Windows Logo+D (Display the desktop)
4. Windows Logo+M (Minimize all of the windows)
5. Windows Logo+SHIFT+M (Restorethe minimized windows)
6. Windows Logo+E (Open My Computer)
7. Windows Logo+F (Search for a file or a folder)
8. CTRL+Windows Logo+F (Search for computers)
9. Windows Logo+F1 (Display Windows Help)
10. Windows Logo+ L (Lock the keyboard)
11. Windows Logo+R (Open the Run dialog box)
12. Windows Logo+U (Open Utility Manager)
13. Accessibility Keyboard Shortcuts
14. Right SHIFT for eight seconds (Switch FilterKeys either on or off)
15. Left ALT+left SHIFT+PRINT SCREEN (Switch High Contrast either on or off)
16. Left ALT+left SHIFT+NUM LOCK (Switch the MouseKeys either on or off)
17. SHIFT five times (Switch the StickyKeys either on or off)
18. NUM LOCK for five seconds (Switch the ToggleKeys either on or off)
19. Windows Logo +U (Open Utility Manager)
20. Windows Explorer Keyboard Shortcuts
21. END (Display the bottom of the active window)
22. HOME (Display the top of the active window)
24. NUM LOCK+Plus sign (+) (Display the contents of the selected folder)
25. NUM LOCK+Minus sign (-) (Collapse the selected folder)
26. LEFT ARROW (Collapse the current selection if it is expanded, or select the parent folder)
27. RIGHT ARROW (Display the current selection if it is collapsed, or select the first subfolder)
Shortcut Keys for Character Map
1. RIGHT ARROW (Move to the rightor to the beginning of the next line)
2. LEFT ARROW (Move to the left orto the end of the previous line)
3. UP ARROW (Move up one row)
4. DOWN ARROW (Move down one row)
5. PAGE UP (Move up one screen at a time)
6. PAGE DOWN (Move down one screen at a time)
7. HOME (Move to the beginning of the line)
8. END (Move to the end of the line)
9. CTRL+HOME (Move to the first character)
10. CTRL+END (Move to the last character)
11. SPACEBAR (Switch between Enlarged and Normal mode when a character is selected)
Microsoft Management Console (MMC)
Main Window Keyboard Shortcuts
1. CTRL+O (Open a saved console)
2. CTRL+N (Open a new console)
3. CTRL+S (Save the open console)
4. CTRL+M (Add or remove a console item)
5. CTRL+W (Open a new window)
6. F5 key (Update the content of all console windows)
7. ALT+SPACEBAR (Display the MMC window menu)
8. ALT+F4 (Close the console)
9. ALT+A (Display the Action menu)
10. ALT+V (Display the View menu)
11. ALT+F (Display the File menu)
12. ALT+O (Display the Favorites menu)

MMC Console Window Keyboard Shortcuts
1. CTRL+P (Print the current page or active pane)
2. ALT+Minus sign (-) (Display the window menu for the active console window)
3. SHIFT+F10 (Display the Action shortcut menu for the selected item)
4. F1 key (Open the Help topic, if any, for the selected item)
5. F5 key (Update the content of all console windows)
6. CTRL+F10 (Maximize the active console window)
7. CTRL+F5 (Restore the active console window)
8. ALT+ENTER (Display the Properties dialog box, if any, for theselected item)
9. F2 key (Rename the selected item)
10. CTRL+F4 (Close the active console window. When a console has only one console window, this shortcut closes the console)
Remote Desktop Connection Navigation
1. CTRL+ALT+END (Open the Microsoft Windows NT Security dialog box)
2. ALT+PAGE UP (Switch between programs from left to right)
3. ALT+PAGE DOWN (Switch between programs from right to left)
4. ALT+INSERT (Cycle through the programs in most recently used order)
5. ALT+HOME (Display the Start menu)
6. CTRL+ALT+BREAK (Switch the client computer between a window and a full screen)
7. ALT+DELETE (Display the Windows menu)
9. CTRL+ALT+Plus sign (+) (Place asnapshot of the entire client window area on the Terminal server clipboardand provide the same functionality aspressing ALT+PRINT SCREEN on a local computer.)

Microsoft Internet Explorer Keyboard Shortcuts
1. CTRL+B (Open the Organize Favorites dialog box)
2. CTRL+E (Open the Search bar)
3. CTRL+F (Start the Find utility)
4. CTRL+H (Open the History bar)
5. CTRL+I (Open the Favorites bar)
6. CTRL+L (Open the Open dialog box)
7. CTRL+N (Start another instance of the browser with the same Web address)
8. CTRL+O (Open the Open dialog box,the same as CTRL+L)
9. CTRL+P (Open the Print dialog box)
10. CTRL+R (Update the current Web )

Windows 8 Quick View

What's new

The Start screen


Mouse, keyboard—and now touch


New PCs


Apps from the Windows Store


Millions of streaming songs


Your Windows, everywhere


Share with your friend


Windows 8 tips and tricks

In these key combinations, hold down the Windows key (normally located between Alt and Ctrl) and another key, as described on this list.

  • Press the Windows key to enter the tiled Start screen.
  • The Windows key + M minimizes everything that's showing on the desktop.
  • The Windows key + E opens Explorer for quick access to folders.
  • On the Start screen, press the Windows key + D to instantly get to the desktop.
  • The Windows key + Tab opens a list of currently running programs.
  • The Windows key + Print Screen takes a screenshot and saves it in a Screenshots folder nested in your Pictures folder.
  • The Windows key + Q opens a global search menu. Type what you're looking for and where you would like to look.
  • The Windows key + W opens a search in your system settings to quickly locate and change system properties.
  • The Windows key + F opens a file and folder search.
  • The Windows key + Pause opens the system properties page to show you a quick rundown of your specs.
  • The Windows key + "," (that's the comma sign!) makes all current windows transparent, giving you a peek at the desktop as long as you hold down the Windows key.
  • The Windows key + "." (the period) snaps a window to the right or left side (toggling each time you press ".").
  • The Windows key + R prompts the Run command—useful for quickly launching apps and other routines with a command prompt.
  • The Windows key + X opens the Quick Access Menu, exposing system functionality such as the Command Prompt, Disk Management, File Explorer, Run, and more. Alternatively, you can right-click on the bottom right corner of the screen to spawn the Quick Access Menu.
  • The Windows key + I opens the settings menu, giving you quick access to the Control Panel, Personalization, and your Power button, among other features.
  • The Windows key + O locks orientation on devices with an accelerometer.
20 must-know Windows 8 tips and tricks

iPhone Secret Code

Here are some more secret iPhone codes for you to enjoy. After realizing that the *3001#12345#* was a familiar Nokia code, I decided to spend some time googling for other phone codes that might work on the iPhone. These (mostly) do. There are more. Feel free to add your own to the comments.

*3001#12345#* and tap Call. Enter Field Mode.


*#06# Displays your IMEI. No need to tap Call.


*777# and tap Call. Account balance for prepaid iPhone.

*225# and tap Call. Bill Balance. (Postpaid only)

*646# and tap Call. Check minutes. (Postpaid only)

These three are pretty self explanatory.

*#21# and tap Call. Setting interrogation for call forwards.

Discover the settings for your call forwarding. You'll see whether you have voice, data, fax, sms, sync, async, packet access, and pad access call forwarding enabled or disabled.

*#30# and tap Call. Calling line presentation check.

This displays whether you have enabled or disabled the presentation of the calling line, presumably the number of the party placing the call.

*#76# and tap Call. Check whether the connected line presentation is enabled or not.

State whether the connected line presentation is enabled or disabled. Presumably similar to the calling line presentation.

*#43# and tap Call. Determine if call waiting is enabled.

Displays call waiting status for voice, data, fax, sms, sync data, async data, packet access and pad access. Each item is either enabled or disabled.

*#61# and tap Call. Check the number for unanswered calls.

Show the number for voice call forwarding when a call is unanswered. Also show the options for data, fax, sms, sync, async, packet access and pad access.

*#62# and tap Call. Check the number for call forwarding if no service is available.


*#67# and tap Call. Check the number for call forwarding when the iPhone is busy.

And again, but for when the iPhone is busy.

*#33# and tap Call. Check for call control bars.

Check all the usual suspects (voice, data, fax, sms, etc) to see whether barring is enabled or disabled for outgoing.
Share with your friend


Samsung Galaxy Secret Code

*#06# (Display IMEI number)
*#1234# (Display current firmware)
*#*#4636#*#* (Diagnostic and general settings mode)
*#*#7780#*#* (Factory soft reset)
or *#7780#
*2767*3855# (Factory hard reset to ROM firmware default settings)
*2767*4387264636# (To display product code)
*#272*imei#* (Display/change CSC code)
or *#272*HHMM#*
*#*#1472365#*#* (GPS test settings)
*#*#197328640#*#* (Service mode main menu)
*#12580*369# (SW & HW Info)
*#232337# (Bluetooth Address)
*#232331# (Bluetooth Test Mode)
*#232338# (WLAN MAC Address)
*#0228# (ADC Reading)
*#32489# (Ciphering Info)
*#2263# (RF Band Selection)
*#9090# (Diagnostic ConfiguratioN)
*#7284# (USB I2C Mode Control)
*#232339# (WLAN Test Mode)
*#0842# (Vibra Motor Test Mode)
*#0782# (Real Time Clock Test)
*#0673# (Audio Test Mode)
*#0*# (General Test Mode)
*#872564# (USB Logging Control)
*#4238378# (GCF Configuration)
*#0283# (Audio Loopback Control)
*#1575# (GPS Control Menu)
*#3214789650# (LBS Test Mode)
*#745# (RIL Dump Menu)
*#03# (NAND Flash S/N)
*#0589# (Light Sensor Test Mode)
*#0588# (Proximity Sensor Test Mode)
*#273283*255*3282*# (Data Create Menu)
*#34971539# (Camera Firmware Update)
*#526# (WLAN Engineering Mode)
*#746# (Debug Dump Menu)
*#9900# (System Dump Mode)
*#44336# (Sofware Version Info)
*#273283*255*663282*# (Data Create SD Card)
*#3282*727336*# (Data Usage Status)
*#7594# (Remap Shutdown to End Call TSK)
*#0289# (Melody Test Mode)
*#2663# (TSP / TSK firmware update)
*#528# (WLAN Engineering Mode)
*#7412365# (Camera Firmware Menu)
or *#*#34971539#*#*
*#80# (Unknown)
*#07# (Test History)
*#3214789# (GCF Mode Status)
*#272886# (Auto Answer Selection)
*#8736364# (OTA Update Menu)
*#301279# (HSDPA/HSUPA Control Menu)
*#7353# (Quick Test Menu)
*2767*4387264636# (Sellout SMS / PCODE view)
*#7465625# (View Phone Lock Status)
*7465625*782*# (Configure Network Lock NSP)
*7465625*27*# (Insert Network Lock Keycode NSP/CP)
#7465625*27*# (Insert Content Provider Keycode)
#7465625*782*# (Insert Partitial Network Lock Keycode)
*7465625*77*# (Insert Network Lock Keycode SP)
#7465625*77*# (Insert Operator Lock Keycode)
*7465625*638*# (Configure Network Lock MCC/MNC)
#7465625*638*# (Insert Network Lock Keycode)
Share with your friend


About Us

Since 2009,the Software Senior Company specialized in programming the most innovative applications and web software, and offering all kinds of consultancy in terms of IT and programming.


- Specialized in web design, web Development, E-commerce solutions
- Analysis of websites, landing pages, application interfaces
- Content and code analysis for search engine optimization (SEO)


Social Media is the New Public Relations:
- Create Facebook Page
- Twitter
- Online Marketing (facebook, google, live ....)
- Facebook Application


Business Solution:
- Advanced Business Solutions' highly scalable software solutions are widely used in a large range of service-based organisations