Good Resources on SOA? [closed] - soa

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Have recently been given a project to complete which uses XML quite extensively.Am looking at an existing project which uses SOA. Am eager to get up to speed on SOA and so wondered if anyone coulod recommend any good sites / books etc.
I have a book by Thomas Erl called Service-Oriented Architecture and am looking to supplement this with other resources.
Cheers

From a not so technical point of view there is this great book published by Sogeti and IBM called SOA For Profit wich covers SOA processes SOA Governance quite well. Its a short interesting book that gives you another point of view. Then, depending on the platform/s you choose, each vendor will give you their point of view, for example if you choose Microsoft technologies, a good resource is their SOA site. IBM has another interesting site too.

Infoq has a lot of SOA content.
Like anything hijacked by the middleware venders you'll find a lot of discussion of SOA is dogma very distant from realistic evaluations of return on investment. Keep a critical eye.

I know it is too late to answer. But still, I would recommend reading the following books to gain an in depth knowledge of SOA.
SOA by Thomas Erl actually clears confusion about how SOA is used as buzzword marketing agents. Also, He is founder of SOA systems.
Also, SOA Design patterns is a good book to read.
Specifically mentioned the SOA again. So that others could get a direct link to it. :)
Cheers :)

Maybe these can help you too:
http://soa.sys-con.com/
http://www-128.ibm.com/developerworks/webservices/newto/

Maybe these ressources might help you:
http://soa.sys-con.com/
http://www-128.ibm.com/developerworks/webservices/newto/

This
http://service-architecture.blogspot.com/> blog has some sage advice on implementing SOA in large corporate projects.
Not hot on technical details but sopt on for design philosophy and how to do a succesfull implementation.

I recommend the High Scalability blog. It's not just about SOA but surely any medium to large SOA solution can benefit from the ideas expressed there:
http://highscalability.com/

The book entitled Enterprise Service Oriented Architectures published by Springer Verlag goes into way more detail than Thomas Erl's book and is highly recommended.

Related

Choosing a Game Engine for my 2D Game [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I am starter game developer. And also i am 2nd year student of software engineering. I have a team, and i am the only 1 who can code something!(And i have a guy from Marvel :))) )
So, we have decided to do a 2D game targeted to PC. I have made research in this side. And found not so many choices, because at the moment 3D games are in fashion. I do not want to use a game maker by the way.
So i decided to ask you this questions:Can you give some advise about using an engine or i have to write my own one? And if i have to write my own engine, which resources must i have?
Appreciate each of your answer !
Thanx !
Since PC games has many awesome titles out there, I think indie developer like you should heading for simple and time-killer games for mobile, a good game engine for mobile (free version available) is Gideros Mobile (http://www.giderosmobile.com). It use Lua language and you can publish for both Android and iOS platform. Gideros also has an active community which are ready to answer all your questions at here: http://www.giderosmobile.com/forum/
Currently I have 6 month experience with it, publish 3 games with about 60.000+ downloads.
I would say you should start by researching what a typical game engine gives you. There's a lot usually, such as physics, wrappers to draw objects, wrappers to load assests (such as sound and models or pictures), possibly even networking.
A game engine is potentially a huge, huge undertaking. If you're looking to make a game, focus on that by utilizing what's available to you.
My suggestion for starting would be XNA. It's a quick learn for the basics and easy to scale for large projects. They provide a lot of what I talked about and allows you to focus on what you started the project for.
Good Luck.
If you want to use a lower-level language like C++, I suggest SFML. It is extremely simple to use and provides both high-level and low-level graphics, audio, and networking functions for different uses.
You can also use it to easily create a context for OpenGL.
http://www.sfml-dev.org/
You will have to build the latest and best version (2.0) yourself, but this tutorial will show you how:
http://sfmlcoder.wordpress.com/2011/06/16/building-sfml-2-0-with-mingw-make/
Have fun!
I'd suggest checking out FlashPunk or Flixel. Both are Flash-based engines, so they use Actionscript 3, and can target the web-browser (Flash), or PC/Mac via the use of Adobe Air. Also, the performance isn't quite there yet from what I have read, but Adobe Air can also deploy to both iOS and Android. This is merely just a suggestion though, and if I were you I'd test out a few engines/technologies until finding the one I am most comfortable with.
Good luck!
Links to both:
http://www.flashpunk.net
http://flixel.org

How can I measure my competency level or skill-set in ASP.NET? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
As a ASP.NET developer with 5+ year experience. I like to measure my competency level in ASP.NET & SQL Server. Basically my goal is to raise my competency level and skill-set in ASP.NET; before that I need to know what is my level considering current ASP.NET and related technologies...
So, please provide some pointers...
Is there are any skill-set measuring Quiz or exam, which account experience and technology ?
How do you measure your or your junior developers skills or competency?
I guess I could rattle off some exams, like the MCP exams, or BrainBench, but you have to pay lots of money for those.
If you were really sold on taking an exam to gauge your competency, you could get a one of the MCP exam prep guides for ASP.NET, C#, and SQL Server and see how well you comprehend and take in that material. I'm not sure that it's the most accurate way of measuring competency though.
You can get a good qualitative evaluation of your SQL Server skills by simply reading Itzik's or Kalen's books and seeing how you comprehend them. For .NET, read Richter and critically evaluate yourself against the concepts you find in that book. Do those concepts make sense?
Probably the most valuable way to get feedback is to ask your senior developers for a frank evaluation of your skills.
If you're asking how I evaluate my junior developers, it's pretty easy once I see their code and they get a track record for a few months, but I don't believe quantitative analysis is the best way. Instead, I ask questions like:
Can they deliver?
Are they writing good code?
Are they taking the initiative to learn more?
What have they brought to the table?
Do they understand the software development lifecycle?
Do they break builds?
Are they good team players, or do they code in solitude?
Do they make suggestions?
Are they open to others' suggestions?
Do their design decisions make sense for the projects they've been on?
Ask yourself how your leaders would answer these questions about you. If you are seriously confident that they will respond positively, you will have an easier time "grading yourself".
Honestly, it's all relative. I've worked on teams where the junior devs from one team out-class the senior devs from the other team in every way. Different environments are going to value different skill sets in different ways.
As for a "test" of your skills, a pretty handy one would just be right here on StackOverflow. Look for .NET questions, try to answer them. The ones you can't answer, learn from those who do answer them. Rinse, repeat. It's not very structured, but it can definitely be helpful.
It's also good just to follow some of the major blogs and see if you can keep up with what they're talking about and try to implement some of it on personal side projects just to learn and practice.
The only way to really measure your skill level is to push it forward. Find stuff you don't fully grok and learn it. A truly skilled developer is never an expert, but rather just more of an expert than he was yesterday.
When asked on similar lines , I read it from somebody here on SO that
he will try to answer the questions on SO.
Let me rephrase it,
I will try to measure my performance with somebody's questions and answers.
Having said that i won't compare my competence with collective knowledge here on SO.
This is usually pretty specific to the company. There will be a bunch of criteria that the developer must meet before they get a promotion or advance to a higher level.
The hierarchy is usually pretty similar; with general (cumulative) criteria for progress to the next level. In my experience it is something like the following:
1 Graduate/recent work experience
Fair understanding of basic language concepts (agnostic).
Good all-round technical knowledge. Demonstrable
Problem solving skills. Numeric and verbal skills. Generally competent
Shows passion for a certain part of the domain.
Not a crazy person.
2 Junior/Trainee Developer
Good understanding of the primary language they use.
Makes use of de facto tools and technologies to deliver software.
Has delivered software on time and schedule.
Trusted to deliver components with guidance from more senior developers.
Can (and does) participate in design meetings and code reviews.
Has a good understanding of how the company works as a whole.
Understands unit testing and test driven development.
Fair understanding of source control and continuous integration.
3 Developer
Advanced understanding of the primary language.
Demonstrates skill in at least one other language.
Demonstrates the passion to learn more about their language.
Makes good use of design patterns when developing software to write maintainable code.
Actively seeks to improve process and efficiency.
Delivers components to a high level of quality.
Has the ability to lead a small team of developers to produce components.
Good understanding of test driven development, unit testing, mocking and stubs.
Good source control management knowledge: branching, merging, tags.
Can lead a code review with a junior developer and supervise their work.
Requires minimal guidance from more senior developers.
History of delivering quality software, on time
4 Senior Developer
Excellent understanding of their primary language
Good skills in other useful languages in the domain. In general, has a passion for learning about other languages and how the company could benefit from employing it/these to aid development
Great understanding of the domain, all of the components within it and all interactions between. This knowledge can easily be transferred to less senior developers.
Can design beautiful software
Actively seeks to improve development process and efficiency. Demonstrates languages and technologies in this area.
Fully understands the development process from start to finish.
Can lead a large team of developers to successful and timely project completion.
History of delivering excellent software and designs.
5 Lead Developer
King

Job Interview Question [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
What's your opinion of the following job interview question?
In the requirement it never mentions about to have classic ASP experience.
But the question is "What are the differences between ADO.NET DataSet and ADO Record Set?".
I'm not an asp programmer, but since you've asked for opinions, here's one from Joel
Just for fun, here is the worst interview question on Earth: "What's the difference between varchar and varchar2 in Oracle 8i?" This is a terrible question. There is no possible, imaginable correlation between people that know that particular piece of useless trivia and people that Fog Creek wants to hire. Who cares what the difference is? You can find out online in about 15 seconds!
This is my favourite answer to these questions:
I'm sorry I don't know that; but
give me 5mins and Google I'll find
out for you.
I'd say it's a fine interview question.
Active Server Pages (ASP) != ActiveX Data Objects (ADO)
Some people ask what they know - and if you know it too maybe they like you :)
Well, they can even ask you whatever they want. About Perl, Python and Ruby, it is an Interview, they might be measuring your knowledge in other languages (if you heard about them, or if you know why .NET is better/worst).
The important thing in an interview is that you answer the questions to the best of your abilities, so what's my opinion, if you don't know then just say you don't know about ADO Record Set, but you list the benefits/features of a .NET DataSet
The best thing I've found in an interview if you don't know the answer to something is not sit quietly and then try and blag it. Be up front, say you don't know, but if you'd hazzard a guess then it would be insert educated guess here. The interviewer will appriciate the honesty, not everyone knows everything. People want to see confidence but also humility :-)
I'd say it's fairly pointless these days. Anyone who doesn't know probably just hasn't worked with old applications. All the ADO functionality has been out of date for about a decade now and there are some fine devs with years of experience that will just never have seen ADO.
I've hired a lot, and the difference between the really excellent candidates and the average ones is not what obscure things they know now, but what they can go pick up quickly when they need to.
In short a really good developer might answer this with: "I've never worked with ADO, but I could go find out", which isn't that useful for you as interviewer.
A more useful question would be
In what circumstances is it better to use a DataSet rather than iterate the rows of a table?
That way you get the important stuff - actual usage and technology application. They could answer in the context of Linq or a SqlDataReader or any other tech that they've worked with. What you get is what they understand and know how to use, not what they could Google in a few seconds anyway.
Probably they have some legacy code using the pre .NET version of ADO, and are testing to see if you have some knowledge of it.
I think knowing about the differences between ADO and ADO.Net is probably very useful in some positions.
If you've never done any classic ADO then you should probably just say so at the interview and move on to the next question.
Awful question if their goal is to test your capability as an engineer.
Reasonable question if your resume claimed you are both an ASP and ASP.NET guru, and they just want to see if you're telling the truth.
Of course if you work for a big corporate firm, they are more likely to just build their own DAL from scratch and use stored procedures instead of..........well, this.
I've asked a similar question at an interview although it was probably a bit more high level. I asked the candidate what he liked better about Java and what he liked better about C++. This was not some sort of "standard question" The candidate in question, in his resume and the interview up to then stated experience with both. I asked the question for two reasons. To check that the candidate actually has the knowledge he states (which could be a valid reason for the question on the ADO data/record sets). The second reason is to have the candidate show a degree of reflection and ownership of his tools.
In short, the appropriateness of the question is dependent on the profile of the candidate. If the candidate stated knowledge of both, let the candidate show his understanding. If this knowledge is critical to the job, same.

As a developer, is it worthwhile asking anonymous feedback from colleagues? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
G'day,
I'm always trying to improve my performance as a developer and, after listening to this interesting podcast on the topic, I was wondering if people think it is worthwhile asking for feedback from colleagues.
I am thinking of obtaining feedback anonymously in the manner suggested in the podcast by using the Rypple site. And by asking one single, short question that directly addresses a specific aspect of my work or behaviour. For example, I'm looking at questions such as:
What can I do to improve the way in which the development team and the operational work together?,
How can I help you be more effective in your job interfacing with our major client?,
What parts of my technique could I improve based on the presentation I gave today?
etc.
Edit: I am not talking about general aspects, but specifically about how my performance as a developer can be improved. Communication and working with others is a large part of working with others in a company.
Edit: These additional questions are in response to a comment to my original question by JB King.
Further examples of possible questions that could provide useful feedback to help you improve as a developer are:
Am I becoming too focused or obsessive in my solution toolset?
What technology do you think I should learn to expand the team's capabilities?
What technology do you think I should focus on to improve the team's overall capabilities?
All of these directly address my personal progress as a developer.
cheers,
If you want to get honest feedback about what you are doing, you may want to find someone that observes what you do, and just ask their opinion, perhaps while having a beer. :)
But, it is important that you don't get defensive in any way, as you are asking for honesty.
And, you should consider making changes based on what they say, as that will help others to see that you are not only open to criticism, but willing to adapt, to become a better developer.
But, ultimately, you need to get an idea what type of programmer you want to be. Then it is useful if you have someone that you work with that exemplifies those qualities, then you can develop a relationship to see if they can help you become a better programmer.
For example, I knew an architect who would always pull a chair over and sit down when answering a question, so he was always on the level of the developer. That little action was so impressive to me, as it was a simple action, but it showed a willingness to bring himself to the level of others. That is how I want to be seen as I mentor others.
I think asking for anonymous feedback is bad, in part because it shows that there is a communication problem on the team, where people are not willing to be open with their feelings and opinions. The team lead should deal with that, as it could eventually be damaging to the team, if people keep their true opinions bottled up rather than expressing them, in order to help the team to be better.
I'd actually recommend not being anonymous when asking for criticism. One of your stated goals is to improve communication with colleagues; I think you might improve this better by actually talking with them instead of using a tool.
Being able to take criticism in person will show people you are confident and serious about improving. Face time is unfortunately underrated in our industry.
Yes, asking for feedback from colleagues is worthwhile. Often you don't know what you are doing great and where you could improve without getting at least a second opinion, if not a third, fourth, and so on.
Anonymity gives the benefit that those answering don't have to fear retaliation. Sometimes this works well and the result is honest feedback and sometimes people may enter stupid things trying to be funny. Que sera, sera.
I am not sure much good will come of it. I kinda agree with James on this one.
What might be better is to have some development workshops in your team. You could do it in such a way that each week 1 developer has the floor for an hour. Find a meeting room and a projector (if you have one) and let this developer present his / her discovery to the rest of the team.
At any point in time there are huge changes happening in the industry, so there should be a lot of areas to cover, for example - one week a certain developer could talk on up and coming changes in .net framework v4 (just an example), while another week yet another developer can talk about the benefits of shorter scrum iterations (again just an example).
The idea is the developer shouldn't be forced into presenting, and he/she should decide his or her own topic of interest.
This exercise might help strengthen communication in your team, and in this way the whole team is geared towards improving development skills.
This is the good idea, bad idea which I've seen is to take this idea too far, and expect developers to go away for weekends to so called coding dojos - yeah how fun (not).
Make sure these presentations are happening during normal paid business hours, or you'll have a riot.
"How can we do our jobs more effectively?" is a great question, and well worth asking!
But you should always discuss it openly. It's about as innocent a question as one can ask in the professional world, so if you tell people to discuss it anonymously, they'll think something funny is going on, even if that's not the case. And if you can't discuss such an innocent topic openly, your organization has serious problems.
Also, if you're going to ask questions like that, you need to pay attention to the answers, and either act on them or explain why you won't. People can handle, "Good point, but we're not going to do it that way, here's why." But it's pretty demoralizing to answer a question like that - especially if you made a lot of effort - and then feel like you've been ignored.
A good question that I've found to ask is: "Would you recommend this app to someone else?" and start the conversation there.

Which CASE Tools do you use? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Which Computer-aided Software Engineering tools do you use and why? In what ways do they increase your productivity or help you design your programs? Or, in case you do not use CASE tools, what are your reasons for this?
The best CASE tool I had to work with is the Enterprise Architect from Sparx.
It's lightweight comparing to Rose (easier to buy and cheaper too) but extremely powerful. You could do great UML diagrams or database model or anything else you want but in a nice and organised way.
It greatly helps on the initial stages of the elaboration process as you could create domain model, do some preliminary use cases, map them to the requirements and present all of it in a nice way to the customer. It helps me thinking and I re-factor my design with it until I am satisfied enough to start proper documentation.
It is also very good for database models as it could reverse-engineer most databases very neatly.
The only (but quite serious) drawback it has in my eyes is that its documentation generator is, to put it mildly, crap. Getting a proper document from it is almost impossible unless you invest a significant amount of work in the templates and then it would be only OK.
I have used Rational Rose and a few other similar packages in the past. Mostly I have used them for the UML diagram elements and have not gone into the more detailed functionality such as code generation etc.
I mostly use them for aiding the design process and clarifying my own ideas. Often I find that, in trying to come up with a design for a componant, I end up needing to write down / draw what I want to happen so I can get a clear overview in my mind of what needs to happen and why. I have found that in a lot of cases, what I end up trying to draw is essentially the same as a predefined kind of diagram in UML, such as a Use Case Diagram etc. and by then adopting that style, it becomes easier to get my ideas on paper as I have some framework to work within.
So, I use CASE tools principally for thier UML / designing tools at a highish, semi-abstract level.
Oracle Designer
Not using any. No money for them.

Resources