This developer's chronicles

Web development using Scrum, C#, AngularJS and the like

Month: January 2015 (page 2 of 2)

Getting the Ubiquitous Language right first time

Getting the what? what does ‘ubiquitous language’ mean and have to do with software development?

First, we have the definition found in the Domain Driven Design community page:

“[Ubiquitous Language]] A language structured around the domain model and used by all team members to connect all the activities of the team with the software.”

Simply put, ubiquitous language is a group of words/sentences that is both developed and shared between software developers and domain experts aimed at reducing misunderstandings and confusions during all stages of the software development (the term ‘ubiquitous language’ was coined by Eric Evans and even though is associated with Domain Driven Design its application and usability can span across all practices).

What are the advantages of using Ubiquitous Language?

The advantages are, to name a few:

  1. Simplicity: by using a shared name for an object (or a business rule, etc) both teams (developers and users) can speak the same language avoiding confusions.
  2. No mental translation that can lead to errors: by calling things by a unique name we avoid having to translate from the word used by the domain experts to the word we use as developers (an example of this would be the term ‘receipt’, which can referred to in a different way by an accountant etc)
  3. Code re-factoring that uses ‘Ubiquitous Language’ can be easily understood by the entire team: how many times as developers we have felt the urge or re-factoring but are short of ideas on how to name our newly created methods? if we stick to the  ‘Ubiquitous Language’ and avoid using synonyms we’ll save ourselves a great deal of confusion later on.

Some valuable resources I found on this topic are:

 

Do you have an experience where using Ubiquitous language has saved you a great deal of pain?

Do we as developers need to improve our presentation and communication skills?

As developers (or nearly at every other technical profession really) we constantly strive for mastering all the sorts of technologies we work with on a daily basis (there is nothing wrong with it though) but we sometimes forget (or have not come to the realization of) something that is equally important for our career and for our personal growth, and that is being able to effectively communicate with colleagues at work, with our management, our customers / clients, etc.

Having as two of my main goals becoming a better software developer and a better communicator I joined the firebootcamp at SSW (a post about this shortly). And precisely today we had the opportunity to have a short 30 seconds group presentation about ourselves and a potential side project we’ll be working on for the next nine weeks.

What was the result of my presentation? plenty of erms and hmms and  an introduction that was too short for the time allocated (even with the inclusion of a bad joke at the end!)

Fortunately the response, feedback and support from our team and instructor was excellent and we had a second go at it which it went reasonably better than the first one, it is incredible what we can achieve in  such a short period of time if some feedback is provided and we’re prepared to listen to it and act accordingly.

Being said that, I thought it would be relevant to share this experience along with some tips I’ve found on how to improve your communication and presentation skills, who knows, maybe you or me will be the next Scott Hanselman’s of whatever the field you want to be good at is !

  • Join your local Toastmasters club, there is a very low cost associated to it and you get great tips and feedback.
  • Any TED that sounds interesting will do, you can have a look here

Who is your favorite speaker? can you give us another topic on how to improve your communication / presentation skills? I’d love to add it to this list !.

Thanks for reading

Harold

Tips on how to pass Microsoft exam 70-480: Programming in HTML5 with JavaScript and CSS3

Microsoft exam 70-480 is one of the first exams a .NET web developer faces in their career and hopefully with this blog post I’ll make it a bit easier for you to pass it on your first attempt if you haven’t sat it or to finally take the bull by the horns.

Tip 1: Know the topics covered in the exam

If you start with this one you can pat yourself on the back now!. By doing your research and knowing what skills you need to master before you start studying for the exam you will be able to have a better planning and a better outcome.

The topics for the 70-480 exam can be found here, make sure you have a thorough read and don’t worry if you don’t understand some of its content. it will start to make sense once you spend some time studying and practicing

Tip 2: Make your game plan

Now that you know what topics may be asked during the exam you can start planning which ones you’re going to study first and how long you honestly think it’s going to take you to review/study the theory plus the amount of time you will spend practicing it.

Tip 3: Get this Microsoft training guide

Why this training guide? Firstly because it covers most topics of the exam and secondly because it is laid in a way that makes learning easier, you start with the easy stuff and progress towards more complicated things (I followed it chapter by chapter and as I was doing ALL the exercises in the book and finishing the chapters I could simply cross-out those items/topics from the ‘to be studied’ list).

Tip 4: Watch videos on your way to work / school / Uni

Rather than spending your valuable time checking your facebook on your daily commute, download a few videos from Youtube (or Microsoft Virtual Academy, Pluralsight, Udemy etc etc) about the new HTML5 APIs, or CSS3, or Javascript etc. Make sure you watch the same videos a couple of times and once you have access to your computer put all that into practice. You will be amazed how fast you learn / grasp knowledge by watching and then doing.

Tip 5: Create a small project

This is the best part for me because you get to choose a fun project to work on and you can practice the really cool things you have been learning so far (you can manipulate the DOM and make objects fade in/fade out or get a user’s position by using the HTML5 Geolocation API, etc, etc), think about it, the sky is the limit!

6. Do a couple of practice tests

You have a few options to know if you are almost ready to sit this exam, one is to pay around $200 (AUD) for the real exam and give it a go (there are always deals to have a second shot free or charge), alternatively you can buy a practice exam for about half that price (or you can always ask Google for a cheaper option !).

Regardless of your choice make sure you do at least one practice test so you get the feeling of what the test is like, the timing involved and whether you need to go back and review some items.

Do you know any other topics that can help devs sitting this or any other exam? I’d love to hear them and add them to this list !.

Newer posts