Tag Info

New answers tagged

0

Static method invocation should be avoided wherever possible. It's an antiquated alternative to proper Dependency Injection, and not something you'll find helpful in a larger codebase. Consider testability, for example. Statically invoking logging puts the Subject Under Test in control of which logging class is used - there's no Inversion of Control. There ...


0

Writing unit tests is part of the design process, whether you do TDD or not. So of course it's something to be done by the developer. Integration tests, now these can be written by someone else. Unit tests, however, are closely related to implementation and they affect the architecture. Because even if we don't use TDD approach in strict sense, we ...


1

Directly testing your own code is good form, and a system that encourages someone other than the developer to test it is a hazard, as the code may not even be testable without heavy modifications. That said, expanding a project's unit test suite is a great way to get yourself on board with now it works. TDD style test first coding works very well in a ...


3

@CarlManaster has the right idea: It's the responsibility of the developer to: write a unit test, verify that it fails, implement it, verify that it succeeds, refactor the feature without failing the test, and finally refactor the test code for every feature. The reason for each of these can be summarised as follows: Writing the test before the code ...


1

Source code and documentation the way it should be done. http://jasmine.github.io/2.3/introduction.html


3

I would start writing unit tests -- start with the sections of code that work, write characterization tests that demonstrate (and will help preserve) their correct behavior. Write additional tests that model how the code should work. Get them to pass, without breaking the tests that are already working. Once you have a nice suite of passing tests in place, ...


1

I think you've identified a couple of problems: It sounds like any code that gets checked can be trivially pushed to production by anyone who has the rights to check in code. Frankly I think that setup is just insane. At a minimum the people who can manually trigger a push to production should be restricted to the set of people who can be trusted ...


7

This is not uncommon, particularly in small teams. Don't make a big deal about it, but make an informal rule: Break the build, bring in donuts. Either 1) You'll get donuts twice a week or 2) they will adhere to the standard. Bring it up in a meeting. Not accusingly, don't mention anyone by name, but something similar to, "Since we introduced version ...


3

You clearly understand various possible process and technical solutions. The issue is how to manage the coworker. This is essentially a change management exercise. Firstly, I'd have a quiet word with the founder to make sure he/she is on board with your point of view. If there is a production outage, I would expect that the founder would be highly ...


0

You should integrate a Continuous Integration + Peer Review process in the company. Bitbucket makes it easy. And +1 to the dev server suggested by other users. Don't be rude with him, it will only hurt your work relationship.


7

Now, how can I force them... Instead of forcing your colleagues, try making them see things from your perspective. This will make things much easier for everyone. Which leads me into... I want this behavior to be punished in some way or make it unpleasant as much as possible. Why is it a pain for you with problems on the live server, but not for ...


16

I see this as a largely human problem - the process is there and the tools are there, but the process is just not being followed. I agree with what others have said here, about the possibility that it's quite possible the developer in question is just stuck in an SVN mindset, and may well think that he is following the process. I find that the best way to ...


5

What's the worst that could happen? Do you have backups that are good enough so that a bug modifying random records in your database can be fixed by restoring an old version? Let's say you have a bug where you use a record id, and by mistake the amount of a bill in cents is stored in a variable used for the record id. So if I pay $12.34 then the record ...


17

At work, we avoid this by using Gerrit. Gerrit is a code review system that acts as a gate to your main/production Git branch which is conventionally called "master". You have code reviews, right? It sounds like you personally do them exceptionally. With Gerrit, you push to a sort of staging branch which, after you and your coworker have executed the code ...


47

You will probably want to get a dev server, and preferably a staging environment too. Nobody should ever be pushing from local to production except for their own personal website. Your deploy process should only support dev->staging->prod. You probably want someone responsible for signing off new releases - depending on the organisation, this can be a ...


80

You need a proper Quality Assurance (QA) process. In a professional software development team, you don't push from development right to production. You have at least three separate environments: development, staging and production. When you think that you got something working in your development environment, you push to staging first, where each commit is ...


1

In some projects, you have to follow a strict development process, which may not be iterative. An example for these is in the aerospace sector when you have to deliver software by DO-178B/C standards and the like. For one, you do not even have a choice in those cases. You couldn't develop iteratively even if you wanted to. But more importantly, these ...


1

The need for iterative and incremental development on most software projects comes from the fact that those projects' requirements are in constant flux, and the fact that quickly delivering a prototype then iterating on it seems to produce better results than trying to produce a comprehensive specification before starting development. The only situation I ...



Top 50 recent answers are included