software-engineering

What is software engineering?

The term "software engineering" is often used without fully being considered. Since the field is relatively young compared to other mature professional disciplines, the definition is arguably still be worked out, and at the very least it is often understood differently by different populations despite being "defined" by IEEE or the like....

What is Test Driven Development (TDD)?

What is TDD (Test Driven Development) Please include both benefits and drawbacks, as well as tools for your taste....

What is Your Experience with Unit Testing in Practice?

//Yes, Virginia, there is a wikipedia. What I'm asking here is what you've found unit testing to be in your own practice. It would be helpful to know the pros, cons, obstacles to introducing unit testing, flaws in the unit testing process, value gained by unit testing, and so on that the developers here have observed in their day to day...

Templates for lifecycle documentation

Does anybody have some good templates (or links to) that they use for software lifecycle documents (feasibility, concept, requirements, architecture)? I've taken some old ones I've had from school and slimmed them down a bit since none of the current projects that I work on are to that scale, but they always feel somewhat clugey. Sadly...

Which Agile software development methods have you had the most success with?

There are numerous Agile software development methods. Which ones have you used in practice to deliver a successful project, and how did the method contribute to that success? ...

What kinds of non-technical courses should a software engineer or computer scientist take?

I'm working toward a software engineering major, (business) management minor, and technical communication minor, and I was wondering: What kinds of non-technical courses should I try to take before I graduate that I might not get as part of my major or one of my minors? If you prefer to think about it this way, a more general question w...

Peer Reviews or Pair Programming, or Both?

Do you participate in code peer reviews or practice pair programming, or both? Have you been able to demonstrate an increase in software quality using these practices? What benefits and drawbacks have you observed in the course of practice? What hurdles to implementation did you face? In my own case, our development team pursued...

What's the difference between programmer and software engineer?

As I was looking through some job offerings I saw that many of them require a software engineer, some a programmer and some a developer. Is there any difference between a programmer and a software engineer? Or are they all looking for the same guy that can "write code"? ...

How do you do lightweight CMMI?

In my organization, people believe lightweight CMMI is a myth, despite evidence to the contrary. What are your experiences with lightweight CMMI? Have you done it and is it working well for you? ...

Requirements Gathering

How do you go about the requirements gathering phase? Does anyone have a good set of guidelines or tips to follow? What are some good questions to ask the stakeholders? I am currently working on a new project and there are a lot of unknowns. I am in the process of coming up with a list of questions to ask the stakeholders. However I ca...

How much process do you follow on your own projects?

Do you follow a process at all? If so, which ones? If not, how do you manage the development cycle? ...

Best free online Computer Science college courses

I have found the MIT Open Courseware to be a great resource for free computer science college courses. Every software engineer should be required to take the Structure and Interpretation of Computer Programs class. Berkeley and Carnegie Mellon also provide some great online courses. Are there any more colleges that offer quality compu...

What are your top design consideration?

When designing and writing code, after "make it work" what are your top design considerations? ...

Should a software engineer know how to assemble their own computer?

Coming from a Mac background, I've never really spent much time tinkering with / assembling / tweaking my own computer beyond occasional RAM upgrades and swapping out hard disks. I feel like I have a good grasp on how a computer works at a conceptual level, CPU, bus, memory etc, but I haven't really got much practical experience in putti...

Implementing large system changes

If you're familiar with the phrase "build one to throw away", well, we seem to have done that; we’re reaching the limits of version 1 of our online app. It's time to clean things up by: Re-organizing code and UI Unifying UI processes Adding more functionality Building for the future Modifying our database structure to handle all of the...

Real life examples of methodologies and lifecycles.

Choosing the correct lifecycle and methodology isn't as easy as it was before (when there weren't so many methodologies, this days a new one emerges every day). I've found that most projects require a certain level of evolution and that each project is different from the rest. That way, extreme programming works with for a project for a...

Leading edge of Software Design?

So.... we have a much better tool kit of design advice these days.... Design patterns have been around for years Agile TDD/Refactoring processes have helped hone pragmatic OO skills Domain Driven Design offers great advice on understanding a problem space Polygot programming allows OO / functional / Dynamic allows appropriate ways of so...

What collaborative, electronic system do you use for managing releases, features, and tasks for developers and managers?

My biggest concern is ease of use, and nothing beats a google spreadsheet or document (Except maybe Office). At some point, the free-form nature of the formats starts to cause a problem. Specifically, I have the same conceptual data split up between two documents. This is done because both provide useful views of the data. (Note that th...

Companies doing Domain driven design

I've just finished reading Domain Driven Design and I'm enchanted with some of the ideas covered in it. Do you know any companies that implement ubiquitous language in their projects? ...

What would you recommend as the best free online resource / tutorial to learn Agile Software Development methods?

I'm trying to learn Agile Software Development principles in a hurry and don't have time to wait for a book to arrive. What would you recommend as the best free online tutorial on Agile Development methodology? Edit: I agree with the answers that learning things in a hurry is not the way to go about it but as one poster guessed, I'm tr...