Career

Friday the 13th – Knowledge Evaluation

August 14, 2010 Career, Success 6 comments

As I promised, here is post on Knowledge Evaluation for the Senior level.

Definition of a Senior Level Developer

In most of the sources, Senior level is defined as level on which person is responsible for building complex components with minimal guidance and being unsupervised. Also person is an expert in language and has experience in business areas. I personally like definitions, where they additionally indicate person’s interest in software and bringing business value to the client.

So, who is Senior Developer?

Senior Developer is guy, who can and likes to code on any level of complexity, therefor he is able to build certain project parts, taking responsibility for the work being done. He can and likes to mentor and teach other members of the team; keeping his skills up to date and bringing this knowledge to the team he is leading by example.

For me being Senior Developer isn’t just label, that is indicated somewhere in the company by HR. It isn’t only list of responsibilities/duties I will be stick to. It is significant breakthrough in my career, that blesses me to move on. Moreover it is another step to self-actualize myself by accomplishing my life goals. Again, it is part of my RoadMap (I feel, that I need some post on it, but cannot till map is rolled in one or few places.)

Knowledge Evaluation

Except of taking into account my performance, company should always evaluate my knowledge to proceed with promotion.

My theoretical knowledge of programing and language isn’t under question

For some reason, my evaluators were not concerned about my theoretical knowledge of the core programming and language. That is why I got only few questions about database access, code quality and few other. Btw, for Med evaluation, most of the questions were exactly on core .net and surrounding things.

Non-coding aspects played more evident role in evaluation
Our meeting was about to find out if I’m able successfully communicate and work with team/client, if I’m competent in mentoring/coaching more junior staff, also how would I proceed with project management, like evaluating requirements, managing risks, doing proposals, and providing estimates on difficult matters. Of course there were some questions on configuration management and product deployment and brief go through surrounding project developing stuff.

Personal outcome

For me it was good time and my personal outcome for myself is that complete understanding of engineering management and requirements will come only with facing more real world situations, since simple theoretical knowledge isn’t enough.

Feedback

They did not give me official feedback yet, but I feel confident about positive one.



How will I proceed with new position?

First of all I will do all possible to not disappoint my management. Also I will work hard on keeping my brand up to people expectations and higher. Of course I will continue doing more than it is expected from me. 

Any congratulations and comments are welcome!


6 comments


KE – Day Fifth – What is left?

August 13, 2010 Career 1 comment

For the Thursday I had nothing planned for learning, since I spent my night watching Perseids out of the city.

Knowledge Evaluations is very close, so I just reviewed all of the items I should know for it.

To lot leave this post empty, I decided to write at least about something. I feel, that I still have some weak areas like Networking. But it turns our that for .NET Desktop Profile, I need only basic knowledge of it, like understanding networking itself, application layer protocols, IP, TCP, UDP, SMTP, and so on and so forth. So for my luck I have basic ideas how all of that works and glues the world together.

Networking

We often use these abbreviations, but do we always know what they mean?

local area network (LAN)
wide area network (WAN)
metropolitan area network (MAN)
personal area network (PAN)
virtual private network (VPN)
campus area network (CAN)
storage area network (SAN)
Simple Mail Transfer Protocol (SMTP)
Multipurpose Internet Mail Extensions (MIME) 
User Datagram Protocol (UDP)
… what more??

In the evening there will be post about how KE went and what are outcomes.

P.S. I feel myself very nervously at the moment…


1 comment


KE – Day Forth – Continues Integration

August 12, 2010 Career, CI, Opinion No comments

For today it was planned to learn SQL and Continues Integration. In this blog post I’m going to express few thoughts on Continuous Integration. Only thoughts, because you can read comprehensive articles on it over the internet, like this one written by Martin Fowler.

My definition of CI:

Continues Integration is the way to keep an eye on the system your are building collaboratively with other guys, when everyone injects their work frequently.

I took picture somewhere from web, since I like how it illustrates CI

Few main suggestions on introducing CI:

  • Make sure that all sources needed for build are withing one Repository accessed by developers
  • Any developer should be able check-out sources on virgin machine and be ready to go
  • Everyone does commits regularly (once a day as a must), if someone complains about this you should mentor and convince him
  • Build is automatically started on commit event
  • Build should be as fast as it can
  • If build couldn’t be fast you should consider sub-project builds and primary-secondary builds
  • Developer is responsible for his commit so he should verify feedback from build system to see if build was ok and if tests passed
  • Create continuous deployment process to the environments close to production, say once a day
  • Execute automated tests on deployed system
  • Consider using some CI engine, like Hudson

And some thoughts about blind architectors

When, I came to the project and I faced lot of difficulties that project had, like having sources under different repositories, having not automated procedure of builds, also when someone failed build, everyone knew about that next day and all QA work was stopped; lot of complains about merging sources; dry applying sources to diff versions procedures. None knew what is going with project till next day! I was junior at that moment I did not know about CI, but, hey where our architects have been? Thanks to efforts of new fresh architects we’ve got CI and it applies to our project very smoothly. What is left is to convince devs do committs more often and cover everything with Unit Tests. (But that has also something to do with our project specifics.)

Why didn’t they consider introducing CI earlier? This is mysterious question, I do not understand. There should be definitely something significant (like CI) that we can improve!


No comments


KE – Day Third – Modelling: UML

August 10, 2010 Career, UML 5 comments

Today is my third day preparing to the Knowledge Evaluation. For today I had DB Design and Modeling. Modeling is about UML diagrams as it is mentioned in sheet I’m using for preparing. In this post I explained each of the diagrams with one simple sentence. Also I drew few of them, have no enough power at this point of time at night to continue and draw all of them. Hope you will like my drawing tries :)

UML: Structure Diagrams

Class Diagram – show classes and their interaction in details.

Component Diagram – represent components of the system, their relationships and contracts they use to interact.

Composite Structures Diagram – show collaboration of instances in run-time and communication links used.

Package Diagram – organizes other model elements into groups for easy understanding of the system.

Deployment Diagram – represent static state of the working system, including hardware and software located on it.

Object Diagram – shows snapshot of the instances of the system to represent how system can look at run-time.

UML: Behavior Diagrams 

Activitiy Diagram – represent workflow of the activities in the system, basing on decisions made.

Use Case Diagram – show usage patterns of the system, so they can ideally describe requirements.

 

State Diagram – shows all of the possible states of the object in the system and conditions when it can change its state.

UML: Interaction Diagrams

Sequence Diagram – show the lifetime of the components/classes and their interaction in time.

Communication Diagram – shows flow of the messages in the system and illustrates basic relationships between classes.


5 comments


KE – Day Second – Engineering Management & Requirements

August 9, 2010 Career No comments

Today is the second day when I spend some evident time on preparing to my knowledge evaluation. For today I had Engineering Management, Requirements and OOD.
Engineering Management is something that I read few articles on wikipedia and OOD is something that is not possible to learn per one night. So regarding Requirements I noted only few things.

Requirements

Requirements is very important part of the process of building software. The better and cleaner requirements you get – the better understanding of the system and its design you create; the better you communicate requirements to development team – the better product will be built. And what is the most important as per me – you can evaluate requirements before you started developing something and find out if it is feasible.

So how can requirements look like?

  • Business Requirement – defines needs from software that can help reach goal of the business.
  • User Requirement – defines how people (users) will interact with system and what should it do from their perspective.
  • Functional Requirements – define functional specification to the system, developers must build to satisfy the other requirements.
  • Quality of Service Requirement – performance, scalability 

Evaluating the Requirements for the Application

  • Requirement perspectives
  • Unambiguous
  • Complete
  • Necessary
  • Feasible


No comments


KE – Day First – Communication

August 9, 2010 Career No comments

I’m preparing to the Knowledge Evaluation, which should let me get next step in my career. Today I spent about 5 hours on learning the Communication area of requirements for me. I read dozen different articles and reviewed many presentations. Very important part of communication is Team communication and Coaching, but I’m off for sleep. Indeed want to write something about it. You just need kick me to do that next week. Here in this post you will see some random lists on different communication items created or mixed from other resources by me.

All of us know how that is critical to be competent in written communications, specially with client, so while preparing I created some lists of things to be remembered.

Be clear in your e-mails:

  • Keep in mind your reader
  • More verbs instead of nouns 
  • Concrete, not abstract 
  • More active instead of passive 
  • Making sense – managing stress (Put old or known information at the beginning of the sentence and new or complex information at the end)
  • Be simple (Foggy phrasing often reflects foggy thinking)

Requirements

Software Requirements documents consist with:

  • Introduction (Purpose, Scope, Definitions, References, Technologies, Overview)
  • Overall Description (Use-Case Model, Architecture Diagrams, Assumptions and Dependencies)
  • Specific Requirements (Use-Case Reports, Supplementary Requirements)
  • Supporting Information,
  • Concerns if any

Questionnaire

  • Short
  • Target carefully
  • Start with interesting questions
  • Limit, or avoid, the use of open-ended questions
  • Put your questions in logical order

Meeting Minutes

Meeting minutes document what occurred at the meeting. They are not an opportunity to present a position or to add new materials and comments.

Format of Meetings Minutes should follow the agenda closely:

  • Date & Time, Place of meeting, Attendees
  • Purpose of Meeting
  • Each issue addressed and highlights of the discussion
  • A notation of any materials handed out at the time
  • Outcome or decisions made

Always attach copies of materials distributed at the meeting or note where to find
them.

Proposals

Should have Executive Summary and answer for the following questions:

  • Why are you doing this project?
  • What will you be doing?
  • How will you be doing it?
  • Who will be doing it?
  • Where will it be done?
  • How long will it take?
  • How much will it cost?

Conference calls

I’m sure that you can anourmous amount of information on how you can effectively provide your conference calls.

Here is my own list:

  • Be always prepared for the call. Have pen & paper handy.
  • If you do a call or if you receive a call, always know what is the purpose of it and if right persons are selected.
  • Be honest and oriented to help, never say that it is not your job or policy.
  • Track if meeting goes by agenda, direct and drive when needed.
  • Try to exceed expectations, ask something like “While you’re on the line would you like me to…”
  • Always have summary of the call outcomes in the end.

 If this is bad post, let me know.


No comments


Exam 70-505: TS: Windows Forms Application Development – PASSED

August 1, 2010 Career, Certification, Success No comments

I already wrote some posts on certification, where I mentioned why do I need certification and which value does it bring to me. After those posts I almost have nothing to add.

But maybe few things…

How 70-505 differs from 70-536? Questions in 505 are not so wide and after passing 536 + reading training kit it is much easier to pass this one.

How did I prepare? As I mentioned in one of my blog posts, I read training kit on 505 exam. Reading was boring. Taking into account that I already have strength experience working with WinForms it was ridiculous to read about some things like adding controls or something like that. But anyway I found some stuff interested for me. Also I did some research over internet on how other passed this exam. Not enough information exist about this one. Maybe because it is not very popular.
Also I worked on training tests, including demo test on MeasureUp.

Passing Exam

As you see preparation looks very similar to what I had for my 536 exam but I was still worrying about passing exam, since I already failed it. That time I even did not read training kit and was sure in passing exam.

As I was afraid to fail it once again, while testing I was really concentrated on questions and. I PASSED EXAM with score 1000, this means that I answered correctly on all 40 questions. It was really surprising and is pleasure for me.

You can see my transcript using this information:
https://mcp.microsoft.com/authenticate/validatemcp.aspx
Transcript ID: 904316
Access Code: andriybuday


Effect on Career

In post It is time to get Microsoft Certification, I wrote that certification is important for my career growth. Actually in few words my company has schema that defines conditions to be eligible for promoting to the next level.

Here is my current status:

As you can see, I satisfy all conditions for being Senior.
I have just perfect Performance and it was noticed by my managers, also I worked in my company near 2.5 years (looks like this condition is bonus for me, since now it should be 3+ years), also my English is now evaluated as Upper-Intermediate, I did dozen of presentations, and finally I got that certification.

So what is left? – Knowledge Evaluation.

Knowledge Evaluation is meeting when guru guys bombard me with questions to ensure that I’m competent in areas, which are already defined somewhere in requirements. So my next step is to find out my weak areas and get better with them, so I will have more balanced knowledge. I now feel that in some areas I’m competent but some are still very weak, because I do not have experience working with them. You can expect that soon you will see posts on themes I do not know well, but I try hard to figure out them for myself and for you. Hope they will be interested for you!

Please let me know your thoughts on this post.


No comments


Interview

July 25, 2010 Career, Success No comments

I’m not going to write comprehensive article on how to successfully pass Interview. I would like to share some recent thoughts on it. Might be that in one year term you will see another article with same title.

First of all, and as per me, interviewers ask mainly those things that they know well

So if you are candidate for junior position, range of questions that interviewer has could be dramatically wide for you. But once again, if you are junior, he will ask you basics in which he is guru. This means that slight inaccuracy in your definition will just highlight that you are new incomer. This shouldn’t make you sad.

If you are candidate for mediate position, you already are competent in some areas. This means that two things might happen, either your interviewer is competent in them also or either not. In first variant you will need to prove that you are really competent, and after you are done with that, probably general questions will go smoothly. In second variant it doesn’t matter how good you are in those things, everything will depend on other questions. But anyway try to highlight your strength areas.

Regarding senior positions I have almost nothing to say, because I’m still intermediate developer. I think that in this case company finds some resources that are super-competent and everything looks like in med variant, just on another level, or maybe they take candidate basing on his general applicability to this position.

For Junior
Try to show that are able to learn everything, that you are passionate about learning new technologies and can think out of the box. (One friend gave me this hint.) Generally they take juniors for their growth capabilities. That is like investment.

For intermediate
Be confident in things you know and ready for the questions you don’t know answers. Show readiness to solve problems and be honest when answering.

Interview and candidate attitude to work

Also I think that while interviewing someone company lost one very-very important thing – his/her attitude to work. That is something that could not be easily evaluated during interview. I assume that there are guys with good knowledge, but for some reason they are not interested in career growth or orientation for the results. These guys still could pass interview and then bring less value to company, then it was expected. I do not say they do little work, but this is like you’ve got good looking sport car with engine from motorbike. On one blog I read very interesting article motto of which is “Don’t hire for knowledge, hire for attitude!”

Remember that you are also interviewing

Ask about the processes they have and use. Don’t forget general questions about work conditions, like timing schedule, conditioners, vacations, and so on.
Ask deeply about the project, they are going to have you working on. For example, ask if they are doing Agile, if they write Unit Tests for their projects, which kind of duties they want you to execute and if you will have chance to do more. If it is possible ask them to see some source code. I believe that if you are good in programming you will see with whom you gonna work.
The most important for me is to know if they are looking forward to see your professional growth and if they will be glad to promote you because of that. If they really want you to grow and do not expect you to be working horse on one project, this might be good company.

Did I have one recently?

I think that you are very interesting if I have had some interview(s) in recent time. Yes, I had, but I’m not constantly looking for new job, I just accept invitations if they could bring me some value. I would say if they ask for interview, go and see where you stand in current labor market. You will see if you are losing technology tendency at your work or if you are banally losing money, because indeed you worth much more.

I’m not throwing you to send resumes and go to dozen interviews, but I recommend having one interview at least once a year, just to know if you need to pay more attention on learning something or improving something.

I am not afraid to say above, even if my current employer will read this blog post or if company who asked me for interview will read this. Why? Because if I stay, this means that current company satisfies me with conditions it gives me and this should make it happy that resources are not going away. If I move, this means that another company finds me more valuable than current, and this means only one – I was losing something at my work.

Guys, that all is about how much you cost. And I know answer for this question:

You cost exactly as much as you are getting right now!
Just think about that for a while, and you will get deep meaning of it.


No comments