Software Time Estimation: What should you consider? #Software Engineering

In a web developer position when you are the only one to do everything, time estimation for a task may need considerations for some or all of the parameters below

Just my 2 cents, Just one way of thinking

There are many extra stuff that you may have to spend time on than actually implementing the task or function. The extra stuff may take more time than implementing actual task. Sometimes the extra tasks can take way more than the actual task. If the actual task is small or trivial but you need tospend time just to justify that the solution (also the feature/task) works with everything.

1. Any considerations for the Architecture? to cope up with the overall architecture of the application. time to adjust with.
2. Any considerations for the Security? if input boxes involved, how much security you want to provide? Do both front end and back end security involved
3. create the user interface [deal with CSS, deal with other stuff on the page or creating a new page]. think and make the interface usable [user friendly]
4. create the required change in the backend database. any considerations for efficiency, query performance
5. think the logic to solve the task at hand [may be think different ways to solve and pick one]
6. write the code
7. debug the code to see the code works as it is supposed to be still the output looks alright
8. testing. testing in multiple browsers. testing in multiple versions. testing in multiple resolutions. Testing for IE Quirk modes
9. testing for load, testing for efficiency
10. to justify does it work with everything else related?
11. does other related pages and functions work accordingly? after you have implemented the task. time required.
12. what about code optimization? do it before or after
13. what about better organizing the code. [the solution works; but if you reorganize the code, something may break; so some time may be required in worst cases to deal with]
14. what about debug as part of whitebox testing?
15. To check: Does it work in the test server? does it work in the integration server?
16. what about creating test cases and executing them [being more formal] [any documentation required or not?]
17. if the project is a big one, dealing with the project [keeping track of what is where, where you are placing what and why, and similar] [you need good memory or good skills to deal with]
18. is unit test code a part of the requirement? will take time…

Sometimes small tasks become big because of these extra considerations. However, without doing these extra stuff,it may be hard to say that the solution will work reasonably if not under all possible scenarios

Depending on the task, it may be possible to account for multiple levels of abstraction at the same time [writing the code while doing a good job in terms of design and architecture without thinking much on them [or spending much time on them]…but not always..]

You may maintain a list that does matter [required to deliver as part of your work] and assign time to each of the individual aspects. Sum them up and get the time estimation…

From: http://sitestree.com/?p=5339
Categories:Software Engineering
Tags:
Post Data:2011-10-20 08:30:23

Shop Online: https://www.ShopForSoul.com/
(Big Data, Cloud, Security, Machine Learning): Courses: http://Training.SitesTree.com
In Bengali: http://Bangla.SaLearningSchool.com
http://SitesTree.com
8112223 Canada Inc./JustEtc: http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning)
Shop Online: https://www.ShopForSoul.com/
Medium: https://medium.com/@SayedAhmedCanada

Must know for senior software developer positions. #Software Engineering

Must know for senior software developer positions. What do you think? useful resources or not?Though not complete but can provide some ideas. What do you think?Developers planning to go to other software related roles may find the resources useful. what do you think?

From: http://sitestree.com/?p=5254
Categories:Software Engineering
Tags:
Post Data:2009-06-16 19:15:47

Shop Online: https://www.ShopForSoul.com/
(Big Data, Cloud, Security, Machine Learning): Courses: http://Training.SitesTree.com
In Bengali: http://Bangla.SaLearningSchool.com
http://SitesTree.com
8112223 Canada Inc./JustEtc: http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning)
Shop Online: https://www.ShopForSoul.com/
Medium: https://medium.com/@SayedAhmedCanada

Importance of Requirements Analysis #Software Engineering

“It is widely recognized that incorrect requirements account for up to 60 percent of errors in software products, and yet the majority of software development organizations do not have a formal requirements process. Many organizations appear willing to spend huge amounts on fixing and altering poorly specified software, but seem unwilling to invest a much smaller amount to get the requirements right in the first place” — Mastering the Requirements Process, Second Edition, By: Suzanne Robertson; James Robertson

From: http://sitestree.com/?p=5210
Categories:Software Engineering
Tags:
Post Data:2011-03-25 08:43:43

Shop Online: https://www.ShopForSoul.com/
(Big Data, Cloud, Security, Machine Learning): Courses: http://Training.SitesTree.com
In Bengali: http://Bangla.SaLearningSchool.com
http://SitesTree.com
8112223 Canada Inc./JustEtc: http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning)
Shop Online: https://www.ShopForSoul.com/
Medium: https://medium.com/@SayedAhmedCanada

Linkedin Answers: We can teach technical skills – we need resources that are people oriented. A common saying. What is your opinion? #Software Engineering

Please check:

From: http://sitestree.com/?p=5044
Categories:Software Engineering
Tags:
Post Data:2010-12-13 18:32:40

Shop Online: https://www.ShopForSoul.com/
(Big Data, Cloud, Security, Machine Learning): Courses: http://Training.SitesTree.com
In Bengali: http://Bangla.SaLearningSchool.com
http://SitesTree.com
8112223 Canada Inc./JustEtc: http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning)
Shop Online: https://www.ShopForSoul.com/
Medium: https://medium.com/@SayedAhmedCanada

Linkedin Answers: Programming is more arts than science? A saying. What is your opinion. #Software Engineering

From: http://sitestree.com/?p=5043
Categories:Software Engineering
Tags:
Post Data:2007-10-17 02:26:35

Shop Online: https://www.ShopForSoul.com/
(Big Data, Cloud, Security, Machine Learning): Courses: http://Training.SitesTree.com
In Bengali: http://Bangla.SaLearningSchool.com
http://SitesTree.com
8112223 Canada Inc./JustEtc: http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning)
Shop Online: https://www.ShopForSoul.com/
Medium: https://medium.com/@SayedAhmedCanada

What is RAD? What is prototyping? #Software Engineering

Please consult the following resources to learn about Rapid Application Development and Software Prototyping:

From: http://sitestree.com/?p=5041
Categories:Software Engineering
Tags:
Post Data:2009-03-23 18:29:49

Shop Online: https://www.ShopForSoul.com/
(Big Data, Cloud, Security, Machine Learning): Courses: http://Training.SitesTree.com
In Bengali: http://Bangla.SaLearningSchool.com
http://SitesTree.com
8112223 Canada Inc./JustEtc: http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning)
Shop Online: https://www.ShopForSoul.com/
Medium: https://medium.com/@SayedAhmedCanada

Design Patterns #Software Engineering

Design Pattern Basics
A design pattern is a specific approach to a specific problem. Different software projects may face or may need to solve the same problem. For example: collecting data in a web-page and storing the data in a database is a common problem in web-based enterprise applications. It’s possible to write the solution in different ways. Rather, we can also come up with a specific pattern to solve the problem. The pattern may include the steps that must be followed (enforce fields, don’t allow null values, validate input, validate user rights), may define the different objects required, may provide the interaction among the different objects/components, may define the interfaces. The usefulness of design patterns are that you can come up with the most efficient object designs that will also support the extensibility and scalability of the solution. Also, the pattern may consider reliability and timeliness issues of the solution/problem. Hence, when a design pattern is designed keeping all these issues under consideration, in most cases the solution will be a good/robust one. Besides, the programmers in the team will be on the same pace/level. The novice or the new programmers will not require to reinvent the wheel again wasting much time in between. Refer them to the design pattern and let them do the work accordingly.

From: http://sitestree.com/?p=5012
Categories:Software Engineering
Tags:
Post Data:2010-12-05 12:10:07

Shop Online: https://www.ShopForSoul.com/
(Big Data, Cloud, Security, Machine Learning): Courses: http://Training.SitesTree.com
In Bengali: http://Bangla.SaLearningSchool.com
http://SitesTree.com
8112223 Canada Inc./JustEtc: http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning)
Shop Online: https://www.ShopForSoul.com/
Medium: https://medium.com/@SayedAhmedCanada

Some random information on Software Engineering #Software Engineering

  • User involvement througout the project may reduce the chance of failure
  • DSDM – directly involves users in the development team
  • Selecting the right user/person, defining the role of the user, using different individuals rather than a particular person – may increase the chance of success. Some thought is needed to make better use of user involvement.
  • Computer Aided Software Engineering (CASE) tools may reduce total duration and increase efficiency.
  • CASE can be used in the analysis, design, and automatic code generation
  • Principles of Agile approaches: Individuals and Interactions over processes and tools, Working software over comprehensive documentation, Customer collaboration over contract negotiation, Responding to change over following a plan

From: http://sitestree.com/?p=4941
Categories:Software Engineering
Tags:
Post Data:2007-12-17 22:03:04

Shop Online: https://www.ShopForSoul.com/
(Big Data, Cloud, Security, Machine Learning): Courses: http://Training.SitesTree.com
In Bengali: http://Bangla.SaLearningSchool.com
http://SitesTree.com
8112223 Canada Inc./JustEtc: http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning)
Shop Online: https://www.ShopForSoul.com/
Medium: https://medium.com/@SayedAhmedCanada

Unified Software Development Process #Software Engineering

From: http://sitestree.com/?p=4940
Categories:Software Engineering
Tags:
Post Data:2006-11-11 08:17:19

Shop Online: https://www.ShopForSoul.com/
(Big Data, Cloud, Security, Machine Learning): Courses: http://Training.SitesTree.com
In Bengali: http://Bangla.SaLearningSchool.com
http://SitesTree.com
8112223 Canada Inc./JustEtc: http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning)
Shop Online: https://www.ShopForSoul.com/
Medium: https://medium.com/@SayedAhmedCanada

Why things go wrong? #Software Engineering

What are the problems?
End user’s perspective

  • Many projects just not get finished
  • The system works but it’s dreadful to use
  • The system looks pretty but does not do all the work

A client’s perspective

  • Many projects (50% approx., Standishgroup, 1994, 2001) exceed the budget
  • Many projects are delivered late — may be of no use at the time of completion
  • The deployment was a mess, caused some major disaster in operation – the staffs do not trust the system
  • Some stakeholders may try to prevent the success of a project for some benefit
  • The business, the requirements have changed over the period – a completely new system is required now

A developer’s perspective

  • Developers feel they built what was wanted; the clients or the end users still are not happy; the clients/end user’s may have changed their minds in the meantime or they did not understand the developers’ specification; or there were misunderstandings in the beginning about requirements
  • Pressure from different sources may limit developers’ ability to produce an excellent system. Pressure: Budget, time limit, see the result
  • The developers may be inexperienced with the particular techniques they must use – still they are highly skilled and basically talented
  • No documentation, explanation on the existing work. Not well written code – developers may have much difficulty to understand them before able to modify.
  • The goals may be impossible to implement. Developers may have warned…but nobody listened..so the project failed.
  • Many developers may feel — ‘The system is fine .. the users are the problem’ – without being prepared to examine critically their own preconceptions

Aspects of Poor System Usability

  • Poor interface design
  • Inappropriate data entry
  • Incomprehensible error messages
  • Unhelpful help
  • Poor response times
  • Unreliability in operation

Why things go wrong?
Quality Problems

  • The wrong problem is addressed – system conflicts with business strategy
  • Wider/Long term/future influences/consequences are ignored
  • Incorrect analysis, design, and implementation [method/strategy]
  • Project was initiated with wrong reason – going online without analyzing the benefit – just to follow the trend

Productivity Problems

  • Users have changed their minds
  • External factors like a new legislation have changed the environment
  • Implementation infeasible
  • Poor project control like having inexperienced project managers

Hidden Costs of Poor Design

  • Illogical screen layout: Wasted time, loss of confidence in the system
  • Difficult to read screens: increased frustration, increased sickness
  • Unhelpful help messages: increased error rate, increased absenteeism, greater staff turnover
  • System response is slow:increased operating costs
  • Lost data: extra work, reduced income
  • Inaccurate outputs: extra work checking outputs, loss of customer confidence, lost sales

Ref: Object oriented Analysis and Design using UML by S. Bennett et. al.

From: http://sitestree.com/?p=4939
Categories:Software Engineering
Tags:
Post Data:2010-10-15 11:01:23

Shop Online: https://www.ShopForSoul.com/
(Big Data, Cloud, Security, Machine Learning): Courses: http://Training.SitesTree.com
In Bengali: http://Bangla.SaLearningSchool.com
http://SitesTree.com
8112223 Canada Inc./JustEtc: http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning)
Shop Online: https://www.ShopForSoul.com/
Medium: https://medium.com/@SayedAhmedCanada