software-engineering

How can I improve my program design and problem solving technique?

I have been coding for a while now and am confortable with a few programming languages but now feel that I need to improve my problem solving or program design technique. What skills do I need have to be able to design a program as a solution to a problem? More: The question is about how to design a solution rather than how to code bet...

Online Software Development Apprenticeship ?

Question: Is there anywhere online where someone can apprentice as a software developer and have an expert work with them, review their code, and guide them as a journeyman would in the trades? (Obviously I do not expect such a service for free) Background: I am a fairly recent graduate of Computer Science; I have worked for 1 software ...

Motivation for Overengineered APIs?

It seems like there's a decent amount of dislike around here for horribly overengineered APIs that are designed to be infinitely flexible and thus don't make simple things simple. Nonetheless, it seems like there is no shortage of APIs that require you to use 8 different classes and write 20 lines of boilerplate just to accomplish simpl...

How to prove writing specifications beats code cowboys?

So I have a problem. Or rather my friend has a problem, since I would never write about my company on an internet forum. At my friend's company specification writing is, shall we say, a little underused. There's a deeply ingrained culture of writing code first and asking questions later, whether it's for a library routine or a new tool ...

Good definition for "coherence"

I'm trying to tell someone his code is not "coherent" in the sense that it serves multiple purposes. I don't think I can explain it very well, so I'm looking for a good reference and/or definition. ...

Can anyone recommend a free software engineering book?

Duplicate: Free Programming Ebooks What are some good free programming books? List of freely available programming books Programming texts and reference material for my Kindle, creating the ultimate reference device? Can anyone recommend a good and free software engineering book? ...

Do you consider yourself as programmer or software engineer ?

I'm studying in a engineering and I keep hearing that software engineer does the Requirement / Design and more technical dude will do the programming job. "They" qualify programming as "translate well shaped design class into a computer language". I'm curious to know your opinion about that.. and particularly, what YOU consider you are. ...

Should source code be the only software design documentation?

I just came across Jack Reeves' articles asking "What is Software Design." I think he makes excellent points and now wonder whether source code should stand as the only software design documentation we create and leave behind. I think this fits in well with the ideas of DDD's Ubiquitous Language and could easily become readable documenta...

Overloading a method of a superclass

I am building an AI for an RTS game. (For the Spring RTS engine, if anyone is interested.) The way I have set it up it consists mainly of a collection of Components that communicate by means of fired Events. Every component has a method handleEvent(Event) that receives events fired by the other components. Event is an interface. A hiera...

How far should you apply TDD?

I see the benefit of TDD, and I'm trying to learn how to wrap my head around it. I'm also reading more about DDD and want to start applying both of them to my software projects. I've purchased a few "hands on" programming books (by "hands on" I mean ones that discuss a real world application with real solutions as opposed to small snip...

Do you ever design software by envisioning the ideal solution?

I saw myself doing this and I was wondering if other people work like this as well: What I usually do when confronted with a software design problem is that I jot down "the ideal" solution, without taking into account feasibility or any other consideration. Then I peel away at it top-down, until I have the solution. Is that a methodolo...

C#: what to read after the basics?

I'm working my way through Pro C# 2008 (Troelsen) and am thinking about what to read next. Over the past few weeks, I've accumulated this list of possibilities: C# 3.0 Design Patterns (Bishop) Patterns of Enterprise Application Architecture (Fowler) Domain-Driven Design (Evans) Code Complete 2nd edition (McConnell) The Pragmatic Progr...

Formal Methods and Enterprises...

So... I teach formal methods in software engineering. I also teach "agile methodologies". Most people seem to think this is contradictory. I think it makes a lot of sense... I also work for a company, where we need to actually get things done :) While I can apply my earned skill points on "specification" in a day-to-day basis, my collea...

How do you fight design complexity?

I often find myself fighting overengineering -- the person in charge of designing the software comes up with an architecture that's, way, way overcomplicated. It's all fine and dandy to have all the esoteric features that users will never know about and get that sense of achievement when you're doing something that all the magazine arti...

The principles of SOLID programming, and their use in pratical development

The company I work for has a small development team of five developers and our opinions on this matter vary widely from one colleague to another. We often have debates/discussions around software best practices, and its seems to me through this we usually end up somewhere in the middle. The product we work on is a SaaS and has been in p...

Am I obligated to fix a software error after I left a company?

In my last job at a small firm, I was paid in billable hours. I was not a contractor; the firm provided an office, computers, software, books and customers. They also took taxes out of my check. If I bid 30 hours on a job, the company would bill the customer for 30 hours at their rate and I would get paid for the same amount of time at...

Any Good Certification in Testing

Which exam is better for TEsting engineer, ISEB or CSTE? Any other good ones you suggest? Anyone know about any Microsoft certification in Testing? Kind Regards Sam ...

For a large project, what planning should be done before coding and how should it be approached?

What is your method of "mapping out" an idea before creating it? Say I wanted to take on a big project, for example at the scale of a site like Facebook or MySpace. What planning/design steps should I take before I start the actual work? For example, should I map everything out page by page (their functionalities, data, etc.)? ...

What does Software Engineer in Test do?

Some good software companies like Microsoft or Google look for Software Engineers in testing positions. They expect excellent coding skills in C++ / Java (pick one) + some scripting languages and CS degree. Is this a position for software developer or just re-branded QA ? I'm a software developer and I like refactoring, mocking and unit-...

Why and when to hire a build engineer

My company has grown to thirty-five coders, in five separate groups. I manage one of the groups. The bulk of the code is C#, but it must build and run on both .NET and Mono. We use C/C++ for drivers and real-time control, IronPython for scripting. We have a simple automated build system that is triggered by check-ins; it does a big b...