whats the number of times the letter e appears in:
q: is it acceptable to make changes to an interface during implementation? when writing a library/api for the first time ill usually start by sketching some ideas on a white-board or loose-leaf while thinking about how different parts of the system interact. this usually results in an interface that ill adhere to when i go to develop some concrete implementation.
ill get half-way through writing the implementation when i realize that i need to make a change to the interface. for example, i realize that ive exposed too much implementation detail to the client and that the interface can be simplified.
is this bad-practice, and should i actually know exactly what my interface will look like before i start coding any implementation?
update
in my situation im assuming that the interface doesnt already exist and were creating it for the first time. so its the first time that the interface will exist, and we are working on the very first implementation of that interface. so i want to know if in my situation, its okay to make changes to an interface while coding the implementation.

a: yes, it is perfectly fine and normal. it is not really normal to know everything about how your system will work and what it will need to do when youre still in the whiteboard stage. 

a: changes are inevitable thus they need to be managed. 
make sure to have a clear versioning scheme (search for semantic versioning, for instance), have a very explicit changelog and state clearly what you consider  is part of the public api.  
for instance, in some cases, adding an optional argument to a function can break backward compatibility if the number of arguments is not expected to change.
also, there are tools to help you design an api. test driven development is one of them.

user
There are 177 "e"s.
assistant