• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Devaka Cooray
  • Liutauras Vilda
  • Jeanne Boyarsky
  • Bear Bibeault
Sheriffs:
  • Paul Clapham
  • Knute Snortum
  • Rob Spoor
Saloon Keepers:
  • Tim Moores
  • Ron McLeod
  • Piet Souris
  • Stephan van Hulst
  • Carey Brown
Bartenders:
  • Tim Holloway
  • Frits Walraven
  • Ganesh Patekar

Before writing code what do you ask yourself?

 
Greenhorn
Posts: 14
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello

It's important to have a plan for any project your working on

suppose your project manager and designer just comes to you and discuss about application they want you as developer to build.

What kind of question would you ask yourself in that situation?

for example

How many classes do i need to start with?

do i need to take help of other software developer in this ?

I know sometimes the process won't go according to plan but still having a plan is good to stay focused
 
Greenhorn
Posts: 18
1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I'd ask yourself "How would a human accomplish this task if computers didn't exist?".  Then think of how a computer can be used to then do the same work.  The reason I say this is that many people write super inefficient code that does things in a way that no intelligent person ever would, just because they see the work the computer does as effortless.  For example, if you were going to walk through a warehouse of toys and count the number of blue toys present and the number of toys made of plastic, would you figure out a way to look at every toy in the warehouse only once, and record if each toy was in either one of the categories, or would you walk the entire warehouse twice looking for only one attribute at a time.  You'd walk it once right!  You can't imagine how much code I've seen that does things in horribly inefficient ways.  Therefore, plan the logic, then write the code.
 
Sheriff
Posts: 13570
223
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

ImDinesh Sharma wrote:
suppose your project manager and designer just comes to you and discuss about application they want you as developer to build.

What kind of question would you ask yourself in that situation?


As someone who prefers agile software development, I'd probably ask, "What the hell am I doing working in a place that has project managers and designers telling developers what to build? And when am I going to wake up from this nightmare?"  

More seriously though, there are different ways this can be answered depending on the perspective you take. Matthew takes a somewhat micro level perspective. Let me take a more macro level.

(Note: This reply is largely influenced by the fact that I'm currently reading Jeff Patton's book, "User Story Mapping.")

Some of the first questions I'd ask:
1. Who is this for?
2. What benefits will they get from it?
3. What problems will it solve for them?

By understanding the answers to these questions and other questions that come out of them, you create a better understanding of what exactly it is you need to build for the users of your software. Jeff Patton writes, "Your job isn't to build more software faster: it's to maximize the outcome and impact you get from what you chose to build."

So one of the first questions you should ask after understanding the who, why, and what is "How much (or how little) do I have to build in order to have some kind of impact?"
 
Junilu Lacar
Sheriff
Posts: 13570
223
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Here's yet another perspective.

Before I even think about what kind of classes I'd need and how performant I want my program to be, I would ask:

1. How do I ensure that I've created the right thing?
2. How do I ensure that I've created the thing right?

These questions lead me to a couple of practices I recommend:

1. Behavior-Driven Development (BDD) - gives you confidence you have created the right thing
2. Test-Driven Development (TDD) - gives you confidence you have created the thing right

What I'm getting at is that before you think about classes and algorithms, you might want to think about tests:

1. What tests will tell me that my software satisfies the users' needs?
2. What tests will tell me that my software has been built in a way that is maintainable, robust, resilient to change, and amenable to change?
 
ImDinesh Sharma
Greenhorn
Posts: 14
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Wow

Thank you @Junilu Lacar

Great questions

Those have really opened my eyes to software development

Exactly what i was looking for

"It's not about how fast you write many softwares, but to maximize the outcome and impact you get from what you choose to build" This one is great!

Thanks again


 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!